HDP大數據平臺搭建,部署Mahout,spark等

河北科技大學-許雲峯大數據團隊-肖軼超出品

圖片從word中直接粘貼過來有些問題,湊合着看吧,圖片太多了,不想一個一個上傳。等我有時間了在弄個圖片的事情吧。這算個 第一版吧。我的文檔可以做做到從無到有複製粘貼即可完成平臺的搭建。我很有信心,因爲我這麼做過。是從一個新系統開始做的那種。我是在實體服務器上搭建的,虛擬機的沒有時間探索了。開源的東西感覺資料都很少。我做了之後希望你們少踩坑吧

 

Hortonworks Data Platform是基於集中式體系架構(YARN)的企業級開源Apache Hadoop分發版本。HDP解決靜態數據的全部需求,支持實時客戶應用和提供魯棒性分析,加快決策和創新。HDP平臺集成了大部分關鍵的大數據處理組件,並且隨着這些組件的更新而更新,用戶可以根據自己的需求,選擇安裝HDP的版本,詳見圖3-40(圖片來自HDP官網)。HDP版本和其集成的開源組件的版本對照表如下圖所示。搭建HDP之前先部署Ambari,因爲Ambari可以方便HDP的自動化安裝。

 

圖3-40 HDP與其他開源項目的版本關係圖

此處我們選擇的HDP版本爲 2.6.2 ,Ambari版本爲2.6.2.0。讀者安裝前需確定HDP和Ambari版本之間的對應關係(圖3-40中包含HDP版本與Ambari版本關係)以免因爲版本不匹配,造成安裝和使用中的問題。各個Ambari版本對應支持的Linux系統及其版本統計圖,如圖3-41所示,筆者選擇Centos7系統,使用的鏡像版本爲CentOS-7-x86_63-DVD-1708.iso。此次HDP平臺的搭建,我們選擇在真實的物理節點上進行,在虛擬機上的搭建過程與此略有不同。

 

圖3-41各個Ambari版本對應支持的Linux系統及其版本統計圖

以下安裝都是使用root用戶登錄後操作。由於root用戶權限過大,一些linux發行版並不允許root用戶以圖形化界面登錄,但是Centos系統是允許的。此處的安裝過程都是在root用戶圖形化界面和終端中操作的。

3.3.1 前期準備

3.3.1.1 添加讀取ntfs硬盤功能

讀者如果不需要讀寫移動硬盤或者優盤,可以跳過此步驟。

因爲筆者之前已經下載好了HDP和Ambari的安裝包,並且拷貝在了移動硬盤中,所以此處添加ntfs-3g功能來將HDP和Ambari的安裝包拷貝到主節點中的“/root/下載”路徑下,以保證筆者的安裝環境和讀者的安裝環境保持一致。HDP和Ambari的安裝包的下載地址後面我們會有提及。讀者安裝的時候最好選擇沒有安裝過hadoop環境的系統,不然有可能會出現各種問題,比如HDP要新建很多用戶,其中就有hadoop用戶,可以先找三臺服務器進行實驗,如果成功後,再添加其他節點,如果不成功,建議重新安裝centos7系統後再進行安裝。使用完移動硬盤或者優盤後,安裝HDP平臺之前,需要先卸載掉ntfs-3g功能,因爲它會出現在HDP平臺安裝過程的警告中。如果需要讀取移動硬盤或者優盤,可以在HDP安裝完以後,再安裝此功能。

1、添加aliyun的epel源

在終端中輸入如下指令:

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2、yum 安裝ntfs-3g

在終端中輸入如下指令:

yum install ntfs-3g

安裝完成ntfs-3g服務後終端顯示的信息如圖3-42所示。

 

圖3-42 安裝完成ntfs-3g服務後終端顯示的信息

3、判斷 yum 安裝ntfs-3g是否成功

在終端中輸入如下指令:

yum list installed | grep ntfs-3g

ntfs-3g安裝成功的測試結果如圖3-43所示。

 

圖3-43 ntfs-3g安裝成功的測試結果

3.3.1.2 爲所有節點配置靜態IP

因爲服務器每次開機可能會改變IP,所以三臺都要配置靜態IP。三臺機器的配置文件略有不同,即配置文件中的IP地址、 IPADDR參數不同。此處我們以其中的一臺服務器舉例。

1、在網絡設置中查看本機正在使用的網卡及IP

如圖3-44中顯示正在使用的網卡爲em2。

 

圖3-44 查看本機正在使用的網卡

我們也可以在終端輸入ifconfig查看當前服務器的IP地址,如圖3-45所示,當前服務器正在使用的網卡爲em1,em1的IP地址爲192.168.10.237。(圖3-44和圖3-45並非同一臺服務器的網卡信息)

 

圖3-45 查看em1的IP地址

2、修改 ifcfg-em1文件

在終端中輸入如下指令:

