Cloudera Manager Free Edition 4.1 和CDH 4.1.2 簡易安裝教學


轉載:http://fenriswolf.me/2012/12/06/cloudera-manager-free-edition-4-1-和-cdh-4-1-2-簡易安裝教學/

安裝及管理一個大的Hadoop cluster 並不是只要下載tar files 解壓縮並啟動services 這么簡單。安裝及管理一個大的Hadoop cluster 並不是只要下載tar files 解壓縮並啟動services 這么簡單。 后續有非常多設定、監控等麻煩的事要處理。后續有非常多設定、監控等麻煩的事要處理。 Cloudera Manager 就整合了一系列的功能讓系統管理者能更方便的維護Hadoop Cloudera Manager 就整合了一系列的功能讓系統管理者能更方便的維護Hadoop Free Edition 的限制如下 Free Edition 的限制如下

  • 只支援50 個nodes只支援50 個nodes
  • 沒有設定的版本控管沒有設定的版本控管
  • 沒有支援LDAP/Kerberos Authentication沒有支援LDAP/Kerberos Authentication
  • 沒有進階的services 監控選項,如health check沒有進階的services 監控選項,如health check
  • 沒有Logs 搜尋功能沒有Logs 搜尋功能

更多說明在How to Upgrade the Free Edition to Cloudera Manager可以找到。更多說明在How to Upgrade the Free Edition to Cloudera Manager可以找到。 但是對小型的cluster 或是新手想試試怎么裝Hadoop 很有幫助。但是對小型的cluster 或是新手想試試怎么裝Hadoop 很有幫助。

1.前置作業 <br />在Requirements for Cloudera Manager里有提到Cloudera Manager所支持的所有作業系統,包括RHEL, CentOS, SUSE, Ubuntu等等。 這篇文章會以CentOS 6.3 為例子。這篇文章會以CentOS 6.3 為例子。

  • 官方建議/var 至少要留5G 的空間。官方建議/var 至少要留5G 的空間。 以個人經驗,/usr/lib 至少要550M 以上,所有Hadoop 相關的packages 都會裝在這個位置以個人經驗,/usr/lib 至少要550M 以上,所有Hadoop 相關的packages 都會裝在這個位置
  • RAM 建議4G,不過本篇所用的VMs 只給了2G RAM 建議4G,不過本篇所用的VMs 只給了2G
  • 如果使用Cloudera 所提供的yum repository,要確認網絡能通及yum proxy 設定正確如果使用Cloudera 所提供的yum repository,要確認網路能通及yum proxy 設定正確
  • DNS 設定要正確,或是用/etc/hosts 的設定來取代DNS。 DNS 設定要正確,或是用/etc/hosts 的設定來取代DNS。 hostname 命名里不能有_字符,不然啟動Hadoop services 時會失敗。 hostname命名里不能有_字符,不然啟動Hadoop services時會失敗。 至於要不要給domain name 則見人見智。至於要不要給domain name 則見人見智。 以正式環境來說有設定會比較好。以正式環境來說有設定會比較好。 以下是這個范例所使用的設定以下是這個范例所使用的設定

1 192.168.1.110   hadoop-master

2 192.168.1.111   hadoop-worker01

3 192.168.1.112   hadoop-worker02

  • Cloudera Manager Server 可用SSH 連到所有需要安裝Hadoop 的機器 Cloudera Manager Server 可用SSH 連到所有需要安裝Hadoop 的機器
  • 確認防火牆不會阻擋所有的操作。確認防火牆不會阻擋所有的操作。 以internal Hadoop 來說一般會把防火牆關掉或反安裝以避免一些使用上的問題。以internal Hadoop 來說一般會把防火牆關掉或反安裝以避免一些使用上的問題。 如果對安全性控管有高度要求的話,可以參考Configuring Ports for Cloudera Manager Free Edition來開放需要的ports如果對安全性控管有高度要求的話,可以參考Configuring Ports for Cloudera Manager Free Edition來開放需要的ports
  • 確認SELinux 不會阻擋所有的操作,建議是直接關掉確認SELinux 不會阻擋所有的操作,建議是直接關掉
  • 確認不會更動到Cloudera 會使用的users/groups 權限。確認不會更動到Cloudera 會使用的users/groups 權限。 可參考Requirements for Cloudera Manager最下方的清單可參考Requirements for Cloudera Manager最下方的清單

