如何優雅地使用Apache Ambari安裝HDFS、HBase等分布式應用

環境部署

1.本文發表時所用的最新版本:

Ubuntu Server 16.10
APACHE AMBARI 2.5.2.0

  1. 設置主機、每個從機的內網靜態IP
    安裝的時候默認只會對一個網卡配置自動獲取IP,一般情況我們會有2個網卡,現在要對另一個網卡手動設置內網IP。首先知道網卡在Linux里的編號,用dmesg | grep ens查看ens開頭的編號有哪些,我這有一個ens160,一個ens192

    然后再去sudo vi /etc/network/interfaces

    發現ens160已經配置自動獲取IP了,所以另一個ens192我們配置成靜態IP,添加四行內容設置靜態IP和子網掩碼:
auto ens192
iface ens192 inet static
address 10.96.1.70
netmask 255.255.255.0

輸入sudo reboot/etc/init.d/networking restart使其生效

  1. 修改主機、每個從機的hosts文件,主機名使用FQDN命名,使其能夠互相ping通
    這里我的主機名配置如下,大家不必完全按照這個名字配置,但要符合FQDN:
master.hd
slave1.hd
slave2.hd
slave3.hd
slave4.hd

以上三步基本不會有什么坑,也是最基礎最簡單的,沒有什么更優雅的方式了。

一般來說Ubuntu安裝時勾上OpenSSH,安裝完系統后SSH直接可以使用了,不需要再做任何配置,起碼我是不用的。

  1. 配置SSH直接允許Root登錄
    因為集群環境是在內網集群,做好路由隔離后,直接允Root登錄并不會造成很嚴重的安全問題,在后面的自動安裝需要使用root權限,否則會卡住不動,嚴謹點也可以自己新建一個賬號。
    sudo vi /etc/ssh/sshd_config
    將PermitRootLogin改為yes即可,其他配置項一般不需要動。然后進行驗證 ssh root@slave1.hd 看能不能登錄到從機。

  2. 生成SSH證書使得主機到各個從機能免密登錄
    這里就有優雅的方式了。在主機上sudo ssh-keygen 一路回車生成本機公私鑰,不要輸入私鑰密碼。然后執行下列命令

ssh-copy-id root@slave1.hd
ssh-copy-id root@slave2.hd
ssh-copy-id root@slave3.hd
...

依次會提示輸入每個從機的root密碼,然后自動將剛才生成的公鑰分發到各個從機上并馬上生效。
所以現在就可以使用 ssh root@slave1.hd直接登錄,不需要再輸入密碼了。
然后復制一份剛才生成的私鑰內容,等一下用Ambari創建集群時的需要用到這個私鑰。私鑰位于/root/.ssh/id_rsa

比較優雅的前奏已經準備完了,接下來馬上就要更優雅地部署環境了。

下載HDP離線安裝包

官方文檔是用源碼安裝,我們要優雅,所以直接使用已經編譯好的。
首先到 https://docs.hortonworks.com/ 找到Ambari,截止本文發布的時候,最新版為2.5.2.0,找到它的Apache Ambari Installation,找到HDP離線下載,最新版為?HDP 2.6 Repositories

https://docs.hortonworks.com/HDPDocuments/Ambari-2.5.2.0/bk_ambari-installation/content/hdp_stack_repositories.html

隨后下載Ubuntu16 Tarball 版的HDP以及HDP-UTILS 。 前者6G多,包含HDFS、HBase、Spark等等各種東西,請做好心理準備。如果這里不采用離線安裝包的話,等一下幾臺從機都要從網上獲取就毫無樂趣了。

安裝Apache Ambari

Ambari只需要在主機上安裝即可,隨后會自動部署。
繼續在剛才的網站上,找到Download the Ambari Repository
按照官方手冊指引,以root登錄主機后執行三句命令即可完成安裝源的配置。注意這里的版本是2.5.2.0,請注意是否符合你的版本,如果不是請以網站的代碼為準。

wget -O /etc/apt/sources.list.d/ambari.list http://public-repo-1.hortonworks.com/ambari/ubuntu16/2.x/updates/2.5.2.0/ambari.list
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B9733A7A07513CAD
apt-get update

apt-get install ambari-server

最后一句安裝,這個安裝包大概有七百多MB。

配置Apache Ambari

繼續按照這個手冊的指引,執行命令ambari-server setup配置Ambari,一路回車采用默認配置也可以。途中會自動下載甲骨文的1.8Jdk。用戶名密碼如果不配置,將會是admin和admin。

啟動Apache Ambari

主機上運行一次ambari-server start稍等片刻即可。在這里引用一下手冊內容:

Run the following command on the Ambari Server host:
ambari-server start
To check the Ambari Server processes:
ambari-server status
To stop the Ambari Server:
ambari-server stop

