說到大數(shù)據(jù),不得不提Hadoop系統(tǒng),這個系統(tǒng)也已經(jīng)超過十年的歷史了。程小獅曾以為大數(shù)據(jù)就是Hadoop系統(tǒng),請原諒我的too young too simple.那么,Hadoop到底是什么呢?為此,程小獅也查詢了下wiki百科以及百度百科,給大家普及下。
Wiki百科中的定義:
Apache Hadoop is an open-source software framework for distributed storage and distributed processing of very large data sets on computer clusters built from commodity hardware. All the modules in Hadoop are designed with a fundamental assumption that hardware failures are common and should be automatically handled by the framework.
百度百科中的解釋:
Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎架構(gòu)。用戶可以在不了解分布式底層細節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力進行高速運算和存儲。
從上面,大家可以看出Hadoop是一個分布式的系統(tǒng)處理框架,而且還是開源的。當然它也具備谷歌的血統(tǒng):它最先由 Google Lab 開發(fā)的 Map/Reduce 和 Google File System(GFS) 的啟發(fā),后由 Apache Software Foundation 公司于 2005 年秋天作為Lucene的子項目Nutch的一部分正式引入。那么最最關鍵的是,到目前hadoop的生態(tài)圈已足夠成熟,學習資料足夠多,而且國內(nèi)大多數(shù)企業(yè)也在用apache開源的hadoop.所以盆友們,跟程小獅一起開整吧!
為了幫助大家進一步了解hadoop,程小獅費了九牛二虎之力查詢了一些資料,與大家分享一些學習hadoop相關資源,內(nèi)容涵蓋了Hadoop中常見的庫與工具、存儲方式、數(shù)據(jù)庫,以及相關的書籍、網(wǎng)站等資源。
好了,不多(fei)說(hua)。直接上干貨。
Hadoop
- Apache Tez:它是一個針對Hadoop數(shù)據(jù)處理應用程序的新分布式執(zhí)行框架,該框架基于YARN;
- GIS Tools for Hadoop :用于Hadoop框架的大數(shù)據(jù)空間分析;
- hdfs-du:Hadoop分布式文件系統(tǒng)(HDFS)的交互可視化;
- Genie:Genie提供REST-ful API,以便運行Hadoop、Hive和Pig jobs,還管理多個Hadoop資源,并在它們之間進行作業(yè)提交;
- Apache Kylin:最初來自eBay公司的開源分布式分析引擎,能提供Hadoop之上的SQL查詢接口及多維分析(OLAP),以支持超大規(guī)模數(shù)據(jù)集;
- Apache Ignite:分布式內(nèi)存平臺。
YARN
- Apache Slider:Apache Slider是Apache軟件基金會的孵化項目,旨在能夠輕松地實現(xiàn)現(xiàn)有應用程序到Y(jié)ARN集群的部署;
- Apache Twill:Apache Twill是Apache Hadoop? YARN的抽象層,降低了開發(fā)分布式應用程序的復雜度,讓開發(fā)者更專注于自己的應用邏輯;
NoSQL
下一代數(shù)據(jù)庫大多定位于以下幾點:非關系型、分布式、開放源碼和橫向擴展。
- Apache HBase:Apache HBase是一個高性能、面向列、可伸縮的開源分布式NoSQL數(shù)據(jù)庫,它是Google Bigtable的開源實現(xiàn)。
- Apache Phoenix:Hbase的SQL驅(qū)動,支持輔助索引;
- Hannibal:用于監(jiān)測和維護HBase 集群的工具;
- Haeinsa :用于HBase的線性可擴展多行多表交易庫;
- hindex:Hbase的輔助索引;
Hadoop中的SQL
- Apache Hive:Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供簡單的sql查詢功能,可以將sql語句轉(zhuǎn)換為MapReduce任務進行運行。
- Pivotal HAWQ:Hadoop上的并行數(shù)據(jù)庫;
- Presto:用于大數(shù)據(jù)的分布式SQL查詢引擎,該查詢引擎由Facebook開發(fā),現(xiàn)已開源;
- Apache Tajo:Apache Hadoop的數(shù)據(jù)倉庫系統(tǒng);
工作流、生命周期及管理
- Apache Oozie:一個工作流引擎服務器,用于運行Hadoop Map/Reduce和Pig 任務工作流。同時Oozie還是一個Java Web程序,運行在Java Servlet容器中,如Tomcat.
- Apache Falcon:一個數(shù)據(jù)管理與處理平臺;
- AirFlow:AirFlow是以編程方式建立、調(diào)度和監(jiān)控數(shù)據(jù)管道的平臺;
數(shù)據(jù)提取及整合
- Apache Flume:Flume是Cloudera提供的一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng),F(xiàn)lume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);同時,F(xiàn)lume提供對數(shù)據(jù)進行簡單處理,并寫到各種數(shù)據(jù)接受方(可定制)的能力。
- Apache Sqoop:Sqoop主要用于在Hadoop(Hive)與傳統(tǒng)的數(shù)據(jù)庫(mysql、postgresql...)間進行數(shù)據(jù)的傳遞,可以將一個關系型數(shù)據(jù)庫(例如:MySQL ,Oracle ,Postgres等)中的數(shù)據(jù)導進到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導進到關系型數(shù)據(jù)庫中。
- Apache Kafka:一個分布式的、分區(qū)的、多復本的日志提交服務。它通過一種獨一無二的設計提供了一個消息系統(tǒng)的功能。
- Gobblin from LinkedIn:Hadoop的通用數(shù)據(jù)提取框架;
DSL
- Apache Pig:一個基于Hadoop的大規(guī)模數(shù)據(jù)分析平臺,它提供的SQL-LIKE語言叫Pig Latin,該語言的編譯器會把類SQL的數(shù)據(jù)分析請求轉(zhuǎn)換為一系列經(jīng)過優(yōu)化處理的MapReduce運算。Pig為復雜的海量數(shù)據(jù)并行計算提供了一個簡單的操作和編程接口。
- Apache DataFu:Hadoop中用于處理大規(guī)模數(shù)據(jù)的庫的集合;
- vahara:基于Apache Pig的機器學習和自然語言處理;
- packetpig:用于開源大數(shù)據(jù)安全性分析;
- Lipstick:Pig工作流程可視化工具;A(pache)的Lipstick簡介;
庫和工具
- Hue:用Apache Hadoop分析數(shù)據(jù)的Web界面;
- Apache Zeppelin:基于Web的筆記,可進行交互式數(shù)據(jù)分析;
- Jumbune:Jumbune是為分析Hadoop集群和MapReduce作業(yè)而構(gòu)建的開源產(chǎn)品;
- Apache Avro:Apache Avro是一個數(shù)據(jù)序列化系統(tǒng);
- Elephant Bird:Twitter中LZO、緩沖協(xié)議相關的Hadoop、Pig、Hive和HBase代碼的集合;
資源
網(wǎng)站
一些學習Hadoop有用的網(wǎng)站以及技術博文。
- Hadoop周刊
- Hadoop生態(tài)系統(tǒng)表
- Apache Hadoop YARN簡介
- Apache Hadoop YARN——背景和概述
- 你想了解卻不敢詢問的Hadoop知識
- Apache Hive的10個最佳實踐
- AWS大數(shù)據(jù)博客
書籍