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

前言

作大數據相關的後端開發工做一年多來,隨着Hadoop社區的不斷髮展,也在不斷嘗試新的東西,本文着重來說解下Ambari,這個新的Apache的項目,旨在讓你們可以方便快速的配置和部署Hadoop生態圈相關的組件的環境,並提供維護和監控的功能.html

做爲新手,我講講我本身的學習經歷,剛剛開始學習的時候,固然最簡單的 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相關的項目,具體能夠上官方去了解. node

 

瞭解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安裝吧.ios

 

開始部署

首先了解下Ambari, 項目地址在:http://incubator.apache.org/ambari/  nginx

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

HortonWorks的人寫的一篇介紹安裝的文章我翻譯了下: http://www.cnblogs.com/scotoma/archive/2013/05/18/3085040.html  安裝的時候請你們先看下安裝文檔吧,安裝文檔必須認真看,結合本身當前所使用的系統版本,配置不一樣的源,並且安裝過程當中須要的時間相對比較長,因此須要認真的作好安裝文檔的每一個步驟. 這裏我就說我遇到的一些問題.github

如下說說我本身的安裝過程.redis

機器準備:shell

個人測試環境採用 9 臺 HP 的爛機器,分別是   cloud100  -  cloud108 ,    cloud108作爲管理節點.apache

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.

相關文章
相關標籤/搜索