安裝鏈接:
http://www.cnblogs.com/lion.NET/p/5477899.html
http://www.aboutyun.com/thread-9075-1-1.html
官網(wǎng):
安裝方式:
建議離線安裝,可以單獨下載CM和CDH組件
1、CDH介紹
1.1、什么是CDH和CM?
CDH一個對Apache Hadoop的集成環(huán)境的封裝,可以使用Cloudera Manager進行自動化安裝。
Cloudera-Managerceql(本文中簡稱CM)是一個工具,CM能夠管理一個大的Hadoop cluster并不是一只要下載tar files什么壓縮并啟動services這么簡單。后續(xù)有非常多設(shè)定、監(jiān)控等麻煩的事要處理,CM都能夠做到,有些類似Casti。Cloudera Manager整合了一列的功能讓系統(tǒng)管理者能更方便的維護Hadoop。
1.2、CDH的主要功能?
管理
監(jiān)控
診斷
集成
1.3、CDH版本衍化
Hadoop是一個開源項目,所以很多公司在這個基礎(chǔ)進行商業(yè)化,Cloudera對hadoop做了相應(yīng)的改變。
Cloudera公司的發(fā)行版,我們將該版本稱為CDH(Cloudera Distribution Hadoop)。截至目前為止,CDH共有5個版本,其中,前兩個已經(jīng)不再更新,最近的兩個,分別是CDH4在Apache Hadoop 2.0.0版本基礎(chǔ)上演化而來的),CDH5,它們每隔一段時間便會更新一次。
Cloudera以Patch Level劃分小版本,比如Patch Level為923.142表示在原生態(tài)Apache Hadoop 0.20.2基礎(chǔ)上添加了1065個Patch(這些Patch是各個公司或者個人貢獻的,在Hadoop jira上均有記錄),其中923個是最后一個Beta版本添加的Patch,而142個是穩(wěn)定版發(fā)行后新添加的Patch。由此可見,Patch Level越高,功能越完備且解決的Bug越多。
Cloudera版本層次更加清晰,且它提供了適用于各種操作系統(tǒng)的Hadoop安裝包,可直接使用apt-get或者yum命令進行安裝,更加省事。
在CDH5以上的版本中,已經(jīng)加入了Hadoop2.0的HA單點故障解決方案。可以參考《ubuntu12.04+hadoop2.2.0+zookeeper3.4.5+hbase0.96.2+hive0.13.1分布式環(huán)境部署》中的單點故障測試。
1.4、CDH5.1.2支持的主要組件簡要介紹
HTTPFS
1:Httpfs是Cloudera公司提供的一個Hadoop Hdfs的一個Http接口,通過WebHDFS REST API 可以對hdfs進行讀寫等訪問
2:與WebHDFS的區(qū)別是不需要客戶端可以訪問Hadoop集群的每一個節(jié)點,通過Httpfs可以訪問放置在防火墻后面的Hadoop集群
3:Httpfs是一個Web應(yīng)用,部署在內(nèi)嵌的Tomcat中
HBASE
Hbase是Bigtable的開源山寨版本。是建立的Hdfs之上,提供高可靠性、高性能、列存儲、可伸縮、實時讀寫的數(shù)據(jù)庫系統(tǒng)。
它介于Bosql和RDBMS之間,僅能通過主鍵(row key)和主鍵的Range來檢索數(shù)據(jù),僅支持單行事務(wù)(可通過Hive支持來實現(xiàn)多表Join等復(fù)雜操作)。主要用來存儲非結(jié)構(gòu)化和半結(jié)構(gòu)化的松散數(shù)據(jù)。
與Hadoop一樣,Hbase目標(biāo)主要依靠橫向擴展,通過不斷增加廉價的商用服務(wù)器,來增加計算和存儲能力。
HDFS
Hadoop分布式文件系統(tǒng)(HDFS)被設(shè)計成適合運行在通用硬件(commodity hardware)上的分布式文件系統(tǒng)。它和現(xiàn)有的分布式文件系統(tǒng)有很多共同點。但同時,它和其他的分布式文件系統(tǒng)的區(qū)別也是很明顯的。HDFS是一個高度容錯性的系統(tǒng),適合部署在廉價的機器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。HDFS放寬了一部分POSIX約束,來實現(xiàn)流式讀取文件系統(tǒng)數(shù)據(jù)的目的。HDFS在最開始是作為Apache Nutch搜索引擎項目的基礎(chǔ)架構(gòu)而開發(fā)的。HDFS是Apache Hadoop Core項目的一部分。
HIVE
Hive 是一個基于 Hadoop 的開源數(shù)據(jù)倉庫工具,用于存儲和處理海量結(jié)構(gòu)化數(shù)據(jù)。它把海量數(shù)據(jù)存儲于 Hadoop 文件系統(tǒng),而不是數(shù)據(jù)庫,但提供了一套類數(shù)據(jù)庫的數(shù)據(jù)存儲和處理機制,并采用 HQL (類 SQL )語言對這些數(shù)據(jù)進行自動化管理和處理。我們可以把 Hive 中海量結(jié)構(gòu)化數(shù)據(jù)看成一個個的表,而實際上這些數(shù)據(jù)是分布式存儲在 HDFS 中的。 Hive 經(jīng)過對語句進行解析和轉(zhuǎn)換,最終生成一系列基于 hadoop 的 Map/Reduce 任務(wù),通過執(zhí)行這些任務(wù)完成數(shù)據(jù)處理。
HUE
Hue是CDH專門的一套WEB管理器,它包括3個部分Hue Ui,Hue Server,Hue db。Hue提供所有的CDH組件的Shell界面的接口。你可以在Hue編寫MR,查看修改HDFS的文件,管理Hive的元數(shù)據(jù),運行Sqoop,編寫Oozie工作流等大量工作。
Impala
Impala對你存儲在Apache Hadoop在HDFS,HBase的數(shù)據(jù)提供直接查詢互動的SQL。除了像Hive使用相同的統(tǒng)一存儲平臺,Impala也使用相同的元數(shù)據(jù),SQL語法(Hive SQL),ODBC驅(qū)動程序和用戶界面(Hue Beeswax)。Impala還提供了一個熟悉的面向批量或?qū)崟r查詢和統(tǒng)一平臺。
MapReduce
MapReduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運算。概念"Map(映射)"和"Reduce(歸約)",和他們的主要思想,都是從函數(shù)式編程語言里借來的,還有從矢量編程語言里借來的特性。他極大地方便了編程人員在不會分布式并行編程的情況下,將自己的程序運行在分布式系統(tǒng)上。 當(dāng)前的軟件實現(xiàn)是指定一個Map(映射)函數(shù),用來把一組鍵值對映射成一組新的鍵值對,指定并發(fā)的Reduce(歸約)函數(shù),用來保證所有映射的鍵值對中的每一個共享相同的鍵組。MapReduce更多運行于離線系統(tǒng),而實時計算,可以使用Storm。關(guān)于Sotrm的使用和介紹,可以參考這篇文章《ubuntu12.04+storm0.9.2分布式集群的搭建》。
Oozie
Oozie是Yahoo針對Apache Hadoop開發(fā)的一個開源工作流引擎。用于管理和協(xié)調(diào)運行在Hadoop平臺上(包括:HDFS、Pig和MapReduce)的Jobs。Oozie是專為雅虎的全球大規(guī)模復(fù)雜工作流程和數(shù)據(jù)管道而設(shè)計。
Solr
Solr是一個基于Lucene的Java搜索引擎服務(wù)器。Solr 提供了層面搜索、命中醒目顯示并且支持多種輸出格式(包括 XML/XSLT 和 JSON 格式)。它易于安裝和配置,而且附帶了一個基于 HTTP 的管理界面。Solr已經(jīng)在眾多大型的網(wǎng)站中使用,較為成熟和穩(wěn)定。Solr 包裝并擴展了 Lucene,所以Solr的基本上沿用了Lucene的相關(guān)術(shù)語。更重要的是,Solr 創(chuàng)建的索引與 Lucene 搜索引擎庫完全兼容。通過對 Solr 進行適當(dāng)?shù)呐渲茫承┣闆r下可能需要進行編碼,Solr 可以閱讀和使用構(gòu)建到其他 Lucene 應(yīng)用程序中的索引。此外,很多 Lucene 工具(如Nutch、 Luke)也可以使用 Solr 創(chuàng)建的索引。
Spark
Spark是UC Berkeley AMP lab所開源的類Hadoop MapReduce的通用的并行計算框架,Spark基于map reduce算法實現(xiàn)的分布式計算,擁有Hadoop MapReduce所具有的優(yōu)點;但不同于MapReduce的是Job中間輸出結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫HDFS,因此Spark能更好地適用于數(shù)據(jù)挖掘與機器學(xué)習(xí)等需要迭代的map reduce的算法。
Spark和Storm類似,都是基于內(nèi)存的運行,不確定哪種方式在數(shù)據(jù)吞吐量上要具優(yōu)勢,不過Storm計算時間延遲要小。關(guān)于Sotrm的使用和介紹,可以參考這篇文章《ubuntu12.04+storm0.9.2分布式集群的搭建》。
Sqoop
Sqoop中一大亮點就是可以通過hadoop的mapreduce把數(shù)據(jù)從關(guān)系型數(shù)據(jù)庫中導(dǎo)入數(shù)據(jù)到HDFS。sqoop架構(gòu)非常簡單,其整合了Hive、Hbase和Oozie,通過map-reduce任務(wù)來傳輸數(shù)據(jù),從而提供并發(fā)特性和容錯。sqoop主要通過JDBC和關(guān)系數(shù)據(jù)庫進行交互。理論上支持JDBC的database都可以使用sqoop和hdfs進行數(shù)據(jù)交互。
YARN
YARN可以理解為是Hadoop MapReduceV2版本,YARN重構(gòu)根本的思想是將 JobTracker 兩個主要的功能分離成單獨的組件,這兩個功能是資源管理和任務(wù)調(diào)度 / 監(jiān)控。新的資源管理器全局管理所有應(yīng)用程序計算資源的分配,每一個應(yīng)用的 ApplicationMaster 負責(zé)相應(yīng)的調(diào)度和協(xié)調(diào)。一個應(yīng)用程序無非是一個單獨的傳統(tǒng)的 MapReduce 任務(wù)或者是一個 DAG( 有向無環(huán)圖 ) 任務(wù)。ResourceManager 和每一臺機器的節(jié)點管理服務(wù)器能夠管理用戶在那臺機器上的進程并能對計算進行組織。
事實上,每一個應(yīng)用的 ApplicationMaster 是一個詳細的框架庫,它結(jié)合從 ResourceManager 獲得的資源和 NodeManager 協(xié)同工作來運行和監(jiān)控任務(wù)。
Zookeeper
Zookeeper 分布式服務(wù)框架是 Apache Hadoop 的一個子項目,它主要是用來解決分布式應(yīng)用中經(jīng)常遇到的一些數(shù)據(jù)管理問題,如:統(tǒng)一命名服務(wù)、狀態(tài)同步服務(wù)、集群管理、分布式應(yīng)用配置項的管理等。
Zookeeper 作為一個分布式的服務(wù)框架,主要用來解決分布式集群中應(yīng)用系統(tǒng)的一致性問題,它能提供基于類似于文件系統(tǒng)的目錄節(jié)點樹方式的數(shù)據(jù)存儲,但是 Zookeeper 并不是用來專門存儲數(shù)據(jù)的,它的作用主要是用來維護和監(jiān)控你存儲的數(shù)據(jù)的狀態(tài)變化。通過監(jiān)控這些數(shù)據(jù)狀態(tài)的變化,從而可以達到基于數(shù)據(jù)的集群管理。