1.概述
CDH,全稱Cloudera's Distribution, including Apache Hadoop。是Hadoop眾多分支中對應中的一種,由Cloudera維護,基於穩定版本的Apache Hadoop構建,提供了Hadoop的核心(可擴展存儲、分布式計算),最為重要的是提供基於web的用戶界面。
CDH的優點:版本划分清晰,更新速度快,支持Kerberos安全認證,支持多種安裝方式(如Yum、rpm等)。
CDH分為Cloudera Manager管理平台和CDH parcel(parcel包含各種組件的安裝包)。這里采用CDH6.2.0。
Cloudera Manger下載地址為https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/RPMS/x86_64/,如圖:
CDH6.2.0安裝包地址為:https://archive.cloudera.com/cdh6/6.2.0/parcels/
由於操作系統為CentOS7,需要下載以下文件:
上述文件整理資料百度雲下載地址為:
鏈接: https://pan.baidu.com/s/1Dm5Elf9uQqn14BUbgU3AFQ 提取碼: mws3
2. 安裝步驟
說明:以下操作都是在root用戶下進行的
2.1 環境准備
2.1.1. 准備虛擬機(根據自己的系統資源分配虛擬機資源)
2.1.2. 靜態IP設置(每個節點)
vim /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart 重啟網絡生效
yum install -y net-tools ifconfig查看設置
2.1.3. 編輯/etc/hosts文件(每個節點)
vim /etc/hosts
2.1.4. 關閉防火牆、禁止防火牆開機自啟(每個節點)
- systemctl stop firewalld 關閉防火牆
- systemctl disable firewalld 禁止防火牆開機自啟
- vim /etc/selinux/config —> SELINUX=disabled (修改)
2.1.5. ssh無密碼登錄
- manager節點執行ssh-keygen -t rsa 一路回車到結束,在/root/.ssh/下面會生成一個公鑰文件id_rsa.pub
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 將公鑰追加到authorized_keys
- chmod 600 ~/.ssh/authorized_keys 修改權限
- 將~/.ssh從當前節點分發到其他各個節點。如:scp -r ~/.ssh/ root@node1:~/.ssh/
- ssh 各個節點互相登陸
2.1.6. 配置NTP服務(所有節點)
- 修改時區(改為中國標准時區)ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- 安裝ntp yum -y install ntp
- ntp主機配置 vim /etc/ntp.conf
- manager節點
其余節點
- 重新啟動 ntp 服務:service ntpd restart
- 設置開機自啟:systemctl enable ntpd.service
- ntpdc -c loopinfo #查看與時間同步服務器的時間偏差
- ntpq -p #查看當前同步的時間服務器
- ntpstat #查看狀態
- 配置成功狀態(服務開啟后前面出現*說明成功):
2.1.7. 修改Linux swappiness參數(所有節點)
為了避免服務器使用swap功能而影響服務器性能,一般都會把vm.swappiness修改為0(cloudera建議10以下)
- 上述方法rhel6有效,rhel7.2中:tuned服務會動態調整系統參數
- 查找tuned中配置,直接修改配置
- cd /usr/lib/tuned/
- grep “vm.swappiness” * -R 查詢出后依次修改
修改完確認:
參考:sysctl修改內核參數 重啟不生效 https://blog.csdn.net/ygtlovezf/article/details/79014299
2.1.8. 禁用透明頁(所有節點)
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
永久生效 在/etc/rc.local 添加上面命令
給與可執行權限:chmod +x /etc/rc.d/rc.local
2.1.9. JDK安裝(所有節點)
- rpm -qa | grep java # 查詢已安裝的java
- yum remove java* # 卸載
- rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
- vi /etc/profile 末尾添加
- source /etc/profile
- java -version驗證
2.1.10. 創建/usr/share/java目錄,將mysql-jdbc包放過去(所有節點)
- mkdir -p /usr/share/java
- mv /opt/mysql-j/mysql-connector-java-5.1.34.jar /usr/share/java/
- mysql-connector-java-5.1.34.jar 一定要命名為mysql-connector-java.jar
2.1.11. 為保證防火牆、虛擬機參數修改后生效,各節點機器需要重啟 reboot
2.1.12. Mysql安裝
卸載原生的mariadb,安裝mysql:
- rpm -qa|grep mariadb
- rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
- cd /opt/mysql/
- tar -xvf ./mysql-5.7.19-1.el7.x86_64.rpm-bundle.tar
- rpm -ivh mysql-community-common-5.7.19-1.el7.x86_64.rpm
- rpm -ivh mysql-community-libs-5.7.19-1.el7.x86_64.rpm
- rpm -ivh mysql-community-client-5.7.19-1.el7.x86_64.rpm
- rpm -ivh mysql-community-server-5.7.19-1.el7.x86_64.rpm
- rpm -ivh mysql-community-libs-compat-5.7.19-1.el7.x86_64.rpm
MYSQL配置如下:
- mysqld --initialize --user=mysql # 初始化mysql使mysql目錄的擁有者為mysql用戶
- cat /var/log/mysqld.log # 最后一行將會有隨機生成的密碼
- systemctl start mysqld.service # 設置mysql服務自啟
- mysql -uroot –p 如果不能登陸
- systemctl restart mysqld
- #登錄並修改mysql的管理者密碼
$>mysql -u root
mysql>use mysql;
mysql>set password = PASSWORD('root');
mysql>exit;
- 創建庫(后續安裝服務等使用)
create database cmserver default charset utf8 collate utf8_general_ci;
grant all on cmserver.* to 'cmserveruser'@'%' identified by 'root';
create database metastore default charset utf8 collate utf8_general_ci;
grant all on metastore.* to 'hiveuser'@'%' identified by 'root';
create database amon default charset utf8 collate utf8_general_ci;
grant all on amon.* to 'amonuser'@'%' identified by 'root';
create database rman default charset utf8 collate utf8_general_ci;
grant all on rman.* to 'rmanuser'@'%' identified by 'root';
create database oozie default charset utf8 collate utf8_general_ci;
grant all on oozie.* to 'oozieuser'@'%' identified by 'root';
create database hue default charset utf8 collate utf8_general_ci;
grant all on hue.* to 'hueuser'@'%' identified by 'root';
2.1.13. 安裝Httpd服務(manager)
- yum install httpd
- systemctl start httpd
- systemctl enable httpd.service 設置httpd服務開機自啟
2.1.14. 配置Cloudera Manager包yum源(manager節點)
- mkdir -p /var/www/html/cloudera-repos/
- 將下載的cm包文件移到此目錄下:
- mv cm6 /var/www/html/cloudera-repos/
- cd /var/www/html/cloudera-repos/cm6/
- 創建repodata: createrepo .
- vim /etc/yum.repos.d/cloudera-manager.repo
注意路徑:http://manager/cloudera-repos/cm6/
- yum clean all
- yum makecache
2.1.15.導入GPG key(如果沒有這步操作,很可能cloudera服務安裝失敗)manager節點
- rpm --import http://manager/cloudera-repos/cm6/RPM-GPG-KEY-cloudera
2.1.16. 安裝 Cloudera Manager(manager節點)
- sudo yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
- 安裝完CM后/opt/ 下會出現cloudera目錄
- mv /opt/parcels/* /opt/cloudera/parcel-repo # 將parcel包移動到指定位置
- 在/opt/cloudera/parcel-repo執行以下命令:
- sha1sum CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel | awk ‘{ print $1 }’ > CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha
- 執行初始化腳本:
- /opt/cloudera/cm/schema/scm_prepare_database.sh mysql cmserver cmserveruser password
- 打開server服務:
- service cloudera-scm-server start
- 靜候幾分鍾,打開http://manager:7180
2.2 其他服務安裝
2.2.1 登錄cm WEB界面
http://主機ip:7180/cmf/login 訪問CM
用戶名admin
密碼admin
遇到問題:7180服務沒有啟動
解決方法:
查看端口服務,未啟動
cm服務啟動顯示正常。
我在剛啟動服務后7180沒有啟動,沒找到什么原因,后來 晾了它一晚上,第二天一查端口,居然啟動了,可能是cm服務要啟動的東西太多,主機一時沒啟動。
啟動成功!
備注:
linux查看端口:https://www.cnblogs.com/Archmage/p/7570716.html
2.2.2 具體安裝步驟
WELCOME
Accept License
Select Edition
版本選擇免費版,已經夠用。
Welcome (Add Cluster - Installation)
Specify Hosts
主機是自己規划安裝agent的主機
Select Repository
JDK 安裝選項
Enter Login Credentials
Install Agents
最到考驗網速的時候了,該頁面使用js進行刷新,千萬別手動刷新,手動刷新的話安裝列表中之前已經功成的會消失,未成功的顯示,未成功即使安裝成功了,cm會管理不到之前已經成功但刷新后未顯示的主機,在安裝集群時只能選擇本次顯示的(原因未知)。網速過慢的話安裝會失敗,一定要耐心等待,別做無關操作。
失敗重試直到成功,再次說明,耐心等待。
n次失敗之后終於安裝成功!
Install Parcels
安裝成功!等了有將近半天的時候。。。
Inspect Hosts
問題處理:
時鍾同步是由於我恢復過一次鏡像,在手動同步一下即可。
服務端啟動(恢復鏡像居然沒啟動)
各台同步
虛擬內存設置:
Cloudera 建議將 /proc/sys/vm/swappiness 設置為0-10。當前設置為 30。使用 sysctl 命令在運行時更改該設置並編輯 /etc/sysctl.conf,以在重啟后保存該設置。您可以繼續進行安裝,但 Cloudera Manager 可能會報告您的主機由於交換而運行狀況不良。以下主機將受到影響:
查看詳細信息
cdh[171-174]
解決:
臨時解決
通過echo 10 > /proc/sys/vm/swappiness即可解決。
永久解決
sysctl -w vm.swappiness=10
echo vm.swappiness = 10 >> /etc/sysctl.conf
透明大頁問題:
已啟用透明大頁面壓縮,可能會導致重大性能問題。請運行“echo never > /sys/kernel/mm/transparent_hugepage/defrag”和“echo never > /sys/kernel/mm/transparent_hugepage/enabled”以禁用此設置,然后將同一命令添加到 /etc/rc.local 等初始化腳本中,以便在系統重啟時予以設置。以下主機將受到影響:
查看詳細信息
cdh[171-174]
處理:
大內存頁禁用
echo never>/sys/kernel/mm/transparent_hugepage/defrag
echo never>/sys/kernel/mm/transparent_hugepage/enabled
升級軟件依賴版本
Starting with CDH 6, PostgreSQL-backed Hue requires the Psycopg2 version to be at least 2.5.4, see the documentation for more information. This warning can be ignored if hosts will not run CDH 6, or will not run Hue with PostgreSQL. The following hosts have an incompatible Psycopg2 version of ‘2.5.1’:
查看詳細信息
cdh[171-174]
本次忽略
處理完成:
2.3 大數據組件安裝
正式安裝前拍個快照
Select Services
自定義角色分配
數據庫設置
這里測試了一晚上。。。
審核更改(可以自己更改目錄,我使用的是默認)
cdh管理界面,大功告成:
第一次進入后,許多服務標紅,查看后是agent與cm失去連接。
#ntpstat(所有節點)
只有cm啟動,其余莫名停止。
#systemctl start ntpd(停止節點)
#ntpdate -u cdh1(ntp服務端)
在失去的節點 執行
service cloudera-scm-agent restart(停止節點)
重啟 正常啟動不報錯
注
service cloudera-scm-agent status(查看 agent 狀態)
總結
【參考資料】
https://blog.csdn.net/wolf_333/article/details/89071203
http://www.cnblogs.com/mylovelulu/p/10384732.html
https://blog.csdn.net/qq_40127822/article/details/84441869
https://www.cnblogs.com/raphael5200/p/5293960.html
https://www.waitig.com/%E5%AF%B9cloudera-hadoop%E5%A4%9A%E4%B8%80%E4%BA%9B%E4%BA%86%E8%A7%A3.html cdh切換日志目錄
https://www.520mwx.com/view/46525 cdh服務器磁盤划分