大資料系統框架中hadoop服務角色介紹

adnb34g發表於2018-09-11

翻了一下最近一段時間寫的分享, DKHadoop發行版本下載、安裝、執行環境部署等相關內容幾乎都已經寫了一遍了。雖然有的地方可能寫的不是很詳細,個人理解水平有限還請見諒吧!我記得在寫DKHadoop執行環境部署的時候,遺漏了hadoop服務角色的內容,本篇特地補上這部分內容吧,不然總覺得不舒服。

要在叢集中執行 DKHadoop服務,需要指定叢集中的一個或多個節點執行該服務的特定功能,角色分配是必須的,沒有角色叢集將無法正常工作,在分配角色前,需要了解這些角色的含義。

Hadoop服務角色:

1.  zookeeper角色: ZooKeeper服務是指包含一個或多個節點的叢集提供服務框架用於叢集管理。對於叢集,Zookeeper服務提供的功能包括維護配置資訊、命名、提供HyperBase的分散式同步,推薦在 ZooKeeper叢集中至少有3個節點。

2.  JDK角色: JDK是 Java 語言的軟體開發工具包, JDK是整個Java開發的核心,它包含了Java的執行環境,Java工具和Java基礎的類庫。

3.  Apache-Flume角色: Flume是Cloudera提供的一個高可用的,高可靠的,分散式的海量日誌採集、聚合和傳輸的系統,Flume支援在日誌系統中定製各類資料傳送方,用於收集資料;同時,Flume提供對資料進行簡單處理,並寫到各種資料接收方(可定製)的能力。

4.  Apache-Hive角色: Hive是基於Hadoop的一個資料倉儲工具,可以將結構化的資料檔案對映為一張資料庫表,並提供簡單的SQL查詢功能,可以將SQL語句轉換為MapReduce任務進行執行。

5.  Apache-Storm角色: Storm是記憶體級計算,資料直接透過網路匯入記憶體。讀寫記憶體比讀寫磁碟速度快n個數量級。當計算模型比較適合流式時,Storm的流式處理,省去了批處理的收集資料的時間.

6.  Elasticsearch角色: Elasticsearch是用Java開發的,並作為Apache許可條款下的開放原始碼釋出,是當前流行的企業級搜尋引擎。設計用於雲端計算中,能夠達到實時搜尋、穩定、可靠、快速,安裝使用方便。

7.  NameNode角色: HDFS系統中的節點用於維護檔案系統中所有檔案的目錄結構並跟蹤檔案資料儲存於哪些資料節點。當客戶端需要從HDFS 檔案系統中獲得檔案時,它透過和NameNode通訊來知道客戶端哪個資料節點上有客戶端需要的檔案。 一個Hadoop叢集中只能有一個NameNode。NameNode不能被賦予其他角色。

8.  DataNode角色: HDFS中,DataNode是用來儲存資料塊的節點。

9.  Secondary NameNode   角色: NameNode上的資料建立週期性檢查點的節點。節點將週期性地下載當前NameNode映象和日誌檔案,將日誌和映象檔案合併為一個新的映象檔案然後上傳到NameNode。 被分配了NameNode角色的機器不應再被分配Secondary NameNode 角色。

10.  Standby Namenode角色: Standby模式的NameNode後設資料(Namespcae information 和 Block 都是和Active NameNode中的後設資料是同步的,一但切換成Active模式,馬上就可以提供NameNode服務。

11.  JournalNode角色: Standby NameName和Active NameNode透過JournalNode通訊,保持資訊同步。

12.  HBase角色: HBase是一個分散式的、面向列的開源資料庫。HBase在Hadoop之上提供了類似於BigTable的能力。HBase是Apache的Hadoop專案的子專案。HBase不同於一般的關聯式資料庫,它是一個適合於非結構化資料儲存的資料庫。另一個不同的是HBase基於列的而不是基於行的模式。

13.  Kafka角色: Kafka是一種高吞吐量的分散式釋出訂閱訊息系統,它可以處理消費者規模的網站中的所有動作流資料。 這種動作(網頁瀏覽,搜尋和其他使用者的行動)是在現代網路上的許多社會功能的一個關鍵因素。 這些資料通常是由於吞吐量的要求而透過處理日誌和日誌聚合來解決。 對於像Hadoop的一樣的日誌資料和離線分析系統,但又要求實時處理的限制,這是一個可行的解決方案。Kafka的目的是透過Hadoop的並行載入機制來統一線上和離線的訊息處理,也是為了透過叢集來提供實時的消費。

14.  Redis角色: Redis是一個開源的使用C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。

15.  Scala角色: Scala是一門多正規化的程式語言,一種類似Java的程式語言,設計初衷是實現可伸縮的語言、並整合物件導向程式設計和函數語言程式設計的各種特性。

16.  Sqoop角色: Sqoop是一個用來將Hadoop和關係型資料庫中的資料相互轉移的工具,可以將一個關係型資料庫(例如 : MySQL ,Oracle ,Postgres等)中的資料導進到Hadoop的HDFS中,也可以將HDFS的資料匯入到關係型資料庫中。

17.  Impala角色: Impala是Cloudera公司主導開發的新型查詢系統,它提供SQL語義,能查詢儲存在Hadoop的HDFS和HBase中的PB級大資料。已有的Hive系統雖然也提供了SQL語義,但由於Hive底層執行使用的是MapReduce引擎,仍然是一個批處理過程,難以滿足查詢的互動性。相比之下,Impala的最大特點也是最大賣點就是它的快速。

18.  Crawler角色: Crawler是大快DKHadoop專有元件,爬蟲系統,爬取動態靜態資料。

19.  Spark角色: Spark是一種與Hadoop相似的開源叢集計算環境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負載方面表現得更加優越,換句話說,Spark 啟用了記憶體分佈資料集,除了能夠提供互動式查詢外,它還可以最佳化迭代工作負載。Spark 是在Scala語言中實現的,它將Scala用作其應用程式框架。與Hadoop不同,Spark和Scala能夠緊密整合,其中的Scala可以像操作本地集合物件一樣輕鬆地操作分散式資料集。

20.  HUE角色: HUE是一組可與您的Hadoop叢集互動的網路應用程式。HUE應用能讓您瀏覽HDFS和工作,管理Hive metastore,執行Hive,瀏覽HBase Sqoop出口資料,提交MapReduce程式,構建自定義的搜尋引擎與Solr一起排程重複性的工作流。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524777/viewspace-2213932/,如需轉載,請註明出處,否則將追究法律責任。

相關文章