cdh 5.12.1 安裝
目前還未成功,僅供個人記錄。
【下載必備工具】
當前系統為win7_x64
1、vmware虛擬機12.5
2、ubuntu16.04服務器版本
3、windows下的ssh工具,采用git bash
4、jdk安裝包jdk-8u144-linux-x64.tar.gz
5、mysql java驅動包 mysql-connector-java-5.1.44-bin.jar
6、Cloudera Manager安裝包 http://archive.cloudera.com/cm5/cm/5/cloudera-manager-xenial-cm5.12.1_amd64.tar.gz
7、cdh 安裝包,三個文件:CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel,CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel.sha1,manifest.json, http://archive.cloudera.com/cdh5/parcels/5.12.1.3/
【注意事項】
1、按默認路徑安裝,比如/opt
2、各節點用戶名和密碼保持一致
3、/opt/cm-5.12.1的文件名不要改,否則會重新下載cm
4、hosts里的主機名必須小寫,沒有別名,沒有重復IP
5、最好用root操作
6、該文檔提到的7180網頁是指namenode:7180網頁
7、jdk最好按照在默認路徑/usr/java/jdk1.8.0-<version>,如果按照在自定義路徑,則需要在7180網頁上配置jdk路徑
【安裝vmware虛擬機】
按正常安裝并注冊即可。
【虛擬機安裝ubuntu16.04】
虛擬機安裝服務器版本16.04。
【虛擬機網路適配】
按默認的NAT連接模式。
【安裝vim】
替代vi編輯器,必備
$sudo apt-get install vim
【設置host】
$sudo vim /etc/hostname
注釋掉 127.0.1.1的映射,改為具體IP地址到host的映射,如192.168.211.131 namenode
重啟生效,$hostname 顯示當前主機名
其中,1、主節點hosts增加子節點的映射
192.168.211.132 datanode1
192.168.211.133 datanode2
192.168.211.134 datanode3
192.168.211.135 datanode4
2、子節點增加主節點的映射
192.168.211.131 namenode
3、修改windowns下的host映射,位于C:\Windows\System32\drivers\etc\hosts文件
增加
192.168.211.131??? namenode
192.168.211.132??? datanode1
192.168.211.133??? datanode2
192.168.211.134??? datanode3
192.168.211.135??? datanode4
【禁止IPv6】
cdh只支持IPv4,不支持IPv6,并且要禁止IPv6
$sudo vim /etc/sysctrl.conf 末尾增加內容:
#IPv6 disabled
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
【啟用root賬號】
設置密碼 $sudo su,$passwd
設置允許遠程root登錄 $sudo vim /etc/ssh/sshd_config
PermitRootLogin項 改為 yes
【安裝ping工具】
服務器版已默認安裝,如果沒安裝,安裝即可:$sudo apt-get install net-tools
【配置IP地址】
需要固定IP地址,由于是虛擬機,略
【安裝ssh以及免登錄】
安裝ssh,包括服務器端:$sudo apt-get install ssh
免證書登錄:
A 想ssh無密碼登錄 B
在A中生成公鑰 #ssh-keygen -t rsa
把公鑰添加到B中 #ssh-copy-id root@B // root為用戶名
注意:需要配置namenode到所有datanode節點的ssh免登錄,以及windows到namenode和所有datanode節點的ssh免登錄
【替換源】
官方的源網絡很慢,可以替換成國內源,比如阿里巴巴
$ sudo vim /etc/apt/sources.list
文件內容為:
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu xenial-security main restricted
deb http://mirrors.aliyun.com/ubuntu xenial-security universe
deb http://mirrors.aliyun.com/ubuntu xenial-security multiverse
【關閉防火墻】
默認防火墻處于關閉狀態,查看防火墻狀態$sudo ufw status
【安裝python2.7】
$sudo apt-get install python
通過 $python 測試安裝結果
【安裝perl】
$sudo apt-get install perl
【安裝iproute】
5.12及以上版本需要安裝iproute
$sudo apt-get install iproute
【同步時區】
默認不是中國時區,需要設置
安裝更新時間工具 $sudo apt-get install ntpdate
查看當前時區 $date -R
設置中國時區(Shanghai) $sudo tzselect 一步步選擇
復制文件到/etc目錄下 $sudo cp /usr/share/zoneinfo/Asia/Shanghai? /etc/localtime
更新時間 $sudo ntpdate time.windows.com
【設置共享目錄】(可選)
設置win主機與虛擬機共享目錄
ubuntu中安裝VMware Tools,參考“http://www.cnblogs.com/ftrako/p/7654773.html”
在虛擬機上設置共享文件夾,具體步驟網上搜索
目標,在ubuntu中可以直接訪問windows下的共享文件夾
【安裝java】
假設安裝包已存放到共享文件夾中
創建安裝目錄 $sudo mkdir /usr/lib/jvm
解壓安裝包 $sudo tar -zxvf /mnt/hgfs/SharedFiles/jdk-8u144-linux-x64.tar.gz -C /usr/lib/jvm/
重命名 $sudo mv jdk1.8.0_144/ jdk
添加環境變量 $sudo vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
環境變量生效 $source /etc/profile
修改權限 $sudo chown -R chendajian /usr/lib/jvm/jdk/
測試安裝是否成功 $javac -version
【集群時間同步】
安裝ntp $sudo apt-get install ntp?? // 主節點
同步時間 $sudo ntpdate -u time.windows.com
【解決Cloudera 建議將 /proc/sys/vm/swappiness 設置為最大值 10。當前設置為 60,所有節點】
#echo 10 > /proc/sys/vm/swappiness
主機重啟,該值會恢復到默認值60
【安裝數據庫驅動,僅主節點】
假設mysql已安裝在windows主機中。
安裝mysql客戶端? $sudo apt-get install mysql-client-core-5.7
安裝mysql驅動 $sudo apt-get install libmysql-java
測試登錄? $mysql -h192.168.211.1 -P3306 -uchendajian -p123456 (h表示主機,P表示端口,u表示用戶名,p表示密碼)
【CDH包拷貝,主節點】
創建預設目錄
$sudo mkdir /opt/cloudera
$sudo mkdir /opt/cloudera/parcel-repo
依次拷貝cdh包的三個文件到parcel-repo目錄下
$sudo cp /mnt/hgfs/SharedFiles/hadoopcdh/CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel /opt/cloudera/parcel-repo/
$sudo cp /mnt/hgfs/SharedFiles/hadoopcdh/CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel.sha1 /opt/cloudera/parcel-repo/
$sudo cp /mnt/hgfs/SharedFiles/hadoopcdh/manifest.json /opt/cloudera/parcel-repo/
修改權限 $sudo chown -R chendajian /opt/cloudera
sha1改名,不然會重新下載
$sudo mv /opt/cloudera/parcel-repo/CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel.sha
【CM安裝,所有節點】
解壓cm包到/opt后注意修改權限
添加mysql java jar包 $sudo cp /mnt/hgfs/SharedFiles/mysql-connector-java-5.1.44-bin.jar /opt/cm-5.12.1/share/cmf/lib
修改成主節點名稱 /opt/cm-5.12.1/etc/cloudera-scm-agent/config.ini, 設置server_host=namenode
修改java路徑
/opt/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh
/opt/cm-5.12.1/share/cmf/bin/cmf-server
備注:主節點配置好cm后,通過scp傳到其它節點
【初始化CM數據庫,僅主節點】
$sudo /opt/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -h192.168.211.1 -P3306 -uchendajian -p123456 --scm-host localhost root 123456
說明:最后三個參數分別是 主機名 用戶名 密碼
數據庫連接配置文件位于 /etc/cloudera-scm-server/db.properties
【解決DNS反向解析問題】
網上暴力方法: #mv /usr/bin/host /usr/bin/host.bak
【創建預設數據庫】
mysql中依次創建hive, activity,oozie,hue等數據庫,參考代碼:create database activity DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
【啟動Cloudera Manager】
agent需要等待server完全啟動后才能啟動
主節點
$sudo /opt/cm-5.12.1/etc/init.d/cloudera-scm-server start
$sudo /opt/cm-5.12.1/etc/init.d/cloudera-scm-agent start
從節點
$sudo /opt/cm-5.12.1/etc/init.d/cloudera-scm-agent start
當cloudera-scm-server、cloudera-scm-agent start啟動成功之后,可通過http://主節點IP:7180來訪問CM,用戶名密碼都為admin。剩下的就是一直點下一步和根據具體的需求來配置集群了。
【配置】
服務啟動幾分鐘后,瀏覽器打開配置網頁 http://namenode:7180
用戶名密碼都為admin
修改jdk路徑
CDH的jdk默認路徑是/usr/java/xxxx,需要改為自定義的/usr/lib/jvm/jdk,在7180的網頁配置的高級選項中找到java相關的配置修改。
頁面顯示 Inspector did not run successfully.
幾種可能:
1、IPv6沒有禁止導致DNS反向查找失敗
2、可能是由于jdk路徑沒有識別
問題集
檢查agent日志,發現
?ERROR??? Error, CM server guid updated, expected 26e2c7d5-dd47-4368-811f-a7d1d13e1b9a, received 24171d15-06a4-43f1-b237-cb0e0540017
解決辦法:
刪除/opt/cm-5.12.1/lib/cloudera-scm-agent/cm_guid