三臺CentOS 7.2伺服器上使用Ambari部署HDP
三臺伺服器,配置都一樣,一臺作為master,兩臺作為slaver,如下所示:
os | cpu(核) | memory(G) | 系統盤(G) | 資料盤 |
---|---|---|---|---|
CentOS 7.2 | 2*8core | 128 | 600 | 12*4 SATA |
CentOS 7.2 | 2*8core | 128 | 600 | 12*4 SATA |
CentOS 7.2 | 2*8core | 128 | 600 | 12*4 SATA |
一、修改Hosts
1、vi /etc/hosts#三臺伺服器相同
加入三行:
10.64.27.66master master.data-u.com
10.64.27.67slaver1 slaver1.data-u.com
10.64.27.68slaver2 slaver2.data-u.com
2、vi /etc/sysconfig/network
NETWORK=yes
HOSTNAME=master.data-u.com/slaver1.data-u.com/slaver2.data-u.com#為Master/Slaver1/Slaver2分別設定為
二、配置免密碼ssh登陸
1、在三個伺服器上都用root登陸,都執行ssh-keygen-t rsa,然後三下回車,就會在 /root/.ssh/目錄下生成兩個檔案:
id_rsa和id_rsa.pub
2、全都執行cp id_rsa.pub authorized_keys,把公鑰複製到authorized_keys裡
3、進入到Slaver1和Slaver2的/root/.ssh/目錄下,分別執行:
scpauthorized_keys
[email protected]:/root/.ssh/s1_keysscpauthorized_keys [email protected]:/root/.ssh/s2_keys
把Slaver1和Slaver2的公鑰都拷到Master上。
4、進入到Master的/root/.ssh/目錄下,執行cats1_keys >> authorized_keys 和 cat s2_keys >>authorized_keys,把Slave1和Slaver2的公鑰追加到Master的authorized_keys裡
5、把Master的authorized_keys分發到Slaver1和Slaver2,命令是:
scpauthorized_keys [email protected]:/root/.ssh/authorized_keys
scp [email protected]:/root/.ssh/authorized_keys
這樣就實現了ssh免密碼登陸。
三、配置DNS
vi/etc/resolv.conf,加入一行:
nameserver8.8.8.8
不配置的話會影響後面的wget等操作。
四、分割槽及掛載
sda為系統盤;
sdb為raid1磁碟,用於存放使用者資料,由兩塊物理磁碟組成;
sdc、sdd、sde、sdf、sdg、sdh、sdi、sdj、sdk、sdl十塊磁碟為raid0磁碟,用於做HDFS
sdb分成三個區,1000G用於/dyhome,1000G用於/backup,2000G用於/data,操作過程如下:
0、在根目錄下先建好/dyhome,/backup,/data三個資料夾,用於最後的掛載
1、輸入parted /dev/sdb
2、輸入mklabel gpt #將MBR磁碟格式化為GPT
3、輸入mkpart primary 0% 25%分出第一個分割槽(1T)
4、輸入mkpart primary 25% 50%分出第二個分割槽(1T)
5、輸入mkpart primary 50% 100%分出第三個分割槽(2T)
6、(可選)輸入print可以檢視當前的分割槽方式
7、輸入quit退出分割槽
8、輸入lsblk檢視磁碟分割槽情況,可以看到多了/dev/sdb1、/dev/sdb2、/dev/sdb3
9、輸入mkfs.ext4 /dev/sdb1、mkfs.ext4/dev/sdb2、mkfs.ext4 /dev/sdb3將三個分割槽都格式化為ext4
10、輸入mount /dev/sdb1 /dyhome、mount/dev/sdb1 /backup、mount /dev/sdb1 /data分別掛載三個分割槽
11、輸入df –Th可以看到磁碟掛載情況及分割槽格式等
而raid0的10塊磁碟都做成一個分割槽,以sdc為例,分割槽過程如下:
0、在根目錄下先建好/hdfs/data01-10資料夾,用於最後的掛載
1、輸入parted /dev/sdc
2、輸入mklabel gpt #將MBR磁碟格式化為GPT
3、輸入mkpart primary 0% 100%將整塊磁碟分為一個主分割槽
4、(可選)輸入print可以檢視當前的分割槽方式
5、輸入quit退出分割槽
6、輸入lsblk檢視磁碟分割槽情況,可以看到多了一個/dev/sdc1
7、輸入mkfs.ext4 /dev/sdc1將這個分割槽格式化為ext4
8、輸入mount /dev/sdc1 /hdfs/data01
9、輸入df –Th可以看到磁碟掛載情況及分割槽格式等
對於sdd、sde、sdf、sdg、sdh、sdi、sdj、sdk、sdl,也都執行上述操作,進行分割槽、掛載。然後再輸入partprobe使新分割槽生效。掛載完成後,如果伺服器重啟,則掛載資訊會丟失,為了儲存掛載資訊,使得系統在每一次啟動時都正確掛載,需要修改/etc/fstab檔案,加入如下內容:
五、關閉防火牆/dev/sdc1 /hdfs/data01 ext4 defaults 0 0
/dev/sdd1 /hdfs/data02 ext4 defaults 0 0
/dev/sde1 /hdfs/data03 ext4 defaults 0 0
/dev/sdf1 /hdfs/data04 ext4 defaults 0 0
/dev/sdg1 /hdfs/data05 ext4 defaults 0 0
/dev/sdh1 /hdfs/data06 ext4 defaults 0 0
/dev/sdi1 /hdfs/data07 ext4 defaults 0 0
/dev/sdj1 /hdfs/data08 ext4 defaults 0 0
/dev/sdk1 /hdfs/data09 ext4 defaults 0 0
/dev/sdl1 /hdfs/data10 ext4 defaults 0 0
/dev/sdb1 /dyhome ext4 defaults 0 0
/dev/sdb2 /backup ext4 defaults 0 0
/dev/sdb3 /data ext4 defaults 0 0
六、開啟時間同步systemctl statusfirewalld.service#檢視firewall狀態
systemctl stopfirewalld.service #停止firewall
systemctldisable firewalld.service #禁止firewall開機啟動
在master和slaver上都安裝ntp:
1、rpm -q ntp#檢查是否安裝ntp
2、yum -y install ntp#安裝ntp
3、systemctl enable ntpd#開機自動啟動
4、systemctl start ntpd#啟動服務
安裝完成並啟動服務後:
1、把時區改成中國時區:cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2、使用命令同步時間,本機與外部時間伺服器時間差距太大,讓ntpd不能正常同步:ntpdate -u cn.pool.ntp.org
七、安裝jdk
1、下載安裝檔案(先下載到master上,然後master scp到slaver上):
wget --header"Cookie: oraclelicense=accept-securebackup-cookie"http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.rpm
2、安裝:yum localinstall jdk-8u151-linux-x64.rpm,預設安裝路徑為/usr/java
3、設定環境變數:vi /etc/profile,加入以下內容:
#set java home
JAVA_HOME=/usr/java/default
JRE_HOME=/usr/java/default/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOMEJRE_HOME CLASS_PATH PATH
4、使環境生效:source /etc/profile
5、驗證是否成功配置:
①java –version,正確配置的話應顯示:
javaversion "1.8.0_151"
Java(TM)SE Runtime Environment (build 1.8.0_151-b12)
JavaHotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
②echo$JAVA_HOME,正確配置的話應顯示:
/usr/java/default
八、關閉SELinux
輸入setenforce0臨時關閉,Master和Slaver都做
然後vi /etc/sysconfig/selinux,把SELINUX=enforcing改成SELINUX=disabled,使重啟後也能生效。
(經驗證:需要重啟後才生效)
九、安裝Ambari
十、部署FTP伺服器9.1 製作本地源
1、安裝Apache HTTP伺服器
yum installhttpd#安裝http伺服器
firewall-cmd--add-service=http#防火牆暫時開放http服務
firewall-cmd--permanent --add-service=http#防火牆永久開放http服務
systemctl starthttpd.service#啟動http服務
systemctl enablehttpd.service#允許http服務開機啟動
cd/var/www/html/ #進入網站根目錄
mkdir ambari#建立ambari目錄
2、製作本地源
①下載Ambari 、HDP 、HDP-UTILS 源包(共8.2G,略大),把下面三個連結分三行放在repo.txt檔案裡:
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.2.0/ambari-2.4.2.0-centos7.tar.gz
http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.2.0/HDP-2.4.2.0-centos7-rpm.tar.gz
http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos7/HDP-UTILS-1.1.0.20-centos7.tar.gz
然後輸入:
mkdir /root/hadoop#在root目錄下建hadoop資料夾用於存放下載的檔案
cd /root/hadoop
wget -b -i repo.txt#-b表示後臺wget,-i 表示從文字檔案內讀取網址。下載日誌會儲存在wget-log中,可以通過tail wget-log檢視進度。
cd/var/www/html/ambari#進入到ambari的網站目錄
tar –xzvf /root/hadoop/ambari-2.4.2.0-centos7.tar.gz#解壓ambari
tar –xzvf /root/hadoop/HDP-2.4.2.0-centos7-rpm.tar.gz#解壓HDP
tar –xzvf /root/hadoop/HDP-UTILS-1.1.0.20-centos7.tar.gz#解壓HDP-UTILS
3、下載repo:
wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.2.0/ambari.repo-O /etc/yum.repos.d/ambari.repo#下載ambari的repo到/etc/yum.repos.d裡
wget http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.2.0/hdp.repo-O /etc/yum.repos.d/HDP.repo#下載HDP的repo到/etc/yum.repos.d裡
4、修改repo
開啟/etc/yum.repos.d/ambari.repo,把其中的baseurl和gpgkey改成如下:
baseurl=http://10.64.27.66/ambari/AMBARI-2.4.2.0/centos7/2.4.2.0-136
gpgkey=http://10.64.27.66/ambari/AMBARI-2.4.2.0/centos7/2.4.2.0-136/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
開啟/etc/yum.repos.d/hdp.repo把HDP的baseurl和gpgkey改成如下:
baseurl=http://10.64.27.66/ambari/HDP/centos7/2.x/updates/2.4.2.0
gpgkey=http://10.64.27.66/ambari/HDP/centos7/2.x/updates/2.4.2.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
把HDP-UTILS的baseurl和gpgkey改成如下:
baseurl=http://10.64.27.66/ambari/HDP-UTILS-1.1.0.20/repos/centos7
gpgkey=http://10.64.27.66/ambari/HDP/centos7/2.x/updates/2.4.2.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
注意其中的路徑要跟/var/www/html/ambari裡的各個目錄一致。
9.2安裝ambari伺服器
yum installambari-server –y
9.3配置ambari伺服器
ambari-serversetup#配置ambari server
1、是否自定義:y
2、輸入ambari賬號:dyambari
3、選擇jdk:3
4、輸入JAVA_HOME:/usr/java/default
5、配置資料庫:y
6、選擇資料庫型別:1
7、輸入資料庫名稱:ambari
8、輸入schema名稱:ambari
9、輸入使用者名稱:dyambari
10、輸入密碼:
11:重複輸入密碼:
到此,Ambari Server配置完成。
9.4啟動ambari伺服器
ambari-serverstart
9.5修改埠號
vi /etc/ambari-server/conf/ambari.properties
加入一行:client.api.port=12345
ambari-server restart
9.6安裝hdp叢集
輸入叢集名字:
選擇版本及repo地址。
輸入節點及私鑰資訊(master私鑰)。
安裝成功(之前slaver1一直失敗,可能是因為不小心更新了一下系統,vi /etc/python/cert-verification.cfg,把verify=disable就可以了,參考:http://blog.csdn.net/xfg0218/article/details/78067541)
確認安裝:
選擇安裝哪些元件:
選擇部署服務的節點:
安裝客戶端(最後一列的client全勾上):
其他都沒問題,就是smartsense啟動失敗,貌似是要收費的,後來關掉它就好了。
開啟namenode的HA模式