2. 安裝Cloudera Manager Server 2.安裝Cloudera Manager Server
Cloudera Manager Free Edition Download下載最新版的cloudera-manager-installer.bin 並執行。從Cloudera Manager Free Edition Download下載最新版的cloudera-manager-installer.bin並執行。
cloudera-manager-installer.bin 會需要先安裝JDK,如果系統沒有的話會自動安裝Cloudera 建議的版本Oracle JDK 1.6.0_31。 cloudera-manager-installer.bin 會需要先安裝JDK,如果系統沒有的話會自動安裝Cloudera 建議的版本Oracle JDK 1.6.0_31。 以這篇文章所用的VMs 都已經裝了Oracle JDK 1.6.0_37,則此步驟會被省略。以這篇文章所用的VMs 都已經裝了Oracle JDK 1.6.0_37,則此步驟會被省略。
接下來就可以用http://cms:7180打開admin console。接下來就可以用http://cms:7180打開admin console。 默認的賬號密碼是admin/admin。預設的帳號密碼是admin/admin。 Cloudera Manager Server 對權限控管並沒有做的很好,只有一個admin 的賬號。 Cloudera Manager Server 對權限控管並沒有做的很好,只有一個admin 的帳號。 如果有安全性考慮請自行修改密碼。如果有安全性考慮請自行修改密碼。
clip_image002[16]

如果admin console 無法正常運作,請看/var/log/cloudera-scm-server 下的log 訊息。如果admin console 無法正常運作,請看/var/log/cloudera-scm-server 下的log 訊息。 解決問題后重啟service解決問題后重啟service

1

service cloudera-scm-server restart

3. 安裝Hadoop 3.安裝Hadoop

  1. 進入的第一頁會顯示你正在用Free Edition,直接把這個窗口關掉或點選Just Install the Latest Free Edition進入的第一頁會顯示你正在用Free Edition,直接把這個視窗關掉或點選Just Install the Latest Free Edition
    clip_image004[16]
  2. 第二頁會顯示Cloudera Manager Server 會安裝的所有packages。第二頁會顯示Cloudera Manager Server 會安裝的所有packages。 這部分除了Impala 之外,其他的packages 無法選擇不裝,MapReduce 也會裝MRv1 及MRv2,所以會吃掉系統至少550M 以上的硬盤空間。這部分除了Impala 之外,其他的packages 無法選擇不裝,MapReduce 也會裝MRv1 及MRv2,所以會吃掉系統至少550M 以上的硬盤空間。 畫面上沒有顯示,但因為package 相依性的關系,Bigtop 和Pig 也是會被裝進系統里的。畫面上沒有顯示,但因為package 相依性的關系,Bigtop 和Pig 也是會被裝進系統里的。
    clip_image005[16]
  3. 加入要安裝的機器名稱或IP。加入要安裝的機器名稱或IP。 可以用pattern來指定多台機器。可以用pattern來指定多台機器。 以這個范例而言會有192.168.1.110、192.168.1.111、192.168.1.112 三台機器。以這個范例而言會有192.168.1.110、192.168.1.111、192.168.1.112 三台機器。
    clip_image006[16]
  4. 確認所有的機器已經在名單中,而且SSH 正常運作確認所有的機器已經在名單中,而且SSH 正常運作
    clip_image007[16]
  5. Cloudera Manager 4.1 可以支持CDH3 或CDH4。 Cloudera Manager 4.1 可以支持CDH3 或CDH4。 這邊是直接用最新版。這邊是直接用最新版。
    Impala 1.0 Beta 已經出了,但是現在的測試並不會用到,所以選None 。 Impala 1.0 Beta已經出了,但是現在的測試並不會用到,所以選None 。 Impala 要求整個Hadoop cluster 一定要在RHEL/CentOS 6 上面執行,cluster 內混用Ubuntu、SuSE 或RHEL/CentOS 5.x 都是不行的,想試用的要注意OS 版本。 Impala 要求整個Hadoop cluster 一定要在RHEL/CentOS 6 上面執行,cluster 內混用Ubuntu、SuSE 或RHEL/CentOS 5.x 都是不行的,想試用的要注意OS 版本。
    Yum repository 如果用默認值,Cloudera Manager 會在/etc/yum.repos.d 里新增一個cloudera-cdh4.repo 來安裝所有必要的packages。 Yum repository 如果用預設值,Cloudera Manager 會在/etc/yum.repos.d 里新增一個cloudera-cdh4.repo 來安裝所有必要的packages。 所以要確認是否連的到archive.cloudera.com 。所以要確認是否連的到archive.cloudera.com 。 在production 的環境不建議直接使用Cloudera 的yum repository,因為Cloudera 版本的變動很快但yum repository 只會放最新版,所以有可能造成機器裝的版號不一致。在production 的環境不建議直接使用Cloudera 的yum repository,因為Cloudera 版本的變動很快但yum repository 只會放最新版,所以有可能造成機器裝的版號不一致。 例如舊機器裝到4.1.1,但新機器裝到4.1.2。例如舊機器裝到4.1.1,但新機器裝到4.1.2。 這有兩種解法這有兩種解法
    1. 由IT 建立一個private yum repository 並准備好所有需要的packages。由IT 建立一個private yum repository 並准備好所有需要的packages。
    2. 直接修改cloudera-cdh4.repo 中的baseurl 參數,指定明確的版號,如http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/4.1.1/http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/4.1.2/直接修改cloudera-cdh4.repo中的baseurl參數,指定明確的版號,如http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/4.1.1/http://archive. cloudera.com/cdh4/redhat/6/x86_64/cdh/4.1.2/