cd /etc/sysconfig/network-scripts/

gedit ifcfg-em1    #此處應修改em1爲讀者自己的網卡號

原配置文件如下:

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=dhcp

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=em1

UUID=868d312a-e0e8-4a06-a1cc-fb0a67116e37

DEVICE=em1

ONBOOT=no

按照如下修改配置文件:

需要修改的參數

BOOTPROTO=static  #修改ip爲靜態

ONBOOT=yes  #設置爲開機啓動

需要添加的參數

IPADDR=192.168.10.201  #每臺服務需要年設置成不同的IP,第二臺服務器的結尾可以是202,第三臺服務器的結尾可以是203

NETMASK=255.255.255.0  #子網掩碼

GATEWAY=192.168.10.1 #默認網關

保存文件。

3、修改/etc/sysconfig/network文件

在終端中輸入如下指令:

gedit /etc/sysconfig/network

然後在文件的末尾下添加以下語句:

NETWORKING=yes

GATEWAY=192.168.10.1

DNS1=119.29.29.29

DNS2=182.254.116.116

保存文件。

4、重啓網卡

在終端中輸入如下指令:

systemctl restart network.service

輸入ifconfig  查看現在的IP地址,輸出結果如圖3-46所示。

 

圖3-46 重啓網卡後顯示的信息

可以看到em1 的IP地址已經變爲192.168.10.201,此時,可以打開瀏覽器測試是否可以聯網。

其他兩臺服務器靜態IP的配置與此類似,只要換成不同的IP即可,我們設置namenode的IP爲192.18.10.201。2個datanode的IP分別爲192.168.10.202和192.168.10.203。

3.3.1.3 所有節點配置ssh免密碼登錄本機

1、安裝SSH server

執行命令:yum install openssh-server

安裝的過程中會讓用戶輸入兩次“y”,最後安裝後的界面如圖3-47所示。

 

圖3-47 安裝SSH server成功後顯示的信息

2、使用ssh服務免密碼登錄本機

執行命令:ssh localhost

此時會有如下提示(SSH首次登錄提示)如圖3-48所示,輸入“yes”,然後需要用戶輸入一次root用戶的密碼。

 

圖3-48 ssh登錄本機

但這樣登錄是需要每次都輸入密碼的。因爲如果不修改爲免密碼登錄的話,啓動Hadoop會讓我們輸入很多次密碼,所以我們需要配置成SSH無密碼登錄。

首先退出剛纔的SSH,就回到了我們原先的終端窗口,然後利用ssh-keygen 生成密鑰,並將密鑰加入到授權中:

exit                    # 退出剛纔的ssh localhost

cd ~/.ssh/              # 若沒有該目錄,請先執行一次ssh localhost

ssh-keygen -t rsa       # 然後會有3次提示用戶輸入,因爲要設置成免密碼登錄的方式,所以都直接按回車鍵即可。

cat id_rsa.pub >>authorized_keys  # 加入授權

配置SSH無密碼登錄界面,如圖3-49所示。

 

圖3-49 配置SSH無密碼登錄

此時再執行ssh localhost 命令,SSH無密碼登錄成功,如圖3-50所示,輸入exit,退出。

 

圖3-50 SSH無密碼登錄成功

如果沒有成功,需要先刪除 ./ssh內的文件,然後重新配置SSH登錄。命令如下:

cd ~/.ssh

然後輸入ls ,我們可以看到~/.ssh一共有四個文件:

id_rsa

id_rsa.pub 

known_hosts

authorized_keys

然後輸入:

rm -r ~/.ssh

系統會提示 rm:是否進入目錄"/root/.ssh"?

接下來全部都輸“y”,即可全部刪除~/.ssh內的文件。

3.3.1.4 修改每個節點的host和FQDN

爲了以後能夠採用“ssh + 主機名”的方式來訪問其餘節點,要保證每個節點上的hosts文件下有各個ip和主機名對應的映射。

1、設置主機名

每個節點都要設置,執行如下命令:

gedit /etc/sysconfig/network

將以下內容添加到文件中:

HOSTNAME=c205-001  #但HOSTNAME的參數不同,三臺服務器分別爲c205-001,c205-002,c205-003

保存退出後,重啓網卡,執行如下命令:

systemctl restart network.service

2、修改host文件

終端中輸入命令:

gedit /etc/hosts

修改之前的內容如下:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

刪掉之前的內容,替換的內容如下:

192.168.10.201  c205-001.hadoop   c205-001

192.168.10.202  c205-002.hadoop   c205-002

192.168.10.203  c205-003.hadoop   c205-003

保存後關閉。

3、修改/etc/hostname

終端中輸入命令:

gedit /etc/hostname

之前的內容爲:

localhost.localdomain

替換爲我們想要的hostname,即分別爲c205-001,c205-002,c205-003。

保存退出後,重啓網卡,執行如下命令:

systemctl restart network.service

