標籤:http java 使用 strong os 檔案
大資料我們都知道hadoop,可是還會各種各樣的技術進入我們的視野:Spark,Storm,impala,讓我們都反映不過來。為了能夠更好的架構大資料項目,這裡整理一下,供技術人員,專案經理,架構師選擇合適的技術,瞭解大資料各種技術之間的關係,選擇合適的語言。
我們可以帶著下面問題來閱讀本文章:
1.hadoop都包含什麼技術
2.Cloudera公司與hadoop的關係是什麼,都有什麼產品,產品有什麼特性
3. Spark與hadoop的關聯是什嗎?
4. Storm與hadoop的關聯是什嗎?
hadoop家族
創始人:Doug Cutting
整個Hadoop家族由以下幾個子項目組成:
Hadoop Common:
Hadoop體系最底層的一個模組,為Hadoop各子項目提供各 種工具,如:設定檔和日誌操作等。詳細可查看
Hadoop技術內幕深入解析HADOOP COMMON和HDFS架構設計與實現原理大全1-9章
HDFS :
是Hadoop應用程式中主要的分布式儲存系統, HDFS叢集包含了一個NameNode(主節點),這個節點負責管理所有檔案系統的中繼資料及儲存了真實資料的DataNode(資料節點,可以有很多)。HDFS針對海量資料所設計,所以相比傳統檔案系統在大批量小檔案上的最佳化,HDFS最佳化的則是對小批量大型檔案的訪問和儲存。下面為詳細資料:
什麼是HDFS及HDFS架構設計
HDFS+MapReduce+Hive快速入門
Hadoop2.2.0中HDFS為何具有高可用性
Java建立hdfs檔案執行個體
MapReduce:
是一個軟體架構,用以輕鬆編寫處理海量(TB級)資料的並行應用程式,以可靠和容錯的方式串連大型叢集中上萬個節點(商用硬體)。
詳細可查看:
Hadoop簡介(1):什麼是Map/Reduce
Hadoop MapReduce基礎
MapReduce工作原理講解
手把手交你寫Mapreduce程式執行個體並部署在Hadoop2.2.0上運行
Hive:
Apache Hive是Hadoop的一個資料倉儲系統,促進了資料的綜述(將結構化的資料檔案映射為一張資料庫表)、即席查詢以及儲存在Hadoop相容系統中的大型資料集分析。Hive提供完整的SQL查詢功能——HiveQL語言,同時當使用這個語言表達一個邏輯變得低效和繁瑣時,HiveQL還允許傳統的Map/Reduce程式員使用自己定製的Mapper和Reducer。hive類似CloudBase,基於hadoop分散式運算平台上的提供data warehouse的sql功能的一套軟體。使得儲存在hadoop裡面的海量資料 的匯總,即席查詢簡單化。
詳細可查看:
Hive的起源及詳細介紹
hive詳解視頻
Pig:
Apache Pig是一個用於大型資料集分析的平台,它包含了一個用於資料分析應用的進階語言以及評估這些應用的基礎設施。Pig應用的閃光特性在於它們的結構經得起大量的並行,也就是說讓它們支撐起非常大的資料集。Pig的基礎設施層包含了產生Map-Reduce任務的編譯器。Pig的語言層當前包含了一個原生語言——Pig Latin,開發的初衷是易於編程和保證可擴充性。
Pig是SQL-like語言,是在MapReduce上構建的一種進階查詢語言,把一些運算編譯進MapReduce模型的Map和Reduce中,並且使用者可以定義自己的功能。Yahoo網格運算部門開發的又一個複製Google的項目Sawzall。
詳細可查看:
pig入門簡單操作及文法包括支援資料類型、函數、關鍵字、操作符等
hadoop家族Pig和Hive有什麼不同?
HBase:
Apache HBase是Hadoop資料庫,一個分布式、可擴充的大資料存放區。它提供了大資料集上隨機和即時的讀/寫訪問,並針對了商用伺服器叢集上的大型表格做出最佳化——上百億行,上千萬列。其核心是Google Bigtable論文的開源實現,分布式列式儲存。就像Bigtable利用GFS(Google File System)提供的分布式資料存放區一樣,它是Apache Hadoop在HDFS基礎上提供的一個類Bigatable。
詳細可查看:
hbase與傳統資料的區別
HBASE分布式安裝視頻下載分享
ZooKeeper:
Zookeeper是Google的Chubby一個開源的實現。它是一個針對大型分布式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、 分布式同步、組服務等。ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的介面和效能高效、功能穩定的系統提供給使用者。
詳細可查看:
什麼是Zookeeper,Zookeeper的作用是什麼,在Hadoop及hbase中具體作用是什麼
Avro:
Avro是doug cutting主持的RPC項目,有點類似Google的protobuf和Facebook的thrift。avro用來做以後hadoop的RPC,使hadoop的RPC模組通訊速度更快、資料結構更緊湊。
Sqoop:
Sqoop是一個用來將Hadoop和關係型資料庫中的資料相互轉移的工具,可以將一個關係型資料庫中資料匯入Hadoop的HDFS中,也可以將HDFS中資料匯入關係型資料庫中。
詳細可查看:
Sqoop詳細介紹包括:sqoop命令,原理,流程
Mahout:
Apache Mahout是個可擴充的機器學習和資料採礦庫,當前Mahout支援主要的4個用例:
推薦挖掘:搜集使用者動作並以此給使用者推薦可能喜歡的事物。
聚集:收集檔案並進行相關檔案分組。
分類:從現有的分類文檔中學習,尋找文檔中的相似特徵,並為無標籤的文檔進行正確的歸類。
頻繁項集挖掘:將一組項分組,並識別哪些個別項會經常一起出現。
Cassandra:
Apache Cassandra是一個高效能、可線性擴充、高有效性資料庫,可以運行在商用硬體或雲基礎設施上打造完美的任務關鍵性資料平台。在橫跨資料中心的複製中,Cassandra同類最佳,為使用者提供更低的延時以及更可靠的災難備份。通過log-structured update、反正常化和物化視圖的強支援以及強大的內建緩衝,Cassandra的資料模型提供了方便的二級索引(column indexe)。
Chukwa:
Apache Chukwa是個開源的Tlog,用以監視大型分布系統。建立於HDFS和Map/Reduce架構之上,繼承了Hadoop的可擴充性和穩定性。Chukwa同樣包含了一個靈活和強大的工具包,用以顯示、監視和分析結果,以保證資料的使用達到最佳效果。
Ambari:
Apache Ambari是一個基於web的工具,用於配置、管理和監視Apache Hadoop叢集,支援Hadoop HDFS,、Hadoop MapReduce、Hive、HCatalog,、HBase、ZooKeeper、Oozie、Pig和Sqoop。Ambari同樣還提供了叢集狀況儀錶盤,比如heatmaps和查看MapReduce、Pig、Hive應用程式的能力,以友好的使用者介面對它們的效能特性進行診斷。
HCatalog
Apache HCatalog是Hadoop建立資料的映射表和儲存管理服務,它包括:
提供一個共用模式和資料類型機制。
提供一個抽象表,這樣使用者就不需要關注資料存放區的方式和地址。
為類似Pig、MapReduce及Hive這些資料處理工具提供互通性。
------------------------------------------------------------------------------------------------------------------------------------------------
Chukwa:
Chukwa是基於Hadoop的大叢集監控系統,由yahoo貢獻。
------------------------------------------------------------------------------------------------------------------------------------------------
Cloudera系列產品:
創始組織: Cloudera公司
1.Cloudera Manager:
有四大功能
(1)管理
(2)監控
(3)診斷
(4)整合
Cloudera Manager四大功能
2.Cloudera CDH: 英文名稱:CDH (Cloudera‘s Distribution, including Apache Hadoop)
Cloudera對hadoop做了相應的改變。
Cloudera公司的發行版,我們將該版本稱為CDH(Cloudera Distribution Hadoop)。
詳細可以查看
Cloudera Hadoop什麼是CDH及CDH版本介紹
相關資料
CDH3實戰Hadoop(HDFS) , HBase , Zookeeper , Flume , Hive
CDH4安裝實踐HDFS、HBase、Zookeeper、Hive、Oozie、Sqoop
Hadoop CDH四種安裝方式總結及執行個體指導
hadoop的CDH4及CDH5系列文檔下載分享
3.Cloudera Flume
Flume是Cloudera提供的日誌收集系統,Flume支援在日誌系統中定製各類資料發送方,用於收集資料;
Flume是Cloudera提供的一個高可用的,高可靠的,分布式的海量日誌採集、彙總和傳輸的系統,Flume支援在日誌系統中定製各類資料發送方,用於收集資料;同時,Flume提供對資料進行簡單處理,並寫到各種資料接受方(可定製)的能力。
Flume最早是Cloudera提供的日誌收集系統,目前是Apache下的一個孵化項目,Flume支援在日誌系統中定製各類資料發送方,用於收集資料;同時,Flume提供對資料進行簡單處理,並寫到各種資料接受方(可定製)的能力 Flume提供了從console(控制台)、RPC(Thrift-RPC)、text(檔案)、tail(UNIX tail)、syslog(syslog日誌系統,支援TCP和UDP等2種模式),exec(命令執行)等資料來源上收集資料的能力。
Flume採用了多Master的方式。為了保證配置資料的一致性,Flume[1]引入了ZooKeeper,用於儲存配置資料,ZooKeeper本身可保證配置資料的一致性和高可用,另外,在配置資料發生變化時,ZooKeeper可以通知Flume Master節點。Flume Master間使用gossip協議同步資料。
詳細可查看:
什麼是 flume 日誌收集,flume的特性
什麼是 flume 日誌收集,flume的原理是什麼,flume會遇到什麼問題
4.Cloudera Impala
Cloudera Impala對你儲存在Apache Hadoop在HDFS,HBase的資料提供直接查詢互動的SQL。除了像Hive使用相同的統一儲存平台,Impala也使用相同的中繼資料,SQL文法(Hive SQL),ODBC驅動程式和使用者介面(Hue Beeswax)。Impala還提供了一個熟悉的面向批量或即時查詢和統一平台。
詳細可查看:
什麼是impala,如何安裝使用Impala
5.Cloudera hue
Hue是cdh專門的一套web管理器,它包括3個部分hue ui,hue server,hue db。hue提供所有的cdh組件的shell介面的介面。你可以在hue編寫mr,查看修改hdfs的檔案,管理hive的中繼資料,運行Sqoop,編寫Oozie工作流程等大量工作。
詳細可查看:
cloudera hue安裝及Oozie的安裝
什麼是Oozie?Oozie簡介
Cloudera Hue 使用經驗分享,遇到的問題及解決方案
------------------------------------------------------------------------------------------------------------------------------------------------
Spark
創始 組織:加州大學伯克利分校 AMP 實驗室 (Algorithms, Machines, and People Lab) 開發
Spark 是一種與 Hadoop 相似的開源叢集計算環境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負載方面表現得更加優越,換句話說,Spark 啟用了記憶體分布資料集,除了能夠提供互動式查詢外,它還可以最佳化迭代工作負載。
Spark 是在 Scala 語言中實現的,它將 Scala 用作其應用程式架構。與 Hadoop 不同,Spark 和 Scala 能夠緊密整合,其中的 Scala 可以像操作本地集合對象一樣輕鬆地操作分布式資料集。
儘管建立 Spark 是為了支援分布式資料集上的迭代作業,但是實際上它是對 Hadoop 的補充,可以在 Hadoo 檔案系統中並行運行。通過名為 Mesos 的第三方叢集架構可以支援此行為。Spark 由加州大學伯克利分校 AMP 實驗室 (Algorithms, Machines, and People Lab) 開發,可用來構建大型的、低延遲的資料分析應用程式。
可以詳細瞭解
科普Spark,Spark是什麼,如何使用Spark(1)
科普Spark,Spark核心是什麼,如何使用Spark(2)
優酷馬鈴薯用Spark完善大資料分析
Hadoop新成員Hadoop-Cloudera公司將Spark加入Hadoop
-----------------------------------------------------------------------------------------------------------------------------------------------
Storm
創始人:Twitter
Twitter將Storm正式開源了,這是一個分布式的、容錯的Realtime Compute系統,它被託管在GitHub上,遵循 Eclipse Public License 1.0。Storm是由BackType開發的即時處理系統,BackType現在已在Twitter麾下。GitHub上的最新版本是Storm 0.5.2,基本是用Clojure寫的。
詳細可以瞭解:
storm入門介紹
Storm-0.9.0.1安裝部署指導
總體認識storm包括概念,情境,組成
大資料架構師:hadoop、Storm改選哪一個?
大資料架構:flume-ng+Kafka+Storm+HDFS 即時系統組合