clip_image008[16]

  1. 決定SSH 的權限及存取方式。決定SSH 的權限及存取方式。 偷懶一點就可以用root 身份並給密碼。偷懶一點就可以用root 身份並給密碼。 但比較好的做法是把ssh key 先放到所有的機器上。但比較好的做法是把ssh key 先放到所有的機器上。 如果不用root 賬號就要確定指定的user 有不需要打密碼就能sudo 的權限。如果不用root 帳號就要確定指定的user 有不需要打密碼就能sudo 的權限。
    clip_image009[16]

進入安裝程序進入安裝程序
clip_image010[16]
安裝過程中可以點選Details看Cloudera Manager 正在執行的動作。安裝過程中可以點選Details看Cloudera Manager正在執行的動作。 每台機器都會先裝Cloudera Manager Agent 來設定及監控Hadoop services,再裝Oracle JDK 1.6.0_31 和所有Hadoop packages。每台機器都會先裝Cloudera Manager Agent 來設定及監控Hadoop services,再裝Oracle JDK 1.6.0_31 和所有Hadoop packages。
clip_image011[16]
在安裝過程中難免會遇到失敗的狀況。在安裝過程中難免會遇到失敗的狀況。 這邊故意制造了一個會出錯的例子。這邊故意制造了一個會出錯的例子。
clip_image012[16]
點選Details可以看錯誤訊息點選Details可以看錯誤訊息
clip_image014[16]
以這個例子而言是Cloudera Manager Agent 啟動失敗。以這個例子而言是Cloudera Manager Agent 啟動失敗。 Console 上並沒有顯示所有的log,log 檔案在/var/log/cloudera-scm-agent/cloudera-scm-agent.out Console 上並沒有顯示所有的log,log 檔案在/var/log/cloudera-scm-agent/cloudera-scm-agent.out

  1. /usr/lib64/cmf/agent/src/cmf/agent.py:24: DeprecationWarning: the sha module is deprecated; use the hashlib module instead
  2. import sha
  3. /usr/lib64/cmf/agent/src/cmf/monitor/host/network_interfaces.py:11: DeprecationWarning: the sets module is deprecated
  4. from sets import Set
  5. [03/Nov/2012 21:27:37 +0000] 7692 MainThread agent ERROR Could not determine hostname or ip address; proceeding.
  6. Traceback (most recent call last):
  7. File "/usr/lib64/cmf/agent/src/cmf/agent.py", line 1204, in parse_arguments
  8. ip_address = socket.gethostbyname(fqdn)
  9. gaierror: [Errno -2] Name or service not known
  10. usage: agent.py [-h] [--agent_dir AGENT_DIR]
  11. [--agent_httpd_port AGENT_HTTPD_PORT] --package_dir
  12. PACKAGE_DIR [--supervisord_path SUPERVISORD_PATH]
  13. [--supervisord_httpd_port SUPERVISORD_HTTPD_PORT]
  14. [--standalone STANDALONE] [--master MASTER]
  15. [--environment ENVIRONMENT] [--host_id HOST_ID]
  16. [--disable_supervisord_events] [--disable_eager_heartbeats]
  17. --hostname HOSTNAME --ip_address IP_ADDRESS [--use_tls]
  18. [--client_key_file CLIENT_KEY_FILE]
  19. [--client_cert_file CLIENT_CERT_FILE]
  20. [--verify_cert_file VERIFY_CERT_FILE]
  21. [--client_keypw_file CLIENT_KEYPW_FILE] [--logfile LOGFILE]
  22. [--optional_token] [--clear_agent_dir]
  23. agent.py: error: argument --hostname is required
  24. [03/Nov/2012 21:27:37 +0000] 7692 Dummy-1 agent INFO Stopping agent...

