若是是全新安裝集羣的話,能夠參考《Ubuntu 16.04上搭建CDH5.16.1集羣》html
下面是集羣新增節點步驟:java
1.已經存在一個集羣,有兩個節點python
192.168.100.19 hadoop-mastermysql
192.168.100.20 hadoop-slave1sql
新增節點ip爲192.168.100.21shell
2.新增節點全部的操做都在root下進行,因此首先須要設置ssh可使用root登陸(若是已是root登陸則跳過)json
①設置root的登陸密碼ubuntu
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的安裝能夠參考
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.所有步驟完成。
以上。