一、準備:
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 root@$host yum install ntp -y; ssh root@$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 root@$host /etc/init.d/iptables stop; ssh root@$host chkconfig iptables off; done
或者:
service iptables stop
service ip6tables stop
設置成始終保持關閉:
chkconfig iptables off
chkconfig ip6tables off
4、設置集羣免密登錄
因爲在ambari和hdp部署過程中,ambari和hdp部署的節點都有可能互相訪問,所以建議四個節點中的每個節點之間都可以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 root@$host;done
在node2機器上執行如下將命令
for host in node{1,3};do echo $host; ssh-copy-id -i /root/.ssh/id_rsa root@$host;done
在node3機器上執行如下將命令
for host in node{1,2};do echo $host; ssh-copy-id -i /root/.ssh/id_rsa root@$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)交換分區設置
[root@cdh opt]# cat /proc/sys/vm/swappiness
60
在/etc/sysctl.conf 文件裏添加如下參數:
vm.swappiness=10
或者:[root@cdh opt]# echo 'vm.swappiness=10'>> /etc/sysctl.conf
2)關閉透明大頁面壓縮
[root@cdh 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使用)
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/