4、測試使用“ssh + 主機名”方式登錄是否成功

例如在主節點上進行測試。如果沒有出現如下返回的內容則是因爲還沒有更新好,可以輸入幾次hostnamectl和systemctl restart network.service指令,就會出現正確的返回內容。

輸入:hostname  

返回:c205-001

輸入:hostname -f

返回:c205-001.hadoop

輸入:hostnamectl

返回:

 Static hostname: c205-001

Icon name: computer-server

Chassis: server

Machine ID: e78dc180677d4c84be5facbd517668d4

Boot ID: 0fb80e52aad340bcab99cb49a371ca0d

 Operating System: CentOS Linux 7 (Core)

CPE OS Name: cpe:/o:centos:centos:7

Kernel: Linux 3.10.0-693.el7.x86_64

Architecture: x86-64

3.3.1.5 實現主節點免密碼登錄從節點

1、將主節點的公鑰文件拷貝到從節點上

此時會讓你輸入一次“yes”和密碼,執行之前要保證從節點已經開機,否則會出現不能複製到從節點的問題。

終端中執行如下命令:

scp ~/.ssh/id_rsa.pub  root@c205-002:~

scp ~/.ssh/id_rsa.pub  root@c205-003:~

結果如圖3-51所示。

 

圖3-51 將主節點的公鑰文件拷貝到從節點上

2、將主節點的公鑰追加到授權文件中

在兩個從節點中執行如下命令:

cat  ~/id_rsa.pub >>  ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

rm ~/id_rsa.pub

結果如圖3-52所示。

 

圖3-52 將主節點的公鑰追加到授權文件中

在主節點中使用”ssh + 主機名”的方式,實現主節點到從節點無密碼訪問。

終端中執行如下命令:                               

ssh c205-002

登錄成功後,如圖3-53所示。第一次這樣登錄的時候會讓你輸入一次“yes”,但是不需要輸入密碼。以後ssh登錄都不需要再輸入“yes”和密碼了。

 

圖3-53使用”ssh + 主機名”的方式登錄

輸入exit,退出登錄

3.3.1.6 在所有節點上開啓NTP 服務

安裝或更新NTP,終端中執行如下命令:

yum  installntp

系統會提示兩次輸入“y”,安裝或更新NTP結果如圖3-53所示。

 

圖3-53安裝或更新NTP

 

接下來將ntp服務設置爲開機自啓動。

在終端中依次輸入:

systemctl is-enabled ntpd

systemctl enable ntpd

systemctl start ntpd

結果如圖3-54所示。

 

圖3-54 ntp服務設置爲開機自啓動

3.3.1.7 關閉所有節點的防火牆

關閉節點防火牆,在所有節點的終端中執行如下命令:

systemctl disable firewalld

systemctl stop firewalld

結果如圖3-55 所示。

 

 

圖3-55 關閉防火牆

3.3.1.8 所有節點關閉SELinux

1、查看SELinux狀態

在終端中輸入如下指令:

sestatus

結果如圖3-56所示。

 

圖3-56 查看SELinux狀態

如果SELinux status參數爲enabled(SELinux status: enabled),即爲開啓狀態。

2、關閉SELinux

需要注意的是,修改配置文件後需要重啓機器。

在終端中修改配置文件,執行如下指令:

gedit  /etc/sysconfig/selinux

配置文件如圖3-57所示。

 

圖3-57 SELinux配置文件

將selinux參數由enforcing修改爲disabled,執行如下命令:

SELINUX=disabled

修改完成後保存,退出。

若是服務器不能現在關機,可以選擇臨時關閉,不用重啓機器,執行如下命令:

setenforce 0

3.3.2 在主節點上製作本地源

1、安裝 Apache HTTP 服務

在終端中輸入如下命令:

yum install httpd

安裝的過程中會輸入一次“y”,結果如圖3-58所示。

 

 

 

圖3-58 安裝 Apache HTTP 服務

因爲已經關閉了防火牆,所以就不用設置允許 http 服務(永久)通過防火牆了。

2、添加 Apache 服務到系統層,使其隨系統自動啓動

在終端中輸入如下命令:

systemctl start httpd.service

systemctl enable httpd.service

結果如圖3-59所示。

 

圖3-59 添加 Apache 服務到系統層

3、安裝本地製作相關工具

在終端中輸入如下命令:

yum install yum-utils create repo

安裝的過程中系統會輸入一次“y”,結果如圖3-60所示。

 

圖3-60 安裝本地製作相關工具

4、下載HDP 2.6.2 和Ambari-2.6.2.0對應centos7的安裝資源

Ambari-2.6.2.0 tar包下載地址:

http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.2.0/ambari-2.6.2.0-centos7.tar.gz

Ambari Repo File 文件鏈接:

http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.2.0/ambari.repo

HDP-2.6.5.0 tar包下載地址:

