簡介:
Cloudera Manager 是 Cloudera 公司推出的 Hadoop 集群管理工具,通過該管理工具可以方便的部署、配置、監控集群。
Cloudera 公司自己發布的 Hadoop 版本叫 CDH,全稱 Cloudera Distribution Hadoop。
環境介紹:
192.168.47.10 master.hadoop C6.8 x64 CPU: 1 MEM: 4GB
192.168.47.20 datanode01.hadoop C6.8 x64 CPU: 1 MEM: 1GB
192.168.47.30 datanode02.hadoop C6.8 x64 CPU: 1 MEM: 1GB
一、服務器初始化
1、配置 hostname 、修改 hosts
2、關閉 iptables 、selinux
3、配置時間同步服務器 ntp
# master.hadoop 、datanode.hadoop
shell > cp -r /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 修改時區 shell > yum -y install ntp
# master.hadoop
shell > vim /etc/ntp.conf # 允許客戶端來同步時間的網段 restrict 192.168.47.0 mask 255.255.255.0 nomodify # 該服務器從哪里同步時間 server cn.pool.ntp.org prefer # 當無法與上游服務器聯系時,采用本地時鍾 server 127.127.1.0 fudge 127.127.1.0 stratum 10 shell > chkconfig --del ntpd shell > echo 'ntpdate cn.pool.ntp.org | hwclock -w' >> /etc/rc.local shell > echo '/etc/init.d/ntpd start' >> /etc/rc.local shell > ntpdate cn.pool.ntp.org | hwclock -w shell > /etc/init.d/ntpd start shell > ntpstat synchronised to local net at stratum 6 time correct to within 7948 ms polling server every 64 s # 現在是以本地時鍾為主,因為還沒有跟上游服務器建立連接,一般需要 15 分左右! shell > ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== 248.51-174-131. .INIT. 16 u - 64 0 0.000 0.000 0.000 *LOCAL(0) .LOCL. 5 l 3 64 3 0.000 0.000 0.000
# datanode.hadoop
shell > crontab -e 0 0 * * * /usr/sbin/ntpdate master.hadoop | hwclock -w > /dev/null 2>&1 # 凌晨時間同步 ( 本來想采用 ntp 的方式,但是啟動時間真是太長了 )
二、安裝 Cloudera-manager
# https://www.cloudera.com/documentation/enterprise/release-notes/topics/cm_vd.html 各版本地址
# https://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.6.0/RPMS/x86_64 本次實驗版本地址
# master.hadoop
1、搭建 yum 本地源
shell > yum -y install httpd createrepo shell > sed -i 's/#ServerName www.example.com:80/ServerName 127.0.0.1:80/' /etc/httpd/conf/httpd.conf shell > /etc/init.d/httpd start shell > chkconfig --level 35 httpd on shell > mkdir /var/www/html/clouder-manager; cd /var/www/html/clouder-manager shell > wget -c -r -nd -A .rpm https://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.6.0/RPMS/x86_64/ # 建議使用加速下載 shell > ls -1 cloudera-manager-agent-5.6.0-1.cm560.p0.54.el6.x86_64.rpm cloudera-manager-daemons-5.6.0-1.cm560.p0.54.el6.x86_64.rpm cloudera-manager-server-5.6.0-1.cm560.p0.54.el6.x86_64.rpm cloudera-manager-server-db-2-5.6.0-1.cm560.p0.54.el6.x86_64.rpm enterprise-debuginfo-5.6.0-1.cm560.p0.54.el6.x86_64.rpm jdk-8u111-linux-x64.rpm # 關於 clouder-manager 的軟件包就這些,jdk 是我單獨下載的 shell > createrepo . # 生成依賴
# master.hadoop 、datanode.hadoop
shell > vim /etc/yum.repos.d/local.repo [local] name=local cloudera manager baseurl=http://master.hadoop/cloudera-manager gpgcheck=0 shell > yum clean all # 這樣各節點就可以使用 yum 本地源了
2、安裝 clouder-manager
# master.hadoop
shell > yum -y install jdk1.8.0_111 shell > yum -y install cloudera-manager-agent shell > yum -y install cloudera-manager-server-db-2 shell > rpm -qa | grep cloudera cloudera-manager-server-db-2-5.6.0-1.cm560.p0.54.el6.x86_64 cloudera-manager-agent-5.6.0-1.cm560.p0.54.el6.x86_64 cloudera-manager-server-5.6.0-1.cm560.p0.54.el6.x86_64 cloudera-manager-daemons-5.6.0-1.cm560.p0.54.el6.x86_64 # 可以看到都已准備就緒 ( cloudera-manager-server 已經自動安裝了 )
# datanode.hadoop
shell > yum -y install jdk1.8.0_111 shell > yum -y install cloudera-manager-agent
3、啟動
# master.hadoop
shell > /etc/init.d/cloudera-manager-server-db start # TCP 7432 shell > /etc/init.d/cloudera-scm-server start # TCP 7180 web、7182 agent # cloudera-manager-server 啟動要花費比較長的時間 # 建議 tail -f /var/log/cloudera-manager-server/cloudera-manager-server.log # 看到 Started SelectChannelConnector@0.0.0.0:7180 字樣時,證明啟動成功 shell > /etc/init.d/cloudera-scm-agent start # TCP 9000、19001
# datanode.hadoop
shell > sed -i '/server_host/s/localhost/master.hadoop/' /etc/cloudera-scm-agent/config.ini # 修改 CM 地址 shell > /etc/init.d/cloudera-scm-agent start
4、訪問
http://192.168.47.10:7180 admin / admin
> Yes, I accept the End User License Terms and Conditions. # 同意
> 默認,企業試用版,60 天后自動降級為免費版
# 到這里,cloudera-manager 就安裝完成了,可以點擊左上角logo查看狀態,也可以繼續配置集群
# 再點擊繼續就開始配置集群了,請看下面
三、Cloudera-manager 配置集群
# 這里使用的離線的安裝方式,建議使用迅雷等加速器下載后傳到服務器,不然太費勁了...
shell > cd /opt/cloudera/parcel-repo shell > wget -c http://archive.cloudera.com/cdh5/parcels/5.6.0/CDH-5.6.0-1.cdh5.6.0.p0.45-el6.parcel shell > wget -c http://archive.cloudera.com/cdh5/parcels/5.6.0/CDH-5.6.0-1.cdh5.6.0.p0.45-el6.parcel.sha1 shell > wget -c http://archive.cloudera.com/cdh5/parcels/5.6.0/manifest.json # el6 可以理解為 CentOS 6.x shell > mv CDH-5.6.0-1.cdh5.6.0.p0.45-el6.parcel.sha1 CDH-5.6.0-1.cdh5.6.0.p0.45-el6.parcel.sha # 不改名,會導致 CM 去重新下載 .parcel 包,就那個 1.4G 的包 shell > ls -1 CDH-5.6.0-1.cdh5.6.0.p0.45-el6.parcel CDH-5.6.0-1.cdh5.6.0.p0.45-el6.parcel.sha manifest.json # 最終就是這樣 shell > chown -R cloudera-scm.cloudera-scm . shell > /etc/init.d/cloudera-manager-server restart # 如果是在 server 啟動后,下載的 CDH,那么需要重啟一下 server,否則選擇 CDH 版本的時候,沒有該版本
1、主頁點擊添加集群
2、搜索主機,繼續
3、選擇使用 parcel ( clouder 公司提供的一種包管理方式 );也可以把 CDH5 對應的軟件包全部下載后做成本地 yum 源,選擇使用數據包
# 更多選項里面有一個<本地 Parcel 存儲庫路徑>,默認就是 /opt/cloudera/parcel-repo
# 下面的選擇CDH版本列表就會有下載的 CDH-5.6.0-1.cdh5.6.0.p0.45,選擇 繼續
4、集群安裝,因為是下載好的本地包,所以需要等待的只是一個安裝時間,由服務器性能決定 ( 這虛擬機讓我等的好苦!)
# 可以監控 cloudera-manager-server 的日志,好多 orld gc ,內存嚴重不足!機器反應慢!負載也高!
5、檢查主機正確性
> vm.swappiness 默認 60,建議設為 0,系統使用 swap 的喜好,0 為盡量不使用
> /sys/kernel/mm/transparent_hugepage 透明大頁的問題,建議禁止
# master.hadoop 、datanode01.hadoop
shell > echo 'vm.swappiness = 0' >> /etc/sysctl.conf shell > sysctl -p shell > echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag shell > echo 'echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag' >> /etc/rc.local
# 點擊重新運行
6、安裝服務,自定義服務,我這里只選擇了 HDFS、YARN
7、角色分配,選擇默認
8、數據庫選擇,選擇嵌入式數據庫,測試連接
# master.hadoop:7432
# rman / rman / MJ8ehj6PGN | 數據庫 / 用戶名 / 密碼
9、集群設置,這里是一些常用參數,多關注一下
# dfs.block.size, dfs.blocksize HDFS 默認塊大小 128MB
# dfs.datanode.failed.volumes.tolerated DataNode 磁盤損壞數量,建議大於 1
# dfs.data.dir, dfs.datanode.data.dir DataNode 數據目錄
# dfs.name.dir, dfs.namenode.name.dir NameNode 數據目錄
......
10、開始啟動服務啦~
# 有可能會因為服務器性能不足,導致超時,重試一般能好!該增加配置了... 主要是 Memory !!!
11、恭喜您!服務已安裝、配置並在群集中運行。
四、集群調整
# 集群主頁可以看到 Cluster 1 狀態為 紅色 !表示運行狀態不良、主機狀態為 黃色!表示存在隱患!等
# 這時服務器很卡,點擊主機 配置問題,會發現 master.hadoop、datanode01.hadoop 內存不足!-> 關機加內存
# 關閉 Cluster 1、Cloudera Manager Service ( 標簽后面都有下拉菜單,點擊停止 ),然后加內存!建議 8G/2G !
# 再次啟動服務器、等待 Cloudera-manager-server 啟動后,web 界面啟動 Cluster 1、Cloudera Manager Service
# 點擊<所有運行狀態問題>,列出 Cluster 1 運行中的問題列表
1、Cloudera Management Services
> Alert Publisher (master) /var/log/cloudera-scm-alertpublisher > Event Server (master) /var/log/cloudera-scm-eventserver > Host Monitor (master) /var/log/cloudera-scm-firehose > Reports Manager (master) /var/log/cloudera-scm-headlamp > Service Monitor (master) /var/log/cloudera-scm-firehose
# 分析發現:全部是由於磁盤空間不足,這種問題一般生產壞境不會出現!
# 解決方法:1、磁盤擴容 2、修改日志目錄可用空間監控絕對閾值 ( 由於是實驗環境,這里選擇第二種解決方案 )
# 主頁->配置->磁盤空間閾值->篩選器 范圍 Cloudera Management Service->日志目錄可用空間監控絕對閾值->警告 2 嚴重 1->保存更改
# 這時再點擊主頁,之前這些警告就都消失了 ( 可能會有一點延遲 )
> Event Server (master) /var/lib/cloudera-scm-eventserver > Host Monitor (master) /var/lib/cloudera-host-monitor > Reports Manager (master) /var/lib/cloudera-scm-headlamp > Service Monitor (master) /var/lib/cloudera-service-monitor
# 還是熟悉的味道!
# Event Server Index Directory 可用空間監控絕對閾值 2 1
# Host Monitor Storage Directory 可用空間監控絕對閾值 2 1
# Reports Manager Working Directory 可用空間監控絕對閾值 2 1
# Service Monitor Storage Directory 可用空間監控絕對閾值 2 1
2、Cluster 1
> HDFS 副本不足的塊
# HDFS 默認為 3 個副本,我們只有一個
> YARN (MR2 Included) > NameNode (master) /dfs/nn > SecondaryNameNode (master) /dfs/snn > master.hadoop /opt/cloudera/parcels
# 還是磁盤空間問題,這次選擇添加硬盤來解決問題 ( 當然也可以修改監控閾值 )
# master.hadoop、datanode01.hadoop
shell > mkfs.ext4 /dev/sdb shell > mkdir tmp; mv /dfs/* tmp/ shell > mount -o noatime /dev/sdb /dfs shell > mv tmp/* /dfs shell > echo '/dev/sdb /dfs ext4 noatime 0 0' >> /etc/fstab shell > mkfs.ext4 /dev/sdc shell > mv /opt/* tmp/ shell > mount -o noatime /dev/sdc /opt shell > mv tmp/* /opt shell > echo '/dev/sdc /opt ext4 noatime 0 0' >> /etc/fstab shell > mount -a
# 啟動集群即可
五、向集群中添加節點
# 准備好的服務器,也要經過初始化階段!( 還有內核參數 ) ( jdk、agent 都可以不用裝,也可以先安裝好 )
1、主機->模板->修改默認模板名稱為 DataNode,應用該模板的主機將包含兩個角色 DataNode、NodeManager
2、狀態->向集群添加新主機
3、搜索主機 192.168.47.30 或 datanode02.hadoop ( 當前管理的主機中如有該主機直接勾選繼續 )
4、安裝軟件到該主機、檢查主機正確性
5、選擇主機模板 DataNode 繼續,安裝、啟動服務
6、YARN (MR2 Included) 刷新集群配置
# 完成