此前看網上的CDH 安裝部署文檔,都是比較詳細的,不過覺得有一些細節點描述的不夠多,這樣對剛入門CDH的人來說,總是會碰到奇奇怪怪的問題,這裏我儘量把文檔做的細節點。僅供參考。
1.環境準備
1.1 前置要求
!!!CDH安裝前置篇 必看
這裏主要包括,CDH5.x 系列的 Linux的類型和版本 怎麼選擇,JDK怎麼選擇版本,數據庫類型和版本怎麼選擇,建議剛入門的小夥伴一定要仔細的看一次;
我這次以三臺阿里雲主機用來部署安裝;
1.2 關閉防火牆(三臺節點都需要操作)
[root@deppon001 current]# systemctl stop firewalld.service
[root@deppon001 current]# systemctl disable firewalld.service
1.3 修改hosts文件(三臺節點都需要操作)
在hosts文件中,配置上你的機器的ip 和hostname 切記最上面兩行不要刪除!!!
[root@deppon001 current] vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.24.55.92 deppon001 deppon001
172.24.55.93 deppon002 deppon002
172.24.55.91 deppon003 deppon003
1.4 安裝配置jdk(三臺節點都需要操作)
具體的可以參考JDK安裝配置,比較詳細。
安裝
[root@deppon001 current] mkdir /usr/java
# 解壓縮
[root@deppon001 ~] tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/java
[root@deppon001 ~] cd /usr/java
[root@deppon001 java] mv jdk1.8.0_181/ jdk1.8
# 修改權限
[root@deppon001 java] chmod -R root:root jdk1.8/
配置
修改 /etc/profile 增加下面兩句
[root@deppon001 java] vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8
export PATH=.:$JAVA_HOME/bin:$PATH
驗證
[root@deppon001 java]# vim /etc/profile
[root@deppon001 java]# source /etc/profile
[root@deppon001 java]# echo $JAVA_HOME/
/usr/java/jdk1.8/
1.5 配置NTP (雲主機跳過,不需要配置)
三臺節點都要配置
[root@deppon001 ~] ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@deppon001 ~] yum install -y ntpdate
NTP主節點配置:
[root@deppon001 ~] cp /etc/ntp.conf /etc/ntp.conf.bak
[root@deppon001 ~] cp /etc/sysconfig/ntpd /etc/sysconfig/ntpd.bak
# 改成你自己的ip 網段
[root@deppon001 ~] echo "restrict 172.24.55.0 mask 255.255.255.0 nomodify notrap" >> /etc/ntp.conf
[root@deppon001 ~] echo "SYNC_HWCLOCK=yes" >> /etc/sysconfig/ntpd
[root@deppon001 ~] service ntpd restart
ntp客戶端節點配置:
然後在所有節點都設置定時任務 crontab –e 添加如下內容:
*/30 * * * * /usr/sbin/ntpdate 172.16.101.54
1.6 關閉大頁面(三臺節點都需要操作)
[root@deppon001 ~] echo never > /sys/kernel/mm/transparent_hugepage/defrag
[root@deppon001 ~] echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@deppon001 ~] echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag'>> /etc/rc.local
[root@deppon001 ~] echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'>> /etc/rc.local
修改swp(三臺節點都需要操作)
[root@deppon001 java]# echo 'vm.swappiness = 10' >> /etc/sysctl.conf
[root@deppon001 java]# sysctl -p
vm.swappiness = 0
net.ipv4.neigh.default.gc_stale_time = 120
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_synack_retries = 2
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
kernel.sysrq = 1
vm.swappiness = 10
swap=0-100
0不代表禁用 而是惰性最高
100表示 使用積極性最高
集羣計算對實時性 要求高的 swap=0 允許job掛 迅速的加內存或調大參數 重啓job
集羣計算對實時性 要求不高的 swap=10/30 不允許job掛 慢慢的運行
2安裝httpd服務(在主節點上完成)
2.1 安裝並開啓
[root@deppon001 java]yum install -y httpd
[root@deppon001 java]systemctl start httpd.service
[root@deppon001 java]systemctl enable httpd.service
[root@deppon001 java]systemctl status httpd.service
在瀏覽器中輸入你的ip,如果是雲主機需要把80端口開放出來,出現以下頁面說明http服務沒有問題。
2.2 創建 parcels 文件
[root@deppon001 parcels] cd /var/www/html
[root@deppon001 parcels] mkdir parcels
[root@deppon001 html] cd parcels
2.3 下載 parcel 文件
下載說明:
地址,在下載地址中選擇好對應的CDH版本, 值得提到的是,elx 就是代表了centos的版本號 el7就是值centos7的版本。
下載
[root@deppon001 parcels] wget http://archive.cloudera.com/cdh5/parcels/5.15.2/CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel
[root@deppon001 parcels] wget http://archive.cloudera.com/cdh5/parcels/5.15.2/CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel.sha1
[root@deppon001 parcels] wget http://archive.cloudera.com/cdh5/parcels/5.15.2/manifest.json
去掉名稱結尾"1",不然 CDH 在裝的時候,會一直認爲是在下載,是未完成的
[root@deppon001 parcels] mv CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel.sha1 CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel.sha
2.4 校驗下載的文件是否損壞
[root@deppon001 parcels] sha1sum CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel
8a08c97167587497af69ab50f7665a5364292fcd CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel
[root@deppon001 parcels] cat CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel.sha
8a08c97167587497af69ab50f7665a5364292fcd
2.5 下載cm5.15.2-centos7,配置http服務
地址 (選擇你需要的對應版本)
[root@deppon001 parcels] mkdir /opt/rpminstall
[root@deppon001 parcels] cd /opt/rpminstall/
[root@deppon001 rpminstall] wget http://archive.cloudera.com/cm5/repo-as-tarball/5.15.2/cm5.15.2-centos7.tar.gz
[root@deppon001 rpminstall] tar -zxvf cm5.15.2-centos7.tar.gz -C /var/www/html/
創建和官網一樣的目錄路徑,然後 mv 到指定路徑(十分重要)
[root@deppon001 rpminstall] cd /var/www/html/
[root@deppon001 html] ll
total 8
drwxrwxr-x 3 1106 592 4096 Nov 12 18:00 cm
drwxr-xr-x 2 root root 4096 Mar 24 01:11 parcels
[root@deppon001 html] mkdir -p cm5/redhat/7/x86_64/
[root@deppon001 html] mv cm cm5/redhat/7/x86_64/
[root@deppon001 html]#
[root@deppon001 x86_64] cd /var/www/html/cm5/redhat/7/x86_64/cm/5/RPMS/x86_64
[root@deppon001 x86_64] ll
total 1017652
-rw-rw-r-- 1 1106 592 9859196 Nov 11 16:53 cloudera-manager-agent-5.15.2-1.cm5152.p0.2.el7.x86_64.rpm
-rw-rw-r-- 1 1106 592 788327364 Nov 11 16:53 cloudera-manager-daemons-5.15.2-1.cm5152.p0.2.el7.x86_64.rpm
-rw-rw-r-- 1 1106 592 8704 Nov 11 16:53 cloudera-manager-server-5.15.2-1.cm5152.p0.2.el7.x86_64.rpm
-rw-rw-r-- 1 1106 592 10608 Nov 11 16:53 cloudera-manager-server-db-2-5.15.2-1.cm5152.p0.2.el7.x86_64.rpm
-rw-rw-r-- 1 1106 592 30604196 Nov 11 16:53 enterprise-debuginfo-5.15.2-1.cm5152.p0.2.el7.x86_64.rpm
-rw-rw-r-- 1 1106 592 1066 Nov 11 16:59 generated_index.html
-rw-rw-r-- 1 1106 592 71204325 Nov 11 16:53 jdk-6u31-linux-amd64.rpm
-rw-rw-r-- 1 1106 592 142039186 Nov 11 16:53 oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm
[root@deppon001 x86_64]#
2.6 配置本地的yum源(三臺都要安裝)
CDH集羣在安裝時會就從本地down包,不會從官網了
[root@deppon001 x86_64] vi /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
name = Cloudera Manager, Version 5.15.2
baseurl = http://172.24.55.92/cm5/redhat/7/x86_64/cm/5/
gpgcheck = 0
出現以下界面說明完成了
3. Cloudera-Server 部署和啓動
3.1 安裝 cloudera-manager-daemons 和 cloudera-manager-server
note: 一定要先安裝cloudera-manager-daemons 再安裝server
[root@deppon001 x86_64] cd /var/www/html/cm5/redhat/7/x86_64/cm/5/RPMS/x86_64
[root@deppon001 x86_64] yum install -y cloudera-manager-daemons-5.15.2-1.cm5152.p0.2.el7.x86_64.rpm
[root@deppon001 x86_64] yum install -y cloudera-manager-daemons-5.15.2-1.cm5152.p0.2.el7.x86_64.rpm
3.2 配置 jdbc 驅動(主節點完成)
$>cd /usr/share/java
$>unzip mysql-connector-java-5.1.37.zip
$>cd mysql-connector-java-5.1.37
##必須改名爲 mysql-connector-java.jar,不然後面會報錯 ##將驅動包移動到/usr/share/java 路徑下
$>cp mysql-connector-java-5.1.37-bin.jar ../mysql-connector-java.jar
3.3 創建元數據庫和用戶(主節點完成)
$>su - mysqladmin
$>mysql –uroot -p
mysql>create database cmf DEFAULT CHARACTER SET utf8;
mysql>grant all on cmf.* TO 'cmf'@'%' IDENTIFIED BY '123456';
mysql>flush privileges;
mysql>create database amon DEFAULT CHARACTER SET utf8;
mysql>grant all on amon.* TO 'amon'@'%' IDENTIFIED BY '123456';
mysql>flush privileges;
3.4 修改 cloudera-scm-server 和 MySQL 的配置
[root@deppon001 mysql] cd /etc/cloudera-scm-server/
[root@deppon001 cloudera-scm-server] vi db.properties
[root@deppon001 cloudera-scm-server]
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=172.24.55.92
com.cloudera.cmf.db.name=cmf
com.cloudera.cmf.db.user=cmf
com.cloudera.cmf.db.password=123456
##這句話很重要
com.cloudera.cmf.db.setupType=EXTERNAL
3.5 啓動 cm server
$>service cloudera-scm-server start
3.6 實時查看 cm server 的啓動日誌
$>cd /var/log/cloudera-scm-server/
$>tail -f cloudera-scm-server.log
4.Cloudera-Agent 部署&Parcels 部署&各服務的進程角色分配
4.1 打開ip:7180 登錄
登錄名/密碼 admin/admin
4.2 最終用戶許可條款和條件同意
4.3 選擇免費版本
4.4 爲 CDH 羣集安裝指定主機
輸入三臺機器的hostname 點擊搜索
4.5 爲 CDH 羣集安裝指定主機
4.6 選擇存儲庫
選擇更多選項,在遠程parcels庫中,填入 你的 ip/parcels,就是之前配置的httpd 服務,然後把別的遠程parcels庫 全部刪除掉;
選擇自定義存儲庫, 輸入配置httpd的內網 IP 地址/cm5/redhat/6/x86_64/cm/5/
4.7 不要安裝Oracle JDK
4.8 不要勾選單用戶模式
4.9 提供 SSH 登錄憑據
選擇root,輸入密碼
4.10 正在安裝
4.11 安裝完成
4.12 正在安裝選定 Parcel
4.13 檢查主機準確性
4.14 選擇您要在集羣上安裝的 CDH5 服務(HDFS+YARN+Zookeeper)
建議,剛安裝CDH的小夥伴不要安裝太多的服務,選擇自定義服務,儘量安裝少些服務