http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.5.0/HDP-2.6.5.0-centos7-rpm.tar.gz

HDP-UTILS 2.6.5.0 tar包下載地址:

http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos7/HDP-UTILS-1.1.0.21-centos7.tar.gz

HDP Repo File 文件鏈接:

http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.5.0/hdp.repo

5、將下載的壓縮包解壓到/var/www/html/ambari目錄

在httpd網站根目錄(httpd網站根目錄默認爲/var/www/html/)下,創建目錄ambari,然後將三個文件都解壓到/var/www/html/ambari/路徑下。

在終端中輸入如下命令:

cd /var/www/html

mkdirambari

利用圖形化界面將下載好的三個文件在/root/下載/路徑下解壓。Ambari-2.6.2.0解壓後最外層文件夾名需命名爲ambari,HDP-2.6.5.0文件解壓後最外層文件夾名需命名爲HDP,HDP-UTILS 2.6.5.0解壓後,最外層文件夾名需命名爲HDP-UTILS。然後將三個命名好的文件夾放在/var/www/html/ambari/路徑下。

修改/var/www/html/ambari文件夾及其內部文件的權限爲root可讀寫,以防HDP安裝的過程中出現不能讀取的情況。

6、驗證httpd網站是否被訪問

用瀏覽器直接訪問下面的地址:

http://192.168.10.201/ambari/

此處請讀者注意將192.168.10.201修改爲自己的集羣主節點的IP地址,否則會出現在瀏覽器中不能訪問的現象。圖3-61爲訪問成功的界面。

 

圖3-61 訪問httpd網址的結果

7、修改HDP Repo File

修改hdp.repo,在終端中執行如下指令:

cd /root/下載

gedithdp.repo

初始配置如下:

#VERSION_NUMBER=2.6.3.0-235

[HDP-2.6.3.0]

name=HDP Version - HDP-2.6.3.0

baseurl=http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.3.0

gpgcheck=1

gpgkey=http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.3.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

enabled=1

priority=1

[HDP-UTILS-1.1.0.21]

name=HDP-UTILS Version - HDP-UTILS-1.1.0.21

baseurl=http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos7

gpgcheck=1

gpgkey=http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.3.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

enabled=1

priority=1

修改其中的URL爲本地的地址,修改後的配置如下:

#VERSION_NUMBER=2.6.3.0-235

[HDP-2.6.3.0]

name=HDP Version - HDP-2.6.3.0

baseurl=http://192.168.10.201/ambari/HDP/centos7/2.6.3.0-235/

gpgcheck=1

gpgkey=http://192.168.10.201/ambari/HDP/centos7/2.6.3.0-235/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

enabled=1

priority=1

[HDP-UTILS-1.1.0.21]

name=HDP Utils Version - HDP-UTILS-1.1.0.21

baseurl=http://192.168.10.201/ambari/HDP-UTILS

gpgcheck=1

gpgkey=http://192.168.10.201/ambari/HDP-UTILS/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

enabled=1

priority=1

修改成功後保存並退出

8、修改Ambari Repo File

在終端中執行如下指令:

cd /root/下載

geditambari.repo

初始文件如下:

#VERSION_NUMBER=2.6.0.0-267

[ambari-2.6.0.0]

name=ambari Version - ambari-2.6.0.0

baseurl=http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.0.0

gpgcheck=1

gpgkey=http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.0.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

enabled=1

priority=1

修改其中的URL爲本地的地址,修改後的配置如下:

#VERSION_NUMBER=2.6.0.0-267

[ambari-2.6.0.0]

name=ambari Version - ambari-2.6.0.0

baseurl=http://192.168.10.201/ambari/ambari/centos7/2.6.0.0-267/

gpgcheck=1

gpgkey=http://192.168.10.201/ambari/ambari/centos7/2.6.0.0-267/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

enabled=1

priority=1

保存後退出。

執行如下兩行命令,將修改過的源放到/etc/yum.repos.d/下面。

cp /root/下載/hdp.repo  /etc/yum.repos.d/

cp /root/下載/ambari.repo  /etc/yum.repos.d/

然後查看一下該路徑下是否有該文件,在終端中執行如下指令:

cd /etc/yum.repos.d/

ls

結果如圖3-62所示。

 

圖3-62 查看/etc/yum.repos.d/路徑下的文件

9、清理並更新軟件源

在主節點的終端中依次輸入如下命令:

yum clean all

yum list update

yum makecache

yum repolist

結果如圖3-63所示。

 

圖3-63清理並更新軟件源後的結果

3.3.3 主節點上安裝MYSQL數據庫

1、下載mysql的repo源

CentOS 7.2的yum源中默認沒有mysql,要先下載mysql的repo源。

在終端中執行如下指令:

cd /opt

mkdirmysql

cd  mysql

wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

2、安裝mysql57-community-release-el7-8.noarch.rpm包

在終端中執行如下指令:

