解析Cloudera Manager內部結構、功能包括配置文件、目錄位置等

轉:https://blog.csdn.net/javastart/article/details/50432479

問題導讀
1.CM的安裝目錄在什麼位置?
2.hadoop配置文件在什麼位置?
3.Cloudera manager運行所需要的信息存在什麼位置?
4.CM結構和功能是什麼?

1. 相關目錄

  • /var/log/cloudera-scm-installer : 安裝日誌目錄。
  • /var/log/* : 相關日誌文件(相關服務的及CM的)。
  • /usr/share/cmf/ : 程序安裝目錄。
  • /usr/lib64/cmf/ : Agent程序代碼。
  • /var/lib/cloudera-scm-server-db/data : 內嵌數據庫目錄。
  • /usr/bin/postgres : 內嵌數據庫程序。
  • /etc/cloudera-scm-agent/ : agent的配置目錄。
  • /etc/cloudera-scm-server/ : server的配置目錄。
  • /opt/cloudera/parcels/ : Hadoop相關服務安裝目錄。
  • /opt/cloudera/parcel-repo/ : 下載的服務軟件包數據,數據格式爲parcels。
  • /opt/cloudera/parcel-cache/ : 下載的服務軟件包緩存數據。
  • /etc/hadoop/* : 客戶端配置文件目錄。


2. 配置

  • Hadoop配置文件

    配置文件放置於/var/run/cloudera-scm-agent/process/目錄下。如:/var/run/cloudera-scm-agent/process/193-hdfs-NAMENODE/core-site.xml。這些配置文件是通過Cloudera Manager啓動相應服務(如HDFS)時生成的,內容從數據庫中獲得(即通過界面配置的參數)。

    在CM界面上更改配置是不會立即反映到配置文件中,這些信息會存儲於數據庫中,等下次重啓服務時纔會生成配置文件。且每次啓動時都會產生新的配置文件。

    CM Server主要數據庫爲scm基中放置配置的數據表爲configs。裏面包含了服務的配置信息,每一次配置的更改會把當前頁面的所有配置內容添加到數據庫中,以此保存配置修改歷史。

    scm數據庫被配置成只能從localhost訪問,如果需要從外部連接此數據庫,修改vim /var/lib/cloudera-scm-server-db/data/pg_hba.conf文件,之後重啓數據庫。運行數據庫的用戶爲cloudera-scm。

  • 查看配置內容

     
    • 直接查詢scm數據庫的configs數據表的內容。
    • 訪問REST API: http://hostname:7180/api/v4/cm/deployment,返回JSON格式部署配置信息。
  • 配置生成方式

    CM爲每個服務進程生成獨立的配置目錄(文件)。所有配置統一在服務端查詢數據庫生成(因爲scm數據庫只能在localhost下訪問)生成配置文件,再由agent通過網絡下載包含配置文件的zip包到本地解壓到指定的目錄。

  • 配置修改

    CM對於需要修改的配置預先定義,對於沒有預先定義的配置,則通過在高級配置項中使用xml配置片段的方式進行配置。而對於/etc/hadoop/下的配置文件是客戶端的配置,可以在CM通過部署客戶端生成客戶端配置。

             這就需要部署客戶端配置(CM界面有),它會把配置下載到/etc/hadoop/conf/下(實際是通過update-alternatives命令實現),如果當前機器有HDFS服務,則會下載                 HDFS相關配置文件到/etc/hadoop/conf/(如core-site.xml和hdfs-site.xml),如果是mapred服務則會下載mapred-site.xml等相關文件。如果希望某臺服務器不提供                   hadoop服務也可以通過hadoop命令管理集羣,則需要爲它添加"GateWay"角色,然後下發客戶端配置。

3. 數據庫

Cloudera manager主要的數據庫爲scm,存儲Cloudera manager運行所需要的信息:配置,主機,用戶等。

4. CM結構

CM分爲Server與Agent兩部分及數據庫(自帶更改過的嵌入Postgresql)。它主要做三件事件:

  • 管理監控集羣主機。
  • 統一管理配置。
  • 管理維護Hadoop平臺系統。

實現採用C/S結構,Agent爲客戶端負責執行服務端發來的命令,執行方式一般爲使用python調用相應的服務shell腳本。Server端爲Java REST服務,提供REST API,Web管理端通過REST API調用Server端功能,Web界面使用富客戶端技術(Knockout)。

  • Server端主體使用Java實現。
  • Agent端主體使用Python, 服務的啓動通過調用相應的shell腳本進行啓動,如果啓動失敗會重複4次調用啓動腳本。
  • Agent與Server保持心跳,使用Thrift RPC框架。

5. 升級

在CM中可以通過界面嚮導升級相關服務。升級過程爲三步:

  • 下載服務軟件包。
  • 把所下載的服務軟件包分發到集羣中受管的機器上。
  • 安裝服務軟件包,使用軟鏈接的方式把服務程序目錄鏈接到新安裝的軟件包目錄上

6. 卸載

sudo /usr/share/cmf/uninstall-scm-express.sh, 然後刪除/var/lib/cloudera-scm-server-db/目錄,不然下次安裝可能不成功。

7. 開啓postgresql遠程訪問

CM內嵌數據庫被配置成只能從localhost訪問,如果需要從外部查看數據,數據修改vim /var/lib/cloudera-scm-server-db/data/pg_hba.conf文件,之後重啓數據庫。運行數據庫的用戶爲cloudera-scm。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章