使用Ambari快速部署Hadoop大資料環境
前言
做大資料相關的後端開發工作一年多來,隨著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.
相關文章
- Ambari部署HadoopHadoop
- 如何使用Docker搭建大資料Hadoop環境?學會這9步,快速上手Docker大資料Hadoop
- 基於Apache Ambari搭建Hadoop大資料平臺ApacheHadoop大資料
- Hadoop大資料部署Hadoop大資料
- Nutanix支援超融合環境中部署大資料大資料
- 大資料學習之--hadoop2.7.3環境搭建大資料Hadoop
- Hadoop環境中管理大資料儲存八大技巧Hadoop大資料
- GitChat·大資料 | 史上最詳細的Hadoop環境搭建Git大資料Hadoop
- IBM /AIX 環境快速部署MySQLIBMAIMySql
- 快速搭建WebSphere Process Server 部署環境WebServer
- 在Hadoop環境中,大資料儲存的技巧有哪些?Hadoop大資料
- 從 0 開始使用 Docker 快速搭建 Hadoop 叢集環境DockerHadoop
- 大資料技術之Hadoop(入門)第3章 Hadoop執行環境搭建大資料Hadoop
- Hadoop大資料平臺之HBase部署Hadoop大資料
- Hadoop大資料平臺之Kafka部署Hadoop大資料Kafka
- MySQL Cluster開發環境快速部署(中文)MySql開發環境
- 使用dockerfile 部署lnmpr環境DockerLNMP
- 1.單機部署hadoop測試環境Hadoop
- 一鍵化安裝 docker,一鍵化部署 lnmp+Redis 環境,快速部署 Laravel 環境DockerLNMPRedisLaravel
- 快速構建Hadoop的入門練手環境Hadoop
- hadoop3.1.0 HDFS快速搭建偽分散式環境Hadoop分散式
- 使用docker快速搭建hive環境DockerHive
- 【TAR】【安裝】Linux環境使用TAR命令快速部署安裝OracleLinuxOracle
- RAC環境中的資料庫部署技術——RAC部署和效能資料庫
- 【機器學習】在生產環境使用Kafka構建和部署大規模機器學習機器學習Kafka
- 離線部署 CDH 5.12.1 及使用 CDH 部署 Hadoop 大資料平臺叢集服務Hadoop大資料
- Hadoop - Ambari叢集管理剖析Hadoop
- 從零自學Hadoop(05):AmbariHadoop
- 大資料hadoop資料大資料Hadoop
- 【Hadoop】:Windows下使用IDEA搭建Hadoop開發環境HadoopWindowsIdea開發環境
- 部署Java環境Java
- 大資料執行環境的執行大資料
- 大資料實戰之環境搭建(八)大資料
- Gitlab環境快速部署(RPM包方式安裝)Gitlab
- ubuntu搭建nodejs生產環境——快速部署手冊UbuntuNodeJS
- 大資料(Hadoop)元件安裝 Linux環境準備 步驟簡單 詳細大資料Hadoop元件Linux
- Hadoop v3.1 大資料技術快速入門Hadoop大資料
- 在生產環境使用Docker部署應用Docker