ambari 離線安裝 HDP-2.3 集羣

  利用 ambari 安裝 hadoop 集羣是非常方便的。前端圖形化,點點就搞定了。但是hadoop的配置還是要自己來定義的。


實驗環境:

10.111.32.115    hdp115.hfln.com    ambari-server

10.111.32.162    hdp115.hfln.com    ambari-agent

10.111.32.163     hdp115.hfln.com    ambari-agent

10.111.32.183      hdp115.hfln.com    ambari-agent


32.115 做爲 master 已經實現了與其他主機的名密鑰登錄了,這裏 32.162 規劃爲 resourcemanager,所以也要實現與其他主機的名密鑰登錄。


  1. 下載離線安裝所需的包文件。



# 這個是下載 ambari 的一個倉庫文件,利用這個倉庫文件可以從公網上下載 ambari-server 等相關包,這裏因爲有

ambari-2.1.0-centos6.tar.gz

這個包,一會做成自己本地源,所以如果你不下,自己寫也是沒問題的。

下面的 hdp.repo 也是如此。可下可不下。其他三個就是必須下。



[root@hdp115 hdp]# wget http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.1.0/ambari.repo

[root@hdp115 hdp]# wget  http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.3.0.0/hdp.repo

[root@hdp115 hdp]# wget  http://public-repo-1.hortonworks.com/ambari/centos6/ambari-2.1.0-centos6.tar.gz

[root@hdp115 hdp]# wget  http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.3.0.0/HDP-2.3.0.0-centos6-rpm.tar.gz

[root@hdp115 hdp]# wget -c http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6/HDP-UTILS-1.1.0.20-centos6.tar.gz


這個下載地址可以嘗試變換一下,比如你想下載 1.7 版的 ambari,就可以寫成


[root@hdp115 hdp]# wget  http://public-repo-1.hortonworks.com/ambari/centos6/ambari-1.7.0-centos6.tar.gz

有些太老的估計就下不了了。


2. 建立本地倉庫,這裏使用 httpd 來建立,安裝啓動httpd省略。解壓三個包到 /var/www/html 目錄下。

[root@hdp115 hdp]# tar xf ambari-2.1.0-centos6.tar.gz -C /var/www/html/

[root@hdp115 hdp]# tar xf HDP-2.3.0.0-centos6-rpm.tar.gz -C /var/www/html/

[root@hdp115 hdp]# tar xf HDP-UTILS-1.1.0.20-centos6.tar.gz -C /var/www/html/


## 修改 ambari.repo 與 hdp.repo 中的路徑,使之與 yum源機器匹配,如上我的IP 爲10.111.32.115,那麼將

[root@hdp115 hdp]# cat ambari.repo 
#VERSION_NUMBER=2.1.0-1470
[Updates-ambari-2.1.0]
name=ambari-2.1.0 - Updates
baseurl=http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.1.0
gpgcheck=1
gpgkey=http://public-repo-1.hortonworks.com/ambari/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1


##修改後的文件內容。 要注意的是 ambari-2.1.0-centos6.tar.gz 解壓後的名字爲  ambari-2.1.0, 而 ambari.repo 中的路徑沒帶版本號,所以還需要將 ambari-2.1.0 改名爲: ambari

[root@hdp115 hdp]# cat ambari.repo
#VERSION_NUMBER=2.1.0-1470
[Updates-ambari-2.1.0]
name=ambari-2.1.0 - Updates
baseurl=http://10.111.32.115/ambari/centos6/
gpgcheck=1
gpgkey=http://10.111.32.115/ambari/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

3. 安裝設置 ambari-server.

將 ambari.repo 複製到 /etc/yum.repos.d/ 目錄下,安裝 ambari-server。

[root@hdp115 yum.repos.d]# yum install ambari-server

安裝好之後,配置ambari-server, 配置包括

    1. 檢查系統環境

    2. 選擇jdk, 這裏已經自己部署了jdk_1.8.0_73, 選擇他的,下載的巨慢。

    3. 選擇數據庫,如果默認,將使用 postgresql.這裏選擇了自己安裝mysql.


[root@hdp115 yum.repos.d]# ambari-server setup
Using python  /usr/bin/python2.6
Setup ambari-server
Checking SELinux...
SELinux status is 'disabled'
Customize user account for ambari-server daemon [y/n] (n)? y
Enter user account for ambari-server daemon (root):
Adjusting ambari-server permissions and ownership...
Checking firewall status...
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
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: /usr/jdk64/jdk1.7.0_67
Validating JDK on Ambari Server...done.
Completing setup...
Configuring database...
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)
==============================================================================
Enter choice (1): 3
Hostname (localhost): 
Port (3306): 
Database name (ambari): 
Username (ambari): 
Enter Database Password (bigdata): 
Configuring ambari database...
Copying JDBC drivers to server resources...
Configuring remote database connection properties...
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)? 
Extracting system views...
...ambari-admin-2.1.0.1470.jar
...
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.


當選擇 mysql 之後,他會提示你,要導入相關的 sql 文件,還會嘗試用 jdbc 去連接數據庫,所以要

    1. 把 /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql 導入數據庫

    2. 開通相關權限,按照上面的提示

    3. 安裝 jdbc