rpm -ivhmysql57-community-release-el7-8.noarch.rpm  --nodeps --force

3、安裝MYSQL

在終端中執行如下指令:

yum install mysql-server

安裝的時候會輸入2次“y”

結果如圖3-64所示。

 

圖3-64安裝mysql-server

4、啓動MYSQL

查看MySQL服務是否已啓動,在終端中執行如下指令:

service mysqld status

結果如圖3-65所示。

 

圖3-65安裝mysql服務

啓動服務,在終端中執行如下指令:

systemctl start mysqld

結果如圖3-66所示。

 

圖3-66啓動mysql服務

5、重置root密碼

MySQL5.7會在安裝後爲root用戶生成一個隨機密碼,而不是像以往版本的空密碼。可以在安全模式修改root登錄密碼或者用隨機密碼登錄修改密碼。

下面用隨機密碼方式:

MySQL爲root用戶生成的隨機密碼,通過mysqld.log文件可以查找到。

執行如下命令:

grep 'temporary password' /var/log/mysqld.log

如圖3-67中的隨機密碼爲gpupLo%3W=Ia

 

圖3-67查看數據庫的隨機密碼

修改root用戶密碼:(MySQL的密碼策略比較複雜,過於簡單的密碼會被拒絕)。

在終端中執行如下指令:

mysql -u root -p

然後輸入剛纔的隨機密碼,點擊回車。

結果如圖3-68所示

 

圖3-68修改root用戶密碼

設置密碼,在終端中執行如下指令:

mysql> SET PASSWORD FOR 'root'@'localhost'= "此處填寫你的密碼";

退出mysql數據庫,在終端中執行如下指令:

mysql> exit

用root新密碼登錄,在終端中執行如下指令:

mysql -u root -p此處填寫你的密碼(注意:-p和密碼之間沒有空格,以後不再贅述此注意事項)

退出mysql數據庫,在終端中執行如下指令:

mysql> exit

6、開放3306端口

用root密碼登錄,在終端中執行如下指令:

mysql -u root -p此處填寫你的密碼

登錄後依次輸入如下命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '此處填寫你的密碼' WITH GRANT OPTION;

FLUSH PRIVILEGES;

exit;

因爲已經關閉了防火牆,所以此處不需要再開啓防火牆mysql 3306端口的外部訪問。

7、創建ambari數據庫及用戶

Centos系統登錄root用戶執行下面語句。

首先用root密碼登錄mysql,在終端中執行如下指令:

mysql -u root -p此處填寫你的密碼

create database ambari character set utf8 ;

CREATE USER 'ambari'@'%'IDENTIFIED BY '此處填寫你的密碼';

GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';

FLUSH PRIVILEGES;

use ambari

exit

8、如果要安裝Hive,創建Hive數據庫和用戶

首先用root密碼登錄mysql,在終端中執行如下指令:

mysql -u root -p此處填寫你的密碼

create database hive character set utf8 ;

CREATE USER 'hive'@'%'IDENTIFIED BY '此處填寫你的密碼';

GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';

FLUSH PRIVILEGES;

exit;

9、如果要安裝Oozie,創建Oozie數據庫和用戶

首先用root密碼登錄mysql,在終端中執行如下指令:

mysql -u root -p此處填寫你的密碼

create database oozie character set utf8 ;

CREATE USER 'oozie'@'%'IDENTIFIED BY '此處填寫你的密碼';

GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%';

FLUSH PRIVILEGES;

exit;

10、安裝mysqljdbc驅動

在終端中執行如下指令:

yum install mysql-connector-java

安裝的過程會讓用戶輸入一次“y”,結果如圖3-68所示。

 

圖3-68安裝mysqljdbc驅動

 

3.3.4 爲所有節點安裝JDK

筆者使用的JDK版本爲 "1.8.0_131",請讀者自行到官網下載JDK文件。筆者的下載路徑爲/root/下載/

1、新建java8文件夾

在終端中輸入如下命令:

cd  /opt

mkdir java8

2、將tar.gz文件拷貝到java8目錄下

終端中輸入如下命令:

cp /root/下載/jdk-8u131-linux-x64.tar.gz  /opt/java8  #此處可以修改爲想要安裝的其他路徑,但是不建議放在/目錄下,有可能會報錯。

3、解壓JDK文件

進入/opt/java8文件夾。在終端中輸入如下命令:

cd /opt/java8

解壓文件,在終端中輸入如下命令:

tar -zxvf jdk-8u131-linux-x64.tar.gz

4、配置java環境

在終端中輸入如下命令:

       gedit ~/.bashrc

       然後在文檔的末尾加入

#java

export JAVA_HOME=/opt/java8/jdk1.8.0_131

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

然後點擊ctrl+s保存後關閉文件

爲了使配置文件立即生效,在終端輸入如下命令:

source ~/.bashrc

5、測試是否安裝成功

