hadoop生態圈各產品基本概念梳理

  1. hbase:是一個適合於非結構化數據存儲的數據庫,是基於列的而不是基於行的模式,HBase利用Hadoop MapReduce來處理HBase中的海量數據。
  2. HDFS: 是GFS的一種實現,他的完整名字是分佈式文件系統,類似於FAT32,NTFS,是一種文件格式,是底層的。
    Hive與Hbase的數據一般都存儲在HDFS上。Hadoop HDFS爲他們提供了高可靠性的底層存儲支持。
  3. ==hive==:是一個數據倉庫軟件,可幫助讀取,寫入和管理使用SQL駐留在分佈式存儲中的大型數據集。結構可以投影到已經存儲的數據上。提供了一個命令行工具和JDBC驅動程序,用於將用戶連接到Hive。
  4. ==Sqoop==: 是一種用於在Hadoop和關係數據庫或大型機之間傳輸數據的工具。 您可以使用Sqoop將數據從關係數據庫管理系統(RDBMS)(如MySQL或Oracle)或主機導入到Hadoop分佈式文件系統(HDFS)中,將數據轉換爲Hadoop MapReduce,然後將數據導出到RDBMS。
  5. pig:是分析大型數據集的平臺,包括用於表達數據分析程序的高級語言,以及用於評估這些程序的基礎設施。 Pig程序的顯着特點在於它們的結構適用於大量並行化,從而使它們能夠處理非常大的數據集。

