1. 程式人生 > >CDH5.16.1叢集增加新節點 Ubuntu 16.04上搭建CDH5.16.1叢集 Ubuntu 16.04上搭建CDH5.16.1叢集

CDH5.16.1叢集增加新節點 Ubuntu 16.04上搭建CDH5.16.1叢集 Ubuntu 16.04上搭建CDH5.16.1叢集

如果是全新安裝叢集的話,可以參考《Ubuntu 16.04上搭建CDH5.16.1叢集

下面是叢集新增節點步驟:

1.已經存在一個叢集,有兩個節點

192.168.100.19 hadoop-master

192.168.100.20 hadoop-slave1

新增節點ip為192.168.100.21

 

2.新增節點所有的操作都在root下進行,所以首先需要設定ssh可以使用root登入(如果已經是root登入則跳過)

①設定root的登入密碼

sudo passwd root

②切換到root使用者

sudo su root

③設定登入賬戶可以使用root

vi /etc/ssh/sshd_config
#PermitRootLogin prohibit-password #遮蔽這一行
PermitRootLogin yes #增加這一行

④更新軟體列表並檢查是否聯網狀態

apt-get update

 

3.新增節點關閉防火牆

ufw disable

 

4.設定新增節點hostname和hosts

①設定hostname:

vi /etc/hostname

設定為hadoop-slave2

②修改hosts

vi /etc/hosts
127.0.0.1       localhost
#127.0.1.1      test1 #遮蔽這一行

#新增下面三行
192.168.100.19 hadoop-master
192.168.100.20 hadoop-slave1
192.168.100.21 hadoop-slave2

③使用ping命令,檢視以上設定是否正確

ping hadoop-master
ping hadoop-slave1
ping hadoop-slave2

重啟後用root登入 

 

5.讓三臺伺服器之間互相可以使用root無需輸入密碼進行ssh登入。

①新增節點生成公鑰(不要設定密碼)

ssh-keygen -t rsa

 截圖如下:

②將本機的公鑰複製到另外兩臺伺服器上。(過程需要輸入目標伺服器的root登入密碼)

ssh-copy-id -i /root/.ssh/id_rsa.pub hadoop-master #在新增節點上執行
ssh-copy-id -i /root/.ssh/id_rsa.pub hadoop-slave1 #在新增節點上執行
ssh-copy-id -i /root/.ssh/id_rsa.pub hadoop-slave2  #在master和slave1上執行

③測試是否成功

ssh hadoop-master #無密碼遠端登入hadoop-master,使用exit退出
ssh hadoop-slave1 #無密碼遠端登入hadoop-slave1,使用exit退出
ssh hadoop-slave2 #無密碼遠端登入hadoop-slave2,使用exit退出

④如果出現下面的報錯

ssh:connect to host hadoop-slave1 port 22: Connection refused

ssh: connect to host hadoop-slave1 port 22: Connection timed out

檢查root的密碼是否正確,可以使用ssh localhost檢查一下是否可以登入到本機,如果不行則證明root密碼有問題,轉到上面第2個步驟重新設定root密碼。

檢查/etc/hosts檔案中ip和hostname是否正確

檢查防火牆是否關閉

 

6.安裝JAVA執行環境

①正常顯示版本號則跳過下面步驟

java -version

②如果顯示如下,則表示還沒有安裝JAVA

 ③具體JDK的安裝可以參考

《大資料新手之路一:安裝JDK》

 

7.安裝JAVA的MySQL軟體包

apt-get install libmysql-java

 

8.新增節點中下載CDH相關檔案(由於版本的更新,版本號會不斷遞增),並進行設定

①在瀏覽器中輸入 http://archive.cloudera.com/cm5/cm/5/ 檢視到ubuntu對應最新版本

②在瀏覽器中輸入 http://archive.cloudera.com/cdh5/parcels/latest 檢視到ubuntu對應最新版本

③將上面的四個檔案都下載下來

wget -c http://archive.cloudera.com/cm5/cm/5/cloudera-manager-xenial-cm5.16.1_amd64.tar.gz
wget -c http://archive.cloudera.com/cdh5/parcels/latest/CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel
wget -c http://archive.cloudera.com/cdh5/parcels/latest/CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel.sha1
wget -c http://archive.cloudera.com/cdh5/parcels/latest/manifest.json

④將CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel.sha1檔案重新命名為CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel.sha

mv CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel.sha1 CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel.sha

⑤在/opt中建立對應的資料夾結構(cm-5.16.1為當前版本號)

| --/opt
      |--/cloudera
                 |--/parcels
                 |--/parcel-repo
      |--/cm-5.16.1
cd /opt
mkdir cm-5.16.1
mkdir cloudera
cd cloudera
mkdir parcels
mkdir parcel-repo

⑥將CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel、CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel.sha和manifest.json三個檔案拷貝到/opt/cloudera/parcel-repo中

cp CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel.sha manifest.json /opt/cloudera/parcel-repo

⑦解壓cloudera-manager-xenial-cm5.16.1_amd64.tar.gz到/opt中

tar -zxf cloudera-manager-xenial-cm5.16.1_amd64.tar.gz -C /opt

⑧修改配置檔案

vi /opt/cm-5.16.1/etc/cloudera-scm-agent/config.ini
# Hostname of the CM server.
server_host=hadoop-master #修改為主機名

 

9.新增使用者

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

 

10.安裝python

apt-get install python2.7

 

11.設定vm.swappiness=10

vi /etc/sysctl.conf
vm.swappiness=10 #在檔案最後增加一行
cat /proc/sys/vm/swappiness #檢視當前值,設定後需要重啟才生效

 

12.安裝必要的庫

apt-cache search libmysql
apt-get install libmysql++-dev
apt-get install python-libxslt1

 

13.java環境快捷方式

mkdir /usr/java
ln -s /usr/local/java /usr/java/default

 

14.reboot重啟

 

15.啟動程序(報錯資訊的處理可檢視:《Ubuntu 16.04上搭建CDH5.16.1叢集》)

cd /opt/cm-5.16.1/etc/init.d
./cloudera-scm-server start
./cloudera-scm-agent start

 

16.耐心稍等一會,進入master的頁面http://192.168.100.19:7180/cmf/login進行登入

 

17.找到所有主機列表(如果沒看到新的節點,要麼是等的時間不夠久,要麼是上面的步驟出錯了)(可以看到192.168.100.21下的Roles為空)

 

18.點選Add New Host to Cluster,出現嚮導

 

19.這裡顯示還沒有加入到叢集的新節點

 

 20.耐心等待安裝

 

21.返回安裝資訊

 

22.這裡可以為新增節點角色,這裡我們不設定,在後面再新增DataNode的角色

 

23.完成Finished

 

 24.下面步驟為將新增節點加入到DataNode角色中。

 

 

25.點選進入HDFS的DataNode中 

 

26.點選Add Role Instances

 

27.在所有主機上使用DataNode角色

 

28.全部步驟完成。

 

以上。