Hadoop是一個開發和運作處理大規模資料的軟體平台,是Apache的一個用java語言實作開源軟體架構,實作在大量計算機組成的叢集中對海量資料進行分布式計算。Hadoop架構中最核心設計就是:MapReduce和HDFS。MapReduce提供了對資料的分布式計算,HDFS提供了海量資料的分布式存儲。
在Hadoop家族中,收入了20多個用于計算、分析、存儲、監控、管理等元件和工具,這些家族成員極大的豐富了Hadoop的各方面的功能。
下面簡單的列舉幾個常見的元件:
Apache Hadoop: 是Apache開源組織的一個分布式計算開源架構,提供了一個分布式檔案系統子項目(HDFS)和支援MapReduce分布式計算的軟體架構。
Apache Hive: 是基于Hadoop的一個資料倉庫工具,可以将結構化的資料檔案映射為一張資料庫表,通過類SQL語句快速實作簡單的MapReduce統計,不必開發專門的MapReduce應用,十分适合資料倉庫的統計分析。
Apache Pig: 是一個基于Hadoop的大規模資料分析工具,它提供的SQL-LIKE語言叫Pig Latin,該語言的編譯器會把類SQL的資料分析請求轉換為一系列經過優化處理的MapReduce運算。
Apache HBase: 是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲叢集。
Apache Sqoop: 是一個用來将Hadoop和關系型資料庫中的資料互相轉移的工具,可以将一個關系型資料庫(MySQL ,Oracle ,Postgres等)中的資料導進到Hadoop的HDFS中,也可以将HDFS的資料導進到關系型資料庫中。
Apache Zookeeper: 是一個為分布式應用所設計的分布的、開源的協調服務,它主要是用來解決分布式應用中經常遇到的一些資料管理問題,簡化分布式應用協調及其管理的難度,提供高性能的分布式服務
Apache Mahout:是基于Hadoop的機器學習和資料挖掘的一個分布式架構。Mahout用MapReduce實作了部分資料挖掘算法,解決了并行挖掘的問題。
Apache Cassandra:是一套開源分布式NoSQL資料庫系統。它最初由Facebook開發,用于儲存簡單格式資料,集Google BigTable的資料模型與Amazon Dynamo的完全分布式的架構于一身
Apache Avro: 是一個資料序列化系統,設計用于支援資料密集型,大批量資料交換的應用。Avro是新的資料序列化格式與傳輸工具,将逐漸取代Hadoop原有的IPC機制
Apache Ambari: 是一種基于Web的工具,支援Hadoop叢集的供應、管理和監控。
Apache Chukwa: 是一個開源的用于監控大型分布式系統的資料收集系統,它可以将各種各樣類型的資料收內建适合 Hadoop 處理的檔案儲存在 HDFS 中供 Hadoop 進行各種 MapReduce 操作。
Apache Hama: 是一個基于HDFS的BSP(Bulk Synchronous Parallel)并行計算架構, Hama可用于包括圖、矩陣和網絡算法在内的大規模、大資料計算。
Apache Flume: 是一個分布的、可靠的、高可用的海量日志聚合的系統,可用于日志資料收集,日志資料處理,日志資料傳輸。
Apache Giraph: 是一個可伸縮的分布式疊代圖處理系統, 基于Hadoop平台,靈感來自 BSP (bulk synchronous parallel) 和 Google 的 Pregel。
Apache Oozie: 是一個工作流引擎伺服器, 用于管理和協調運作在Hadoop平台上(HDFS、Pig和MapReduce)的任務。
Apache Crunch: 是基于Google的FlumeJava庫編寫的Java庫,用于建立MapReduce程式。與Hive,Pig類似,Crunch提供了用于實作如連接配接資料、執行聚合和排序記錄等常見任務的模式庫
Apache Whirr: 是一套運作于雲服務的類庫(包括Hadoop),可提供高度的互補性。Whirr學支援Amazon EC2和Rackspace的服務。
Apache Bigtop: 是一個對Hadoop及其周邊生态進行打包,分發和測試的工具。
Apache HCatalog: 是基于Hadoop的資料表和存儲管理,實作中央的中繼資料和模式管理,跨越Hadoop和RDBMS,利用Pig和Hive提供關系視圖。
Cloudera Hue: 是一個基于WEB的監控和管理系統,實作對HDFS,MapReduce/YARN, HBase, Hive, Pig的web化操作和管理。
Ambari 跟 Hadoop 等開源軟體一樣,也是 Apache Software Foundation 中的一個項目,并且是頂級項目。目前最新的釋出版本是 2.6.0。Ambari 是用來建立、管理、監視 Hadoop 的叢集,但是這裡的 Hadoop 是廣義,指的是 Hadoop 整個生态圈(例如 Hive,Hbase,Sqoop,Zookeeper 等),而并不僅是特指 Hadoop。用一句話來說,Ambari 就是為了讓 Hadoop 以及相關的大資料軟體更容易使用的一個工具。
Ambari提供了對Hadoop更加友善快捷的管理功能,主要包含:
通過一步一步的安裝向導簡化了叢集供應。
預先配置好關鍵的運維名額(metrics),可以直接檢視Hadoop Core(HDFS和MapReduce)及相關項目(如HBase、Hive和HCatalog)是否健康。
支援作業與任務執行的可視化與分析,能夠更好地檢視依賴和性能。
通過一個完整的RESTful API把監控資訊暴露出來,內建了現有的運維工具。
使用者界面非常直覺,使用者可以輕松有效地檢視資訊并控制叢集。
在使用Ambari安裝部署Hadoop時,需要對下載下傳鏡像源,配置本地環境。
主機:
node-1 : 192.168.10.11 , 配置:2C8G-30G ,yum 鏡像源,資料庫, java環境
node-2 : 192.168.10.12, 配置:2C8G-30G ,java環境
node-2 : 192.168.10.12, 配置:2C8G-30G , java環境
軟體包 Hadoop 軟體鏡像壓縮包,Ambari鏡像壓縮包,版本2.6
1、在node-1上配置hadoop所有元件的yum源。安裝httpd:
2、在官方下載下傳鏡像檔案,此檔案大概7G,可以使用p2p工具下載下傳,其中包含兩個repo檔案和4個壓縮包:
3、将對應的tar包解壓到httpd的檔案目錄:
4、配置基礎源,建立hadoop的repo檔案,修改repo檔案源路徑:
啟動httpd。
5、将本地源的repo配置拷貝到其它節點,并建立緩存:
在各個節點建立緩存:
1、各個節點安裝java-1.8.0-openjdk:
2、解析主機名:
3、建立主機信任關系,主要是master節點到slave節點:
4、安裝配置資料庫:
1、在node-1上安裝ambari-server,并啟動配置向導:
提示: 如果安裝配置使用者時,出現如下報錯: ERROR: Unexpected error 'getpwuid(): uid not found: 1001',可以檢視ambari.repo檔案的權限,修改為預設的root 644權限即可。
2、按照配置向導資訊,配置使用者,java_home:
3、到上面一步時,根據提示上傳mysql的 jdbc驅動,并修改配置檔案,指定jdbc驅動檔案位置:
修改配置檔案:
配置完成後繼續,會出現如下提示:
4、出現上述提示時,根據資訊導入資料庫:
5、啟動服務:
6、服務啟動成功後,會監聽8080端口,使用浏覽器登入,賬号密碼admin/admin正常登入,則安裝完成。

使用ambari的web界面課完成對叢集的所有管理操作,建立一個執行個體叢集。
選擇本地源,移除不必要的版本:
添加主機節點,上傳id_rsa檔案:
安裝成功後,會顯示如下界面:
選擇需要安裝的服務:
根據需要選擇服務配置:
在後續的配置中,會提示配置賬戶密碼,資料庫等資訊,根據提示配置即可。
參考文檔:
<a href="https://baike.baidu.com/item/Ambari">https://baike.baidu.com/item/Ambari</a>
<a href="https://baike.baidu.com/item/Hadoop/3526507?fr=aladdin">https://baike.baidu.com/item/Hadoop/3526507?fr=aladdin</a>
<a href="http://blog.fens.me/hadoop-family-roadmap/">http://blog.fens.me/hadoop-family-roadmap/</a>
本文轉自 酥心糖 51CTO部落格,原文連結:http://blog.51cto.com/tryingstuff/2066561