現在使用網頁瀏覽器嘗試訪問主機的8080端口
http://<主機IP>:8080
如果出現Ambari的登錄界面,即可完成。賬號密碼如果剛才沒有配置,均為admin。

安裝Nginx

其實也不一定要是Nginx,只是需要其提供的HTTP服務,來作為HDP離線包的下載服務器。
在主機上使用sudo apt-get install nginx安裝。
執行完后,默認會自動啟動。訪問http://<主機IP>:80看能否看到Nginx的歡迎頁面。

安裝yum

每個從機、主機都需要安裝yum,否則后面Ambari部署不會通過。詳情見下文的 踩坑記錄1
sudo apt-get install yum

確保Python版本>2.6

Ubuntu16安裝默認是符合這個條件的。所以直接略過。

部署HDP離線安裝包

將之前下載到的HDP以及HDP-UTILS 解壓到一個能容得下它們的大空間,然后做軟鏈接,鏈接到/var/www/html下,如果你空間足夠,也可以直接移動到這里。其子路徑隨意。
然后將默認的歡迎頁面重命名mv /var/www/html/index.nginx-debian.html /var/www/html/index.nginx-debian.html.bak
進入Nginx的配置文件sudo vi /etc/nginx/sites-enabled/default ,在server{...}里添加一句autoindex on;即打開目錄瀏覽功能。
隨后再次訪問http://<主機IP>時,能看到目錄結構,同時能找到HDP以及HDP-UTILS,能夠從頁面上下載,就行了。

創建第一個集群

訪問http://<主機IP>:8080,登錄后,點擊Launch Install Wizard開始創建第一個集群

Ambari首頁

到了第二步選擇版本后

選擇使用本地庫,


HDP和HDP-UTILS的路徑配置應為剛才在主機上用Nginx搭建的Http路徑

HDP路徑下的內容
HDP-UTILS路徑下的內容

設置從機列表以及主機的root賬號能登錄每個從機的私鑰,即剛才使用ssh-keygen生成的。


如果私鑰和端口設置正常,hosts文件設置沒問題,這里的installing將很快完成


踩坑記錄:

  1. 當從機沒有安裝yum,此處無法通過,使用sudo apt-get install yum安裝。

==========================
Running OS type check...
==========================
Command start time 2017-09-09 23:34:16
env: ‘/var/lib/ambari-agent/tmp/os_check_type1504971236.py’: No such file or directory
Connection to slave2.hd closed.
SSH command execution finished
host=slave2.hd, exitcode=127
Command end time 2017-09-09 23:34:16
ERROR: Bootstrap of host slave2.hd fails because previous action finished with non-zero exit code (127)
ERROR MESSAGE: Connection to slave2.hd closed.
STDOUT: env: ‘/var/lib/ambari-agent/tmp/os_check_type1504971236.py’: No such file or directory
Connection to slave2.hd closed.

從機沒有安裝yum的情況
  1. 全部Success后,會有一個附加條件的檢查。我踩到兩個坑,一個是沒安裝NTP服務,這個很簡單,使用apt-get install ntp即可

  2. 還有一個常見的Transparent Huge Pages Issues
    這里要求關閉Transparent Huge Pages,所有涉及到的主機從機都要做這個。網上通常是做法是在rc.local文件做文章,但是Ubuntu16版本已經不存在這個文件了。Google了一番,比較優雅的做法是:
    參考這位老外David Foerster的解決方案 How do I modify “/sys/kernel/mm/transparent_hugepage/enabled”

install the sysfsutils package:
sudo apt install sysfsutils
and append a line with that setting to/etc/sysfs.conf:
kernel/mm/transparent_hugepage/enabled = never

但是他最初提供的并不全面,還不能解決問題,我后來稍微看一下,自己補充了一句就可以完全關閉了。在/etc/sysfs.conf里應該寫如下兩行。隨后重啟即可。

kernel/mm/transparent_hugepage/enabled = never
kernel/mm/transparent_hugepage/defrag = never                                         

希望大家都有這種美好的結果


從機不需要手動去安裝Java。只要ssh連上了,Ambari的代理會全都幫你搞定,如果之前的HDP以及HDP-UTILS安裝源路徑設置沒問題,安裝了Yum,接下來基本沒有什么坑了。
如果有,就是我還沒遇到,靠大家自己去解決了

尾聲

祝大家部署順利 O(∩_∩)O~

參考文獻

Ambari——大數據平臺的搭建利器

How do I modify “/sys/kernel/mm/transparent_hugepage/enabled”

使用Ambari快速部署Hadoop大數據環境

Ambari安裝之部署本地庫(鏡像服務器)(二)

Apache Ambari Installation

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,030評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,310評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,951評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,796評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,566評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,055評論 1 322
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,142評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,303評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,799評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,683評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,899評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,409評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,135評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,520評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,757評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,528評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,844評論 2 372

推薦閱讀更多精彩內容