標籤:中繼資料 易用 沒有 未來 儀錶盤 hba 備份 rect 指令碼
沒有Java,甚至不會有大資料的大發展,Hadoop本身就是用Java編寫的。當你需要在運行MapReduce的伺服器叢集上發布新功能時,你需要進行動態部署,而這正是Java所擅長的。
大資料領域支援Java的主流開源工具:
1. HDFS
HDFS是Hadoop應用程式中主要的分布式儲存系統, HDFS叢集包含了一個NameNode(主節點),這個節點負責管理所有檔案系統的中繼資料及儲存了真實資料的DataNode(資料節點,可以有很多)。HDFS針對海量資料所設計,所以相比傳統檔案系統在大批量小檔案上的最佳化,HDFS最佳化的則是對小批量大型檔案的訪問和儲存。
2. MapReduce
Hadoop MapReduce是一個軟體架構,用以輕鬆編寫處理海量(TB級)資料的並行應用程式,以可靠和容錯的方式串連大型叢集中上萬個節點(商用硬體)。
3. HBase
Apache HBase是Hadoop資料庫,一個分布式、可擴充的大資料存放區。它提供了大資料集上隨機和即時的讀/寫訪問,並針對了商用伺服器
叢集上的大型表格做出最佳化——上百億行,上千萬列。其核心是Google Bigtable論文的開源實現,分布式列式儲存。就像Bigtable利用
GFS(Google File System)提供的分布式資料存放區一樣,它是Apache Hadoop在HDFS基礎上提供的一個類Bigatable。
4. Cassandra
Apache Cassandra是一個高效能、可線性擴充、高有效性資料庫,可以運行在商用硬體或雲基礎設施上打造完美的任務關鍵性資料平台。
在橫跨資料中心的複製中,Cassandra同類最佳,為使用者提供更低的延時以及更可靠的災難備份。通過log-structured update、反正常化和物化視圖的強支援以及強大的內建緩衝,Cassandra的資料模型提供了方便的二級索引(column indexe)。
5. Hive
Apache Hive是Hadoop的一個資料倉儲系統,促進了資料的綜述(將結構化的資料檔案映射為一張資料庫表)、即席查詢以及儲存在Hadoop相容系統中的大型資料集分析。Hive提供完整的SQL查詢功能——HiveQL語言,同時當使用這個語言表達一個邏輯變得低效和繁瑣時,HiveQL還允許傳統的Map/Reduce程式員使用自己定製的Mapper和Reducer。
6. Pig
Apache Pig是一個用於大型資料集分析的平台,它包含了一個用於資料分析應用的進階語言以及評估這些應用的基礎設施。Pig應用的閃光特性在於它們的結構經得起大量的並行,也就是說讓它們支撐起非常大的資料集。Pig的基礎設施層包含了產生Map-Reduce任務的編譯器。Pig的語言層當前包含了一個原生語言——Pig Latin,開發的初衷是易於編程和保證可擴充性。
7. Chukwa
Apache Chukwa是個開源的Tlog,用以監視大型分布系統。建立於HDFS和Map/Reduce架構之上,繼承了Hadoop的可擴充性和穩定性。Chukwa同樣包含了一個靈活和強大的工具包,用以顯示、監視和分析結果,以保證資料的使用達到最佳效果。
8. Ambari
Apache Ambari是一個基於web的工具,用於配置、管理和監視Apache Hadoop叢集,支援Hadoop HDFS,、Hadoop MapReduce、Hive、HCatalog,、HBase、ZooKeeper、Oozie、Pig和Sqoop。Ambari同樣還提供了叢集狀況儀錶盤,比如heatmaps和查看MapReduce、Pig、Hive應用程式的能力,以友好的使用者介面對它們的效能特性進行診斷。
9. ZooKeeper
Apache ZooKeeper是一個針對大型分布式系統的可靠協調系統,提供的功能包括:配置維護、命名服務、分布式同步、組服務等。
ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的介面和效能高效、功能穩定的系統提供給使用者。
10. Sqoop
Sqoop是一個用來將Hadoop和關係型資料庫中的資料相互轉移的工具,可以將一個關係型資料庫中資料匯入Hadoop的HDFS中,也可以將HDFS中資料匯入關係型資料庫中。
11. Oozie
Apache Oozie是一個可擴充、可靠及可擴充的工作流程調度系統,用以管理Hadoop作業。Oozie Workflow作業是活動的Directed Acyclical
Graphs(DAGs)。Oozie Coordinator作業是由周期性的Oozie Workflow作業觸發,周期一般決定於時間(頻率)和資料可用性。Oozie與
餘下的Hadoop堆棧結合使用,開箱即用的支援多種類型Hadoop作業(比如:Java map-reduce、Streaming map-reduce、Pig、 Hive、Sqoop和Distcp)以及其它系統作業(比如Java程式和Shell指令碼)。
12. Mahout
Apache Mahout是個可擴充的機器學習和資料採礦庫,當前Mahout支援主要的4個用例:
推薦挖掘:搜集使用者動作並以此給使用者推薦可能喜歡的事物。
聚集:收集檔案並進行相關檔案分組。
分類:從現有的分類文檔中學習,尋找文檔中的相似特徵,並為無標籤的文檔進行正確的歸類。
頻繁項集挖掘:將一組項分組,並識別哪些個別項會經常一起出現。
13. HCatalog
Apache HCatalog是Hadoop建立資料的映射表和儲存管理服務,它包括:
提供一個共用模式和資料類型機制。
提供一個抽象表,這樣使用者就不需要關注資料存放區的方式和地址。
為類似Pig、MapReduce及Hive這些資料處理工具提供互通性。
java未來趨勢 Java促進大資料的大發展