1. 程式人生 > >三臺CentOS 7.2伺服器上使用Ambari部署HDP

三臺CentOS 7.2伺服器上使用Ambari部署HDP

三臺伺服器,配置都一樣,一臺作為master,兩臺作為slaver,如下所示:

oscpu(核)memory(G)系統盤(G)資料盤
CentOS 7.22*8core12860012*4 SATA
CentOS 7.22*8core12860012*4 SATA
CentOS 7.22*8core12860012*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_keys

scpauthorized_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

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模式

十、部署FTP伺服器