使用Ambari快速部署Hadoop大資料環境

五柳-先生發表於2016-02-27

前言

做大資料相關的後端開發工作一年多來,隨著Hadoop社群的不斷髮展,也在不斷嘗試新的東西,本文著重來講解下Ambari,這個新的Apache的專案,旨在讓大家能夠方便快速的配置和部署Hadoop生態圈相關的元件的環境,並提供維護和監控的功能.

作為新手,我講講我自己的學習經歷,剛剛開始學習的時候,當然最簡單的 Google 下Hadoop ,然後下載相關的包,在自己的虛擬機器(CentOS 6.3) 上安裝一個單機的Hadoop版本用來做測試,寫幾個測試類,然後做下CRUD測試之類的,跑跑Map/Reduce的測試,當然這個時候對於Hadoop還不是很瞭解,不斷的看別人的文章,瞭解下整體的架構,自己所做的就是修改conf下的幾個配置檔案,讓Hadoop能夠正常的跑起來,這個時候幾種在修改配置上,這個階段之後,又用到了HBase,這個Hadoop生態圈的另外一個產品,當然還是修改配置,然後 start-all.sh , start-hbase.sh 把服務起起來,然後就是修改自己的程式,做測試,隨著用Hbase 學了下 Zookeeper 和Hive等, 接著過了這個操作階段了之後,開始研究Hadoop2.0看了 董的部落格 的相關文章,還有CSDN上很多大牛的文章了之後, 算是對Hadoop的生態圈整體有一些瞭解,介於自己在公司所承擔的開發所涉及到相關的技術僅僅就這些.但是作為一個愛好探索的人,是否想多瞭解下呢,它的效能怎麼樣? 它是具體如何運作的? 看大公司的那些PPT,人家(淘寶等大公司)動不動就是幾十個,幾百個,乃至幾千個節點,人家是如何管理的,效能是怎麼樣的?看著PPT裡面的那些效能測試的曲線,你是否也能夠詳細的瞭解,並且對自己的專案進行效能調優呢? 我貌似找到答案了,那就是 Ambari , 由 HortonWorks 開發的一個Hadoop相關的專案,具體可以上官方去了解. 

 

瞭解Hadoop生態圈

現在我們經常看到的一些關鍵字有: HDFS,MapReduce,HBase,Hive,ZooKeeper,Pig,Sqoop,Oozie,Ganglia,Nagios,CDH3,CDH4,Flume,Scribe,Fluented,HttpFS等等,其實應該還有更多,Hadoop生態圈現在發展算是相當繁榮了,而在這些繁榮的背後又是誰在推動的呢? 讀過Hadoop歷史的朋友可能知道,Hadoop最早是始於Yahoo,但是現在主要是由 HortonWorks 和  Cloudera  這2家公司在維護者,大部分的commiter 都屬於這2家公司,所以現在市面上看到的主要有2個版本,CDH系列,和社群版, 我最早用的是社群版本,後來換到CDH3,現在又換回社群版,因為有Ambari.當然,用什麼和不用什麼,只要自己的技術到家,還是都能修改的跑的正常的.這裡就不多說了. 講了這麼多廢話了,開始講 Ambari安裝吧.

 

開始部署

首先了解下Ambari, 專案地址在:http://incubator.apache.org/ambari/  

安裝文件在: http://incubator.apache.org/ambari/1.2.2/installing-hadoop-using-ambari/content/index.html

HortonWorks的人寫的一篇介紹安裝的文章我翻譯了下: http://www.cnblogs.com/scotoma/archive/2013/05/18/3085040.html  安裝的時候請大家先看下安裝文件吧,安裝文件必須認真看,結合自己當前所使用的系統版本,配置不同的源,而且安裝過程中需要的時間相對比較長,所以需要認真的做好安裝文件的每個步驟. 這裡我就說我遇到的一些問題.

以下說說我自己的安裝過程.

機器準備:

我的測試環境採用 9 臺 HP 的爛機器,分別是   cloud100  -  cloud108 ,    cloud108做為管理節點.

Ambari安裝的環境路徑:

各臺機器的安裝目錄:

/usr/lib/hadoop

/usr/lib/hbase

/usr/lib/zookeeper

/usr/lib/hcatalog

/usr/lib/hive 

Log路徑, 這裡需要看出錯資訊都可以在目錄下找到相關的日誌

/var/log/hadoop

/var/log/hbase  

 配置檔案的路徑

/etc/hadoop  

/etc/hbase

/etc/hive

HDFS的儲存路徑

/hadoop/hdfs 

 

安裝過程需要注意的點:

1, 安裝的時候,需要做好每臺機器的ssh免密碼登陸,這個之前的文章 http://www.cnblogs.com/scotoma/archive/2012/09/18/2689902.html   中提到了,做好之後,從 管理節點到各個叢集節點之間,都能使用這個登陸.