設置好之後就可以啓動 ambari-server 了,啓動方式與一般的服務啓動一樣。

[root@hdp115 ~]# /etc/init.d/ambari-server start


4. 利用 ambari 安裝 HDP 集羣

這個時候你可以看你的 8080 端口是否在監聽了,嘗試在瀏覽器打開此鏈接


spacer.gif

登錄ambary, user:admin, pass: admin

spacer.gifwKiom1epVdGDRNgzAAB9SegyWmg559.png-wh_50


點擊 launch install wizard ,開始創建一個集羣

wKiom1epbxzRfDs3AAD67c1IpXU875.png-wh_50


輸入集羣名稱,此處爲 beyond


wKioL1epb3LRLABsAADJdwF_1YE193.png-wh_50


選擇版本號:注意下面的“Advanced Repository Options” 按鈕,上面的選擇會顯示出下面所對應的版本,這裏選擇 HDP 2.3(因爲我們下載的包文件就是2.3的),下面的倉庫選項,選擇相應版本,並修改爲自己的本地的倉庫地址,注意要修改正確爲自己定義的路徑,這個修改好的倉庫會被分發到各個節點的 /etc/yum.repos.d/ 目錄下


wKioL1epbx2jGWdHAAFPzsXgTGk335.png-wh_50


這裏添寫要加入集羣的機器的 fqdn ,還有將ambari 的私鑰文件上傳

wKiom1epcDqhJu2VAAEOaWEc1Ww200.png-wh_50


這個步驟會在相關機器上安裝ambar-agent來實現跟ambari-server 通信。--這裏已經安裝ambar-agent 成功。注:如果安裝失敗,在success 的地方會變成 Failed, 那麼請點開查看錯誤原因。

一般來說,有以下幾點:

1. ambari-server 主機與 agent 不能使用密鑰文件 登錄,即無法聯通。請手動檢查是否可以無密碼在遠程機器上執行命令。

2.yum 安裝時失敗,到/etc/yum.repos.d/ 目錄下檢查,有沒有ambari.repo 倉庫文件。嘗試用 yum clean all 清除過期的緩存,再次嘗試安裝。

 

3.此前安裝過 ambari等相關的功能,沒有清理乾淨,又重新安裝的,那麼檢查一下殘留文件,刪除重試即可。

 

錯誤原因還是很詳細的,要視情況而處理。

wKioL1epcDuTwv5MAAExUNN4LWc422.png-wh_50

上圖底下有個 Click hereto see the warnings.按鈕,打開後會顯示主機上的各種警告信息,

雖然已經安裝了 ambariagent,可是還有其他可能導致安裝集羣失敗的潛在不足,比如 ntp沒做,或防火牆規則存在,雖然放行了 ssh,但是等安裝hadoop集羣,需要打開很多的tcp 端口,可能會導致錯誤發生。自己視情況檢查吧(我這個環境因爲安裝過HDP,許多提示都是說已經安裝了某包,有某些配置文件已存在等等)


wKiom1epcRnRzANNAAFOXfHShLw553.png-wh_50


有些問題不重要,如果沒解決,這裏會有提示,直接確認即可。

wKioL1epcRrSMQsoAADqoBloAKU733.png-wh_50


這一步,選擇安裝什麼組件,自己看着選吧,我選了最基本的。hdfs + yarn+mapreduce2 + zookeeper + pig + tez +ambari_Metrics

wKiom1epcb2Ds5BMAAFVbqhhYMg890.png-wh_50

調整每個機器上所安裝的組件

wKioL1epcb7AhKpuAAFC3XBmrsI768.png-wh_50


選擇在哪裏安裝 datanode ,等組件

wKiom1epfAiCx1WcAAEKatqSCEQ498.png-wh_50

調整各服務配置選項,在實際環境中,這就是在打開 xml的配置文件在配置

wKioL1epfEmTS3VlAAEk92GCzaY953.png-wh_50

確認檢查,選擇 deploy 開始安裝


wKioL1epfKDBNO-WAAExLhz6af8493.png-wh_50


成功之後像這樣子,本例中忘了裁下引圖片。

wKiom1epfUfg35o8AAFLnvGLLLY267.png-wh_50




安裝成功。


wKiom1epfNmhX1mTAAEaCyfxnoU343.png-wh_50


終於搞定啦。方法沒錯,只是原來的機器,已經安裝過多次hadoop, 因爲有些東西沒能清理乾淨而導致步驟出錯,只要看日誌細心排查就會OK的,希望 ambari 也能有卸載的功能就好了。


另外在此過程中還有sql 導入出錯的問題:

1.導入 /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql時,說是某數據類型太大,不支持。我的mysql 版本是 5.1.7的,遂更新至 5.6.30 ,導入成功

 

 

2.啓動ambari-server 時不成功,看了日誌說是jdbc 的版本過低,又更新了

mysql-connector-java-5.1.25.解決成功。

 

在使用 docker 創建hadoop 安裝環境的 centos6.8 容器時,在根下創建了 /hadoop:/hadoop 數據卷。

這個是很有必要的,在前端進行安裝時,給出了目錄不足的警告,因爲 docker 的容器默認只有10G 的大小,容器並不是主要用來存儲數據的。所以任何跟數據有關的一定要記得使用數據卷功能。


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