終端中輸入如下命令:

java -version

出現如下信息:

java version "1.8.0_131"

Java(TM) SE Runtime Environment (build 1.8.0_131-b11)

Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

則表示安裝成功。如果沒有出現這些信息,請嘗試關閉當前終端窗口,然後重新打開一個終端窗口進行測試。

3.3.5 所有節點修改Python的配置文件

在終端中執行如下指令:

gedit /etc/python/cert-verification.cfg

原配置文件如下:

# Possible values are:

# 'enable' to ensure HTTPS certificate verification is enabled by default

# 'disable' to ensure HTTPS certificate verification is disabled by default

# 'platform_default' to delegate the decision to the redistributor providing this particular Python version

# For more info refer to https://www.python.org/dev/peps/pep-0493/

[https]

verify=platform_default

將verify=platform_default參數修改爲verify=disable

保存退出。

3.3.6 安裝Ambari-2.6.2.0

在終端中輸入如下命令:

cd /etc/yum.repos.d/

yum install ambari-server

輸入2次“y”

結果如圖3-68所示。

 

圖3-68安裝Ambari-2.6.2.0

 

輸入命令:

ambari-server setup

系統會提示輸入“n”,但是要輸入“y”.

Customize user account for ambari-server daemon [y/n] (n)?

然後,系統會提示

Enter user account for ambari-server daemon (root):

按回車鍵

接下來,會讓用戶檢查JDK版本

Checking JDK...