2, 如果你的機器之前安裝過 Hadoop的相關服務,特別是Hbase 裡面配置了 HBASE_HOME 的環境變數,需要 unset掉, 這個環境變數會影響,因為我之前把這些路徑放到  /etc/profile 裡面導致影響了HBase,因為Ambari安裝的路徑和你之前安裝的可能不一樣.

3,在服務選擇頁面的時候, NameNode 和 SNameNode 需要佈置在一起, 我之前嘗試做 HA 而把他們分開,但是SNameNode一直起不來,導致整個啟動失敗,接下來時間需要花在HA上.

 

4. JobTrakcer 不和Namenode在一起也會導致 啟動不起來.

5. Datanode的節點 不能少於 Block replication 中數, 基本都是需要 >= 3. 

6. Confirm Hosts 的時候,需要注意裡面的 Warning 資訊,把相關的Warning都處理掉,有一些Warning會導致安裝出錯.

7. 記住安裝中所新建的使用者,接下來需要用到這些使用者.

8. Hive和HBase Master 部署在同一個節點,這裡當然你也可以分開. 設定好後就開始安裝了.

9.如果安裝失敗的情況下,如何重新安裝.

首先,先刪除掉系統已經安裝的檔案相關的目錄,

sh file_cp.sh cmd "rm -rf /usr/lib/hadoop && rm -rf /usr/lib/hbase && rm -rf /usr/lib/zookeeper"

sh file_cp.sh cmd "rm -rf /etc/hadoop && rm -rf /etc/hbase && rm -rf /hadoop && rm -rf /var/log/hadoop"

sh file_cp.sh cmd "rm -rf /etc/ganglia && rm -rf /etc/hcatalog && rm -rf /etc/hive && rm -rf /etc/nagios && rm -rf /etc/sqoop && rm -rf /var/log/hbase && rm -rf /var/log/nagios && rm -rf /var/log/hive && rm -rf /var/log/zookeeper && rm -rf /var/run/hadoop && rm -rf /var/run/hbase && rm -rf /var/run/zookeeper "

再在Yum remove 掉安裝的相關的包.

sh file_cp.sh cmd "yum -y remove ambari-log4j hadoop hadoop-lzo hbase hive libconfuse nagios sqoop zookeeper"

我這裡使用到了自己寫的Shell,方便在多臺機器之間執行命令:

https://github.com/xinqiyang/opshell/tree/master/hadoop

Reset下Ambari-Server

 

ambari-server stop

 

ambari-server reset

 

ambari-server start 

 

 

10.注意時間的同步,時間問題會導致regionserver起不來

 

11. iptables 需要關閉,有的時候可能機器會重新啟動,所以不單單需要 service stop 也需要chkconfig 關閉掉.

最後安裝完成後,登陸地址檢視下服務的情況:

http://管理節點ip:8080 , 比如我這裡的: http://192.168.1.108:8080/  登陸之後,需要設定之前在安裝Ambari-server時候輸入的賬號和密碼,進入

檢視 ganglia的監控

檢視 nagios 的監控

 

 

 

測試

安裝完成後,看著這些都正常了,是否需要自己驗證一下呢? 不過基本跑了冒煙測試後,正常的話,基本還是正常的,但是我們自己也得來操作下吧.

驗證HDFS

驗證Map/Reduce

驗證HBase

驗證Hive

 

總結

到這裡,相關的 hadoop 及 hbase 及hive 的相關配置就都配置完成了,接下來需要做一些壓力測試.還有其他方面的測試, 對於Ambari帶的是 HortonWorks 打包的rpm版本的 Hadoop相關的原始碼,所以這裡可能會和其他的版本有一些不同,但是作為開發環境來說,暫時還是沒有很多大的影響的,但是現在還沒有在生產上使用, 所以也不管說如何的穩定,接下來我會在開發專案的過程中,將所遇到的Bug給列出來. 總體來說Ambari還是很值得使用的,畢竟能夠減少很多不必要的配置時間,而且相對在單機環境下, 在叢集環境下更能貼近生產做一些相關的效能測試和調優測試等等,而且配置的ganglia和nagios的監控也能夠釋出的讓我們檢視到叢集相關的資料,總體來說還是推薦使用的,新東西有Bug是在所難免的,但是在用的過程中我們會不斷的完善. 接下來如果有時間,會對Ambariserver的功能進行擴充套件,新增諸如redis/nginx之類的常用的高效能模組的監控選項. 這個有時間在弄了. 總之,歡迎使用Ambari. 

 

//update:

最近遇到Ambari的一些問題:

1.在自定義裡面開啟了 append選項後,還是依舊無法append.

相關文章