這個錯誤是因為在/etc/hosts 里IP/hostname 的對應不正確,修好之后再點選Retry 。這個錯誤是因為在/etc/hosts里IP/hostname的對應不正確,修好之后再點選Retry 。 Cloudera Manager 會先把之前的所有操作rollback,回復到初始狀態之后才重裝。 Cloudera Manager 會先把之前的所有操作rollback,回復到初始狀態之后才重裝。

  1. 三台機器都安裝成功三台機器都安裝成功
    clip_image015[16]
  2. 接下來會做所有機器的檢查,項目包括接下來會做所有機器的檢查,項目包括
    • 網絡設定網路設定
    • 各機器的系統時間是否同步。各機器的系統時間是否同步。 這部分容易被忽略但是很重要,如果沒同步,Hadoop/HBase/Kerberos Authentication 會發生很多奇怪的狀況而且難debug這部分容易被忽略但是很重要,如果沒同步,Hadoop/HBase/Kerberos Authentication 會發生很多奇怪的狀況而且難debug
    • Hadoop users/groups 權限及個數是否相同 Hadoop users/groups 權限及個數是否相同
    • HDFS 的設定 HDFS 的設定
    • 機器上安裝的版本機器上安裝的版本

clip_image016[16]

  1. 顯示檢查的結果顯示檢查的結果
    clip_image018[16]
  2. 這是所有機器的列表。這是所有機器的列表。 點選Host Inspector可以重做一次上面所說的檢查。點選Host Inspector可以重做一次上面所說的檢查。
    clip_image020[16]
    View Columns選擇Physical Attributes可以切換看CPU/Memory/Disk 的使用狀況在View Columns選擇Physical Attributes可以切換看CPU/Memory/Disk的使用狀況
    clip_image022[16]

4. 新增cluster 及啟動Hadoop services 4.新增cluster及啟動Hadoop services

  • 機器都裝好之后就可以進Services tab,選擇Add Cluster機器都裝好之后就可以進Services tab,選擇Add Cluster
    clip_image024[16]
  • 這邊選擇要加入這個cluster 的機器。這邊選擇要加入這個cluster 的機器。 因為這個環境是新裝的,所以直接用Use Only Currently Managed Hosts就可以了因為這個環境是新裝的,所以直接用Use Only Currently Managed Hosts就可以了
    clip_image026[16]
  • 選擇要啟動的CDH 版本及services。選擇要啟動的CDH 版本及services。 為了測試方便,只選了HDFS 和MRv1 兩個services。為了測試方便,只選了HDFS 和MRv1 兩個ser​​vices。 決定之后不要急着按Continue ,而是要選Inspect Role Assignments做一些微調決定之后不要急着按Continue ,而是要選Inspect Role Assignments做一些微調
    clip_image028[16]
  • 這個頁面會顯示Cloudera Manager 幫你啟動services 的詳細設定。這個頁面會顯示Cloudera Manager 幫你啟動services 的詳細設定。 以這個例子而言,hadoop-master 可以把DataNode 和TaskTracker 的選項拿掉。以這個例子而言,hadoop-master 可以把DataNode 和TaskTracker 的選項拿掉。
    clip_image030[16]
  • 再來是最基本啟動services 會用到的設定,細部設定頁面后面會說明。再來是最基本啟動services 會用到的設定,細部設定頁面后面會說明。
    clip_image032[16]
  • 因為是新的cluster,會先做HDFS format,啟動HDFS services,在HDFS 上建立tmp 目錄,啟動MapReduce services,及部屬client 的設定因為是新的cluster,會先做HDFS format,啟動HDFS services,在HDFS 上建立tmp 目錄,啟動MapReduce services,及部屬client 的設定
    clip_image034[16]
  • 顯示所有services 的執行狀況顯示所有services 的執行狀況
    clip_image036[16]
  • 點選hdfs1>Configuration會列出所有細部的設定,Cloudera Manager 會依機器的規格而給出一些建議值。點選hdfs1>Configuration會列出所有細部的設定,Cloudera Manager會依機器的規格而給出一些建議值。 新手也可以參考這個頁面了解有多少參數可以設定,及其意義。新手也可以參考這個頁面了解有多少參數可以設定,及其意義。 所有services 的設定方式都是由Configuration tab 進入。所有services的設定方式都是由Configuration tab進入。
    clip_image038[16]

執行環境執行環境
CentOS 6.3 CentOS 6.3
JDK 1.6.0_37 JDK 1.6.0_37
Cloudera Manager 4.1 Cloudera Manager 4.1
Cloudera CDH4.1.2 Cloudera CDH4.1.2
參考數據參考資料
Cloudera Manager 4.1 Free Edition Documentation Cloudera Manager 4.1 Free Edition Documentation


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM