1. 程式人生 > >cdh 的安裝

cdh 的安裝

一、準備:

1、修改主機名,設定叢集host

修改主機名,並使之生效 修改:vim etc/sysconfig/network

 

統一設定叢集host(修改叢集中每個節點的hosts檔案):vim /etc/hosts  

2、利用ntp設定時間同步

less /etc/localtime檢查時區看最後一行是否是CST-8如果不是,執行以下命令修改。

cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

因為hdp中有服務需要叢集的時間同步,所以叢集中的每一個機器需要安裝啟動

ntp服務保證叢集時間的一致,安裝啟動如下所示:

for host in node{1,2,3};do ssh [email protected]$host yum install ntp -y; ssh [email protected]$host; done

 

配置NTP同步:

服務端:

node1作為ntp server,其他節點與其同步

 

ntpdate -u 202.112.10.36 //可不執行,目的是與網路同步  

修改時間:date  -s "2018-3-1 15:58:00" //當前時間

寫入硬體:clock -w

配置服務端:

vi /etc/ntp.conf

restrict 192.168.2.0 mask 255.255.255.0 nomodify notrap

在# Please consider joining the pool (http://www.pool.ntp.org/join.html)後新增兩行:

server 127.127.1.0

fudge 127.127.1.0 stratum 10 #後面的數字在0-15之間都可以,這樣就將該機器作為ntp伺服器提供給客戶端

service ntpd start   或者  /etc/init.d/ntpd start

chkconfig ntpd on  #設定為自啟動

檢查埠是否開啟:如果正常可以看見123埠

netstat -unlp

客戶端:

vi /etc/ntp.conf

在# Please consider joining the pool (http://www.pool.ntp.org/join.html)  後面新增:

server node1

儲存

ntpdate node1   #client端ntp服務未啟動時執行

service ntpd start    或者  /etc/init.d/ntpd start

chkconfig ntpd on   #設定為自啟動

3、防火牆配置

因為叢集中的執行緒之間需要互相通訊,所以需要合理配置防火牆,最簡單的方式是直接關閉防火牆。操作如下所示:

for host in node{1,2,3};do ssh [email protected]$host /etc/init.d/iptables stop; ssh [email protected]$host chkconfig iptables off; done

或者:

service iptables stop

service ip6tables stop

設定成始終保持關閉:

chkconfig iptables off

chkconfig ip6tables off

4、設定叢集免密登入

因為在ambarihdp部署過程中,ambarihdp部署的節點都有可能互相訪問,所以建議四個節點中的每個節點之間都可以ssh無密碼登入,包括它們自己登入到自己。

在Node1機器上執行如下操作,首先檢視該使用者根目錄下的.ssh資料夾中是否有id_rsa檔案,如果沒有執行ssh-keygen命令,一路回車,然後檢視生成的檔案,為了避免之後的麻煩,建議將該目錄下所有檔案的許可權修改成600,本文件部署在ambari機器上的操作如下所示,其他機器類似:

ssh-keygen

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

當所有節點都執行完以上命令後,在node1機器上執行如下將命令

for host in node{2,3};do echo $host; ssh-copy-id -i /root/.ssh/id_rsa [email protected]$host;done

在node2機器上執行如下將命令

for host in node{1,3};do echo $host; ssh-copy-id -i /root/.ssh/id_rsa [email protected]$host;done

在node3機器上執行如下將命令

for host in node{1,2};do echo $host; ssh-copy-id -i /root/.ssh/id_rsa [email protected]$host;done

5、安裝jdk

1)檢視並解除安裝openjdk

檢視有哪些jdk包:

rpm -qa|grep java

解除安裝自帶的openJDK

rpm -e --nodeps tzdata-java-2017b-1.el6.noarch

rpm -e --nodeps java-1.8.0-openjdk-1.8.0.144-0.b01.el6_9.x86_64

rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.144-0.b01.el6_9.x86_64

rpm -e --nodeps java-1.8.0-openjdk-devel-1.8.0.144-0.b01.el6_9.x86_64

2)下載OracleJDK

下載OracleJDK並上傳至/usr/java目錄下

tar -zxvf  jdk-----.tar.gz

配置環境變數

vi  /etc/profile

JAVA_HOME=/usr/java/jdk1.8.0_60

PATH=$JAVA_HOME/bin:$PATH

source /etc/profile

java -version

6,安裝cm支援包並配置環境

rpm  -qa|grep perl

yum install perl

1)交換分割槽設定

[[email protected] opt]#  cat /proc/sys/vm/swappiness

60

在/etc/sysctl.conf 檔案裡新增如下引數:

vm.swappiness=10

或者:[[email protected] opt]# echo 'vm.swappiness=10'>> /etc/sysctl.conf

2)關閉透明大頁面壓縮

[[email protected] opt]# cat /sys/kernel/mm/redhat_transparent_hugepage/defrag

[always] madvise never

修改/etc/rc.local檔案並新增以下兩行

echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag 
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled 

二、安裝cm

1、準備安裝包安裝包

1)地址:

https://www.cloudera.com/documentation/enterprise/release-notes/topics/cm_vd.html#CM5.14.0

2)解壓並移動到安裝目錄

解壓tar包:tar -zxvf cloudera-manager-el6-cm5.13.1_x86_64.tar.gz

解壓後有cloudera和cm-5.13.1兩個目錄


移動這兩個目錄到安裝目錄下,如/opt: mv cloudera cm-5.13.1 /opt/

 

3)下載cdh安裝包

地址:http://archive.cloudera.com/cdh5/parcels/latest/

 

把安裝包放到/opt/cloudera/parcel-repo/目錄下:`mv CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha manifest.json /opt/cloudera/parcel-repo/`

並修改CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha1名稱為CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha,否則識別不到,選擇CDH版本的時候看不到:`mv CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha1 CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha`

4)準備mysql connector

官網:https://dev.mysql.com/downloads/connector

下載:`wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.45.tar.gz`

解壓:`tar -zxvf mysql-connector-java-5.1.45.tar.gz`

放到/usr/share/java目錄下(先檢視目錄是存在,不存在先建立目錄):`cp mysql-connector-java-5.1.45-bin.jar /usr/share/java/mysql-connector-java.jar`

或者放到目錄/opt/cm-5.13.1/share/cmf/lib/下。

前者安裝hive的時候可以直接使用,後者會找不到,需要再執行一次命令:`cp /opt/cm-5.13.1/share/cmf/lib/mysql-connector-java-5.1.45-bin.jar /opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/hive/lib/`

 

2、配置安裝

1)配置節點檔案:

vim /opt/cm-5.13.1/etc/cloudera-scm-agent/config.ini

server_host為cm server的主機名或ip

server_port為server的通訊埠,預設為7182

 

 

2)複製agent到其他節點

scp -r /opt/cm-5.13.1 IP:/opt

3)在所有節點上建立使用者cloudera-scm

useradd --system --home=/opt/cm-5.13.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

4) 設定資料庫資訊

8.1 在mysql上新建資料庫:cmf(cloudera manage資料庫)、hive(hive資料庫)、amon(cloudera Acrivity Monitor使用)、rman(cloudera Reports Manager使用)

mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

mysql> create database cmf DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

mysql> create database rman  DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

mysql> create database hive_monitor  DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

 

8.2 設定cmf連線資訊:`/opt/cm-5.13.1/share/cmf/schema/scm_prepare_database.sh mysql -hhost29  --scm-host host28  cmf usrname password`

 

    命令說明:/opt/cm-5.13.1/share/cmf/schema/scm_prepare_database.sh 資料庫型別 -h資料庫主機 --scm-host cm主機  資料庫名稱  使用者名稱  密碼

    

    具體引數可參看官網[https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_installing_configuring_dbs.html#concept_i2r_m3m_hn__section_qjj_pyp_bm][3]

 

8.3 檢視配置檔案,發現資訊已寫入:`vim /opt/cm-5.13.1/etc/cloudera-scm-server/db.properties`

 

5)啟動

啟動server: /opt/cm-5.13.1/etc/init.d/cloudera-scm-server start (只啟動主節點上的一個server)