[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8

[2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7

[3] Custom JDK

==============================================================================

Enter choice (1): 3

因爲我們自己安裝了java環境,所以我們輸入:3

然後系統會提示用戶輸入自己所安裝的java環境的路徑

WARNING: JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts.

WARNING: JCE Policy files are required for configuring Kerberos security. If you plan to use Kerberos,please make sure JCE Unlimited Strength Jurisdiction Policy Files are valid on all hosts.

Path to JAVA_HOME: /opt/java8/jdk1.8.0_131

此處我們的JDK路徑爲/opt/java8/jdk1.8.0_131

輸入後點擊回車。

然後,系統會提示:

Enter advanced database configuration [y/n] (n)?

輸入:y

接下來,系統會提示:

Configuring database...

==============================================================================

Choose one of the following options:

[1] - PostgreSQL (Embedded)

[2] - Oracle

[3] - MySQL

[4] - PostgreSQL

[5] - Microsoft SQL Server (Tech Preview)

[6] - SQL Anywhere

此處我們安裝了MySQl數據庫,所以選擇3,數據庫的密碼我們設置爲 “此處填寫你的密碼”,密碼需要輸入兩次,其他的設置如果和括號中默認的設置相同,就直接回車,如果不同,就輸入自己想要配置。比如Database Password 你可以不用bigdata,那麼就在Enter Database Password(bigdata):後輸入我們想要設置的密碼。

Enter choice (1): 3

Hostname (localhost):

Port (3306):

Database name (ambari):

Username (ambari):

Enter Database Password (bigdata):

Re-enter password:

然後系統會提示警告:

WARNING: Before starting Ambari Server, you must run the following DDL against the database to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql

Proceed with configuring remote database connection properties [y/n] (y)?

此處輸入y

然後系統提示:

Extracting system views...

Adjusting ambari-server permissions and ownership...

Ambari Server 'setup' completed successfully.

將Ambari數據庫腳本導入到數據庫.如果使用自己定義的數據庫,必須在啓動Ambari服務之前導入Ambari的sql腳本,在終端中輸入如下命令:

mysql -u ambari -p

輸入密碼此處填寫你的密碼

use ambari

source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql

exit

最後如圖3-69所示。

 

圖3-69將Ambari數據庫腳本導入到數據庫

接下來輸入命令:

ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
系統在終端中返回如下信息:

Using python  /usr/bin/python2

Setup ambari-server

Copying /usr/share/java/mysql-connector-java.jar to /var/lib/ambari-server/resources

JDBC driver was successfully initialized.

Ambari Server 'setup' completed successfully.

在啓動ambari-server之前,將主節點的私鑰文件拷貝到主節點的/root下,在終端中執行如下指令:

cp ~/.ssh/id_rsa   /root

將主節點下/etc/yum.repos.d的hdp.repo文件複製到兩個從節點/etc/yum.repos.d文件夾下,在終端中執行如下指令:

scp /etc/yum.repos.d/hdp.reporoot@c205-002:/etc/yum.repos.d/

scp /etc/yum.repos.d/hdp.reporoot@c205-003:/etc/yum.repos.d/

結果如圖3-70所示。

 

圖3-70將主節點的私鑰文件拷貝到主節點的/root下

其他每個節點要執行的命令和注意事項:

打開終端,在終端中執行如下指令:

cd

yum  install git git-core

yum install gcc -y

注意:安裝之前一定要拔掉優盤!不然有可能會報錯。

3.3.7 啓動ambari-server並使用HDP部署分佈式計算環境

1、啓動ambari-server

首先每個節點都切換到英文,然後重新登錄root用戶。

登錄之後,系統會提示是否更新文件夾的名字,選擇不更新。由於更新之後文件的路徑會有變化,所以不推薦更新文件夾的名字。接下來,在主節點上啓動ambari-server,終端中輸入如下命令:

ambari-server start

結果如圖3-71所示。

 

圖3-71啓動ambari-server

 

2、HDP部署分佈式計算環境

打開瀏覽器輸入http://c205-001:8080

因爲我們已經配置了hosts文件,所以直接輸入c205-001:8080就可以進入到ambari的登錄界面,也可以通過輸入http://192.168.10.201:8080來進入ambari的登錄界面。

默認的用戶名和密碼都是admin,登錄界面如圖3-72所示。

 

圖3-72 瀏覽器訪問http://c205-001:8080

輸入用戶名和密碼後點“sign in",登錄後的界面如圖3-73 所示。

 

圖3-73 Ambari登錄成功後的界面

點擊“Launch Install Wizard”按鈕,如圖3-74所示,給集羣取一個名字。

 

圖3-74 輸入集羣的名字

筆者給集羣命名爲clusterc205,然後點擊“Next”

然後選擇HDP2.6,在Advanced Repository Options中我們選擇redhat7,因爲centos7是基於redhat7的,如圖3-75所示。

 

圖3-75 選擇HDP的版本

將redhat7後的兩個網址作替換,

http://192.168.10.201/ambari/HDP/centos7/2.6.3.0-235

http://192.168.10.201/ambari/HDP-UTILS

替換後如圖3-76所示:

這是爲了讓HDP使用本地文件安裝,免於在線安裝,因爲在線安裝成功的機率很小,對網速要求很高,一旦網絡出現問題,就會導致整個文件下載失敗,HDP整個文件6G以上,下載需要的時間比較長,讀者需要保持耐心。

若出現一直卡在此處的情況,返回查看/var/www/html/ambari文件夾及其內部文件的權限是否爲root可讀寫。

替換完鏈接地址之後點擊“Next”。

 

圖3-76 替換鏈接地址

Target Hosts填寫要求Enter a list of hosts using the Fully Qualified Domain Name (FQDN)

所以應填寫如下內容:

c205-001.hadoop

c205-002.hadoop

c205-003.hadoop

勾選“Provide your SSH Private Keyto automatically register hosts”選項,如圖3-77所示,SSH User Account選擇爲root,(注意:Perform manual registration on hostsand do not use SSH 的選項不要選擇,這樣ambari會自動的安裝ambari-agent到從節點。如果自己已經在從節點安裝好了ambari-agent可以選擇此項。)點擊圖中的“瀏覽”按鈕,選擇“root”下的“id_rsa”文件。

 

 

 

圖3-77選擇SSH Private Key

然後點擊圖3-77中的“Register and Comfirm”按鈕,結果如圖3-78所示。

 

圖3-78 ComfirmHoste

註冊(Register)完成後,在“Next”按鈕的上側,會出現一行英文提醒,點擊“Click here to see the check results”

然後將裏面的警告全部解決。例如:

需要主節點卸載ntfs-3g:

yum remove ntfs-3g

可能有部分節點需要重新啓動ntpd等:

systemctl is-enabled ntpd

systemctl enable ntpd

systemctl start ntpd

解除這些警告後,點擊Return Checks 後Host Checks會顯示全部都是對勾,沒有感嘆號,如圖3-79所示,然後點擊“Close”。

 

圖3-79 解除所有警告

接下來開始選擇想要安裝的服務,此處筆者只選擇了部分需要的服務,如圖3-80和3-81所示。然後點擊“Next”。

 

圖3-80 選擇想要安裝的服務

 

圖3-81 選擇想要安裝的服務(接圖3-80)

因爲數據庫安裝在c20-001上,所以Hive Metastore和HiveServer2的安裝位置選擇c205-001,如圖3-82所示,然後點擊“next”。

 

圖3-82 選擇Hive Metastore和HiveServer2的安裝位置

Assign Slaves and Clients的選擇,如圖3-83和3-84所示。

 

圖3-83 Assign Slaves and Clients的選擇

 

圖3-84 Assign Slaves and Clients的選擇(接圖3-83)

如果HDFS和YARN服務中有紅色的警告,去掉HDFS和YARN中的/home,警告就會消失,如圖3-85所示。

 

圖3-85去掉HDFS和YARN服務中警告後的結果

Hive安裝的時候需要設置數據庫的相關信息,選擇已有的MySQL數據庫,然後輸入之前爲Hive設置的密碼。

接着按照如圖3-86所示進行選擇,將頁面拉到底部,點擊“Next”,進行下一步的配置。然後點擊“Hive”的“Advanced”,“Hive Database”選擇“Existing MySQL Database”。

 

圖3-86 Hive的設置

輸入之前MySQL數據庫安裝時Hive數據庫的用戶名和密碼等信息,點擊“Test Connection”,顯示連接成功。結果如圖3-87所示。

 

圖3-87 連接數據庫成功

將頁面拉到底部,點擊"Next ",進行Review的配置。如圖3-88所示。

 

圖3-88 Review界面

 

點擊"Deploy "後,會出現進度條,如圖3-89所示。

 

圖3-89準備開始部署

進度條結束後,HDP開始部署。界面如圖3-90和3-91所示。[海川1] [xy2] 

 

圖3-90 HDP開始部署

每個節點的部署進度是不同的,這是由於每個節點部署的服務和機器性能不同造成的,整個部署過程的時間是比較長的,部署完成的時間取決於服務器的性能,部署進度較慢,也不需要擔心。部署過程在網絡沒有問題的前提下很少出現錯誤。筆者這一步大概花費了3個小時的時間。

 

 

圖3-91 HDP部署過程過半

HDP部署完成,如圖3-92所示。

 

圖3-92 HDP部署完成

    注意:不需要使用分佈式計算環境的時候,可以用STOP ALL 來停止所有服務,如圖3-93所示。不要在完成停止所有服務之前,直接關閉服務器,這樣的行爲和服務器突然斷電都很有可能造成文件損壞,很難修復,有時候只能用重裝來解決,這樣做的代價會很大。

 

圖3-93用Stop ALL 來停止所有服務

我們可以使用“Stop All”和“Start All”來關閉和開啓集羣的服務,關閉集羣的服務後,可以關閉集羣的服務器,正常開啓集羣后,再次“Start All”來開啓所有服務,所有的警告都會在服務全部開啓後自動消失。但是如果集羣突然斷電,有些服務可能會難以正常開啓,只能夠通過重裝系統和HDP平臺來解決。所以,使用完集羣后可以選擇停止所有服務,然後關閉集羣的服務器。

通過Add Service可以爲集羣添加服務。[海川3] [xy4] 比如爲這個集羣添加Mahout,Spark等服務,當然,這些服務不一定要在每個節點上都添加,我們在添加的過程中,可以選擇哪些節點添加服務。

如圖3-94所示,可以通過Add Hosts爲集羣添加新節點,也就是添加新的服務器到集羣中。但是一定要和集羣現在的服務器系統保持一致,比如,至少都需要是centos7 ,更細緻的版本可以稍有差別,但不可以是centos6或者Ubuntu的系統。

 

圖3-94通過Add Hosts可以爲集羣添加新節點

安裝完成之後切換到中文,HDP平臺也是可以正常使用的。由於現在的系統語言是英文,採用yum install 指令安裝軟件的時候,默認是在國外的服務器選擇安裝源,但是國內的網絡不能隨意的訪問外網,所以會顯示安裝失敗。

切換回中文後,因爲之前安裝HDP和Ambari改變了系統的源,所以如果安裝軟件顯示失敗的話,在終端中執行如下指令:

yum install epel-release --nogpgcheck

3.3.8 集羣以及已安裝服務的相關信息

Admin Name : admin

Cluster Name : clueter1

Total Hosts : 3 (3 new)

Repositories:

redhat7 (HDP-2.6): http://192.168.10.201/ambari/HDP/centos7/2.6.3.0-235

redhat7 (HDP-UTILS-1.1.0.21): http://192.168.10.201/ambari/HDP-UTILS

Services(已安裝的服務):

HDFS

DataNode : 2 hosts

NameNode : c205-001.hadoop

NFSGateway : 0 host

SNameNode : c205-002.hadoop

YARN + MapReduce2

App Timeline Server : c205-002.hadoop

NodeManager : 1 host

ResourceManager : c205-002.hadoop

Tez

Clients : 3 hosts

Hive

Metastore : c205-001.hadoop

HiveServer2 : c205-001.hadoop

WebHCatServer : c205-001.hadoop

Database : Existing MySQL / MariaDB Database

Pig

Clients : 3 hosts

ZooKeeper

Server : 3 hosts

Ambari Metrics

Metrics Collector : c205-003.hadoop

Grafana : c205-001.hadoop

SmartSense

Activity Analyzer : c205-001.hadoop

Activity Explorer : c205-001.hadoop

HST Server : c205-001.hadoop

Spark

Livy Server : 1 host

History Server : c205-001.hadoop

Thrift Server : 1 host

Spark2

Livy for Spark2 Server : 1 host

History Server : c205-001.hadoop

Thrift Server : 1 host

Mahout

Clients : 3 hosts

Slider

Clients : 3 hosts


 [海川1]兩圖之間加點內容

 [xy2]已修改

 [海川3]擴充點內容

 [xy4]已修改

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章