1. 程式人生 > >Hadoop實踐(零)---Hadoop專案生態系統

Hadoop實踐(零)---Hadoop專案生態系統

核心元件

  • HDFS是的Hadoop分散式檔案系統,用於將資料儲存在Hadoop叢集。HDFS是冗餘和高度可靠的分散式檔案系統。
  • YARN是另一種資源管理器,它為叢集提供所有的排程和資源管理。
  • MapReduce是為叢集提供MapReduce功能的YARN應用程式框架。它與MapReduce V1 相容並作為許多更高階的Hadop工具的基礎

Hadoop資料庫

  • Apache HCatalog是使用Hadoop建立的資料的表和儲存管理服務。抽象為表讓使用者不需要知道資料的儲存位置。
  • Apache HBase是Hadoop資料庫,是分散式和可以做的列式資料庫,類似有Google Big Table。Hbase提供急群眾資料的隨機、實時訪問。HBase被設計為榮男幾十億行和數百萬列的非常大的表。

MapReduce查詢工具

  • Apache Pig是一種高階語言,使程式設計師能夠使用簡單的指令碼語言編寫複製的MapReduce轉換,Pig Latin(實際語言)在資料集上定義一組轉換,包括聚合、連線和排序。它通常用於提取、轉換和載入(ETL)資料管道,快速研究原始資料和迭代資料處理。這種語言提高了對MapReduce作業進行Java程式設計的程式設計效率。
  • Apache Hive是一種建立在Hadoop之上的資料倉庫基礎設施。使用稱為HiveQL的類似於SQL的語言提供大資料集的資料彙總、即時查詢和分析。Hive透明的把在HBase中執行的查詢轉換為MapReduce作業。Hive被認為是使用Hadoop的海量資料的互動式SQL查詢事實上的標準。

Data匯入匯出

  • Aache Sqoop是設計為高效地在HDFS和關係資料庫之間傳輸大量資料的工具。一旦資料被放在HDFS中,Hadoop應用程式就可以使用它。
  • Apache Flume是高效地收集、聚合和移動大量的動態序列資料(例如,日誌資料)的分散式、可靠的服務。
  • Apache Avro 是是的資料能在任何語言編寫的程式之間變化的序列化格式。它通常用於連線Flume資料流。

工作流自動化

  • Apache Oozie是一個管理多級Hadoop作業的工作流/協調系統。它使工作流決策基於作業的依賴關係。對於設計工作執行圖形,Oozie是最好的工具。
  • Apache Falcon使得插入、管道和複製操作的資料移動和處理自動化。當書記改變或變得可用時,Falcon可以出發作業啟動。

管理

  • Apache Ambari是一個基於Web的Apache Hadoop叢集資源調配、管理和監控工具。

YARN應用程式框架

應用程式框架是專門為YARN環境編寫的應用程式。核心MapReduce框架就是一個示例。其他專案包括Apache Giraph(圖形處理)、Apache Spark(記憶體中處理)、Apache Storm(流處理)和其他應用程式等

其他

  • Apache Zookeeper 是應用程式用於維護配置、健康程度和節點之間的其他狀態元素的集中式服務。它維護了在大型叢集環境中需要的一些常見物件,包括配置資訊、分層名稱空間,等等。用用程式可以使用這些服務來協調在Hadoop叢集中的分散式處理。Zookeeper還提供應用程式的可靠性。如果某個應用程式主控程式出現故障了。Zookeeper就會嘗試新的應用程式主控程式來回復此任務。
  • Apache Mahout是一個可擴充套件的機器學習庫,它實現了許多不同的機器學習的方法。