啟動agent: /opt/cm-5.13.1/etc/init.d/cloudera-scm-agent start

 

 

三、安裝群集

1、 登入cm

在瀏覽器輸入http://IP:7180登入cm(ip替換為cm server主機ip,埠為server的http服務埠,預設為7180),使用者名稱密碼均為admin

 

2、 選擇要安裝的cm版本

選擇免費或者試用版都可以,如果沒有用到高階功能 ,試用版到期也沒什麼影響,可繼續使用。

 

3、 群集安裝

各個節點正常啟動後,可以在當前管理的主機列表中看到對應的節點。選擇你要使用節點就可以了,基本上全選。

 

選擇CDH版本這裡會顯示你放在/opt/cloudera/parcel-repo/下的parcel包,若未顯示,則檢查CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha1是否名稱未改為CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha,修改之後重啟server服務和agent服務。

這裡第一個和第二個警告,按頁面提示的設定方法設定即可,第三個警告是jdk版本不對,不能使用openjdk,需要oracle jdk。

每個節點上都設定一下:

執行:`echo 10 > /proc/sys/vm/swappiness`

並編輯檔案sysctl.conf:`vim /etc/sysctl.conf`,新增或修改vm.swappiness = 0

執行:

    echo never > /sys/kernel/mm/transparent_hugepage/defrag

    echo never > /sys/kernel/mm/transparent_hugepage/enabled

並編輯檔案rc.local :`vim /etc/rc.local`

 

若安裝過程中中斷,再次繼續安裝時,可能出現主機受管情況:

 

此時停止所有cm服務,刪除cmf資料庫,重新初始化cmf資料庫即可。
刪除資料庫:進入mysql,執行drop database cmf;

create database cmf  DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
解除安裝掛載點:umount cm-5.13.1/run/cloudera-scm-agent/process
清除所欲節點的agent uuid資訊:rm -rf cm-5.13.1/lib/cloudera-scm-agent/*

注意:一定要先解除安裝掛載點,否則會提示無法刪除:rm: 無法刪除"cm-5.13.1/run/cloudera-scm-agent/process": 裝置或資源忙

選擇要安裝的服務,可直接選擇組安裝,或自定義安裝

填寫事先建好的資料庫資訊

繼續操作,保持預設選項即可。

注意: 若修改了hdfs的儲存資料夾,一定要確定資料夾已經存在,並確保訪問許可權。否側hdfs會無法啟動,並且報錯資料夾不存在。

 

、安裝或使用過程中遇到的問題

1、No portmap or rpcbind service is running on this host. Please start portmap or rpcbind service before attempting to start the NFS Gateway role on this host.

在安裝 NFS Gateway那個節點上安裝rpcbind:

    安裝:`yum install rpcbind`

    啟動:`service rpcbind start`

2、

在安裝Hive Metastore Server服務的那臺機器上操作:

    cp /opt/cm-5.13.1/share/cmf/lib/mysql-connector-java-5.1.45-bin.jar /opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/hive/lib/

3,設定資料庫時報錯 

Logon denied for user/password. Able to find the database server and database, but logon request wa

方法一:失敗

設定root授權訪問以上所有的資料庫

mysql>grant all privileges on *.* to 'root'@'主機名' identified by 'msql密碼' with grant option;
mysql>flush privileges;

方法二:成功

SELECT `User`, `Host`, Length(`Password`) FROM mysql.user;

41:新密碼,0:沒有密碼,16:舊密碼

將為0的設定一下密碼,連線即可

mysql>SET PASSWORD FOR 'root'@'127.0.0.1'=PASSWORD('123456');

mysql>flush privileges;

 

4,設定資料庫時報錯 (hue)

報錯: Unexpected error. Unable to verify database connection.

檢視server日誌:/opt/cm-5.13.2/log/cloudera-scm-server/cloudera-scm-server.log

 

解決辦法:

安裝 :yum install libxslt.so.1 -y  失敗

安裝:成功

yum install krb5-devel cyrus-sasl-gssapi cyrus-sasl-deve libxml2-devel libxslt-devel mysql mysql-devel openldap-devel python-devel python-simplejson sqlite-devel