Hadoop HDFS爲HBase提供了高可靠性的底層存儲支持,Hadoop MapReduce爲HBase提供了高性能的計算能力,Zookeeper爲HBase提供了穩定服務和failover機制。Pig和Hive還爲HBase提供了高層語言支持,使得在HBase上進行數據統計處理變的非常簡單。 Sqoop則爲HBase提供了方便的RDBMS(關係型數據庫)數據導入功能,使得傳統數據庫數據向HBase中遷移變的非常方便。

  1. ==flume-ng==:是一種分佈式,可靠和可用的服務,用於高效收集,聚合和移動大量日誌數據。它具有基於流數據流的簡單靈活的架構。它具有可靠的可靠性機制和許多故障切換和恢復機制的魯棒性和容錯能力。它使用一個簡單的可擴展數據模型,允許在線分析應用程序。

  2. Oozie:是一個管理Apache Hadoop作業的工作流程調度程序。
    工作流作業是定向循環圖(DAG)的動作。
    協調員工作是由時間(頻率)和數據可用性觸發的經常性Oozie工作流作業。
    與其餘的Hadoop堆棧集成,支持幾種類型的Hadoop作業(例如Java map-reduce,Streaming map-reduce,Pig,Hive,Sqoop和Distcp)以及系統特定的作業(例如Java程序和shell腳本)

  3. avro:允許編碼Hadoop文件的schema的一種數據序列化系統
  4. Mahout:一個數據挖掘庫,它包含了最流行的一些數據挖據算法,並且以MapReduce模型來實現他們,它有以下三個特徵:

    • A simple and extensible programming environment and framework for building scalable algorithms
    • A wide variety of premade algorithms for Scala + Apache Spark, H2O, Apache Flink
    • Samsara, a vector math experimentation environment with R-like syntax which works at scale
  5. HCatalog:是用於Hadoop的表和存儲管理層,使用戶可以使用不同的數據處理工具(Pig,MapReduce)來更輕鬆地在網格上讀取和寫入數據。

  6. bigtop:是一個工程的系統開發包,對Hadoop生態系統的測試,主要目標就是構建一個Apache Hadoop生態系統的包和交互式測試的社區。這個包括對各類不同級別工程進行測試(包,平臺,運行時間,升級等…),它由社區以關注系統作爲一個整體開發而來。
  7. storm:一個分佈式實時計算系統,Storm是一個任務並行連續計算引擎。 Storm本身並不典型在Hadoop集羣上運行,它使用Apache ZooKeeper的和自己的主/從工作進程,協調拓撲,主機和工作者狀態,保證信息的語義。無論如何, Storm必定還是可以從HDFS文件消費或者從文件寫入到HDFS。
  8. spark:一種快速,通用引擎用於大規模數據處理,Spark是一個數據並行通用批量處理引擎。工作流中在一個類似的和懷舊風格的MapReduce中定義,但是,比傳統Hadoop MapReduce的更能幹。apache spark有其流API項目,該項目通過短間隔批次允許連續處理。Apache Spark本身並不需要Hadoop操作。但是,它的數據並行模式,需要穩定的數據優化使用共享文件系統。該穩定源的範圍可以從S3,NFS或更典型地,HDFS。執行Spark應用程序並不需要Hadoop YARN。Spark有自己獨立的主/服務器進程。然而,這是共同的運行使用YARN容器Spark的應用程序。此外,Spark還可以在Mesos集羣上運行。
  9. cdk:Cloudera開發人員工具包(CDK)是一個新的開源項目,旨在幫助開發人員開始運行,在CDH上構建應用程序,Cloudera的開源分發(包括Hadoop)比以前更快更容易
  10. crunch:一個簡單的Java API,運行在Hadoop MapReduce和Apache Spark之上,用於加載和數據聚合等任務,在簡單的MapReduce上實現繁瑣。 當處理不適合關係模型的數據(例如時間序列,序列化對象格式,如協議緩衝區或Avro記錄)和HBase行和列時,API尤其有用。 對於Scala用戶,還有Scrunch API,它構建在Java API之上,幷包含一個用於創建MapReduce管道的REPL(讀取 - 評估 - 打印循環)。
  11. datafu:用於在Hadoop中處理大規模數據的庫的集合,它由兩部分組成:
    • Apache DataFu Pig: a collection of user-defined functions for Apache Pig
    • Apache DataFu Hourglass: an incremental processing framework for Apache Hadoop in MapReduce
  12. hue:Hadoop User Experience,是一個開源的Apache Hadoop UI系統,由Cloudera Desktop演化而來,最後Cloudera公司將其貢獻給Apache基金會的Hadoop社區,它是基於Python Web框架Django實現的
  13. impala:提高了Apache Hadoop上的SQL查詢性能,同時保留了熟悉的用戶體驗。 使用Impala,您可以實時查詢數據,無論是存儲在HDFS還是Apache HBase中,包括SELECT,JOIN和聚合函數。 此外,Impala使用相同的元數據,SQL語法(Hive SQL),ODBC驅動程序和用戶界面(Hue Beeswax)作爲Apache Hive,爲面向批量或實時查詢提供了一個熟悉和統一的平臺。
  14. kite:是Hadoop的高級數據層。 它是一個API和一套加速開發的工具。 您可以配置Kite如何將數據存儲在Hadoop中,而不是自己構建和維護該基礎架構。
  15. kudu:Cloudera開源的新型列式存儲系統,是Apache Hadoop生態圈的新成員之一(incubating),專門爲了對快速變化的數據進行快速的分析,填補了以往Hadoop存儲層的空缺。
  16. llama:Llama (Low Latency Application MAster) 是一個 Yarn 的 Application Master,用於協調 Impala 和 Yarn 之間的集羣資源的管理和監控。Llama 使 Impala 能夠獲取、使用和釋放資源配額,而不需要 Impala 使用 Yarn 管理的 container 進程。Llama 提供了 Thrift API 來和 Yarn 交互。
  17. Ambari:一個基於web的部署/管理/監控Hadoop集羣的工具集
  18. parquet:是一種可用於Hadoop生態系統中任何項目的柱狀存儲格式,無論數據處理框架,數據模型或編程語言如何選擇。
  19. sentry:是一種用於對存儲在Hadoop集羣中的數據和元數據執行細粒度角色授權的系統。
  20. whirr:was a set of libraries for running cloud services and deploying clusters.
  21. zookeeper:is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. All of these kinds of services are used in some form or another by distributed applications. Each time they are implemented there is a lot of work that goes into fixing the bugs and race conditions that are inevitable. Because of the difficulty of implementing these kinds of services, applications initially usually skimp on them ,which make them brittle in the presence of change and difficult to manage. Even when done correctly, different implementations of these services lead to management complexity when the applications are deployed.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章