
十八款Hadoop工具幫你馴服大數(shù)據(jù)_數(shù)據(jù)分析師培訓(xùn)
Hadoop已經(jīng)通過自身的蓬勃發(fā)展證明,它不僅僅是一套用于將工作內(nèi)容傳播到計算機群組當(dāng)中的小型堆棧–不,這與它的潛能相比簡直微不足道。這套核心的價值已經(jīng)被廣泛證實,目前大量項目如雨后春筍般圍繞它建立起來。有些項目負責(zé)數(shù)據(jù)管理、有些負責(zé)流程監(jiān)控、還有一些則提供先進的數(shù)據(jù)存儲機制。
Hadoop業(yè)界正在迅速發(fā)展,從業(yè)企業(yè)拿出的解決方案也多種多樣,其中包括提供技術(shù)支持、在托管集群中提供按時租用服務(wù)、為這套開源核心開發(fā)先進的功能強化或者將自有工具添加到方案組合當(dāng)中。
在今天的文章中,我們將一同了解當(dāng)下Hadoop生態(tài)系統(tǒng)當(dāng)中那些最為突出的杰作??傮w而言,這是一套由眾多工具及代碼構(gòu)成的堅實基礎(chǔ)、共同聚集在”Hadoop”這面象征著希望的大旗之下。
雖然很多人會把映射與規(guī)約工具廣義化稱為Hadoop,但從客觀角度講、其實只有一小部分核心代碼算是真正的Hadoop。多個工作節(jié)點負責(zé)對保存在本地的數(shù)據(jù)進行功能執(zhí)行,而基于Java的代碼則對其加以同步。這些工作節(jié)點得到的結(jié)果隨后經(jīng)過匯總并整理為報告。第一個步驟被稱為”映射(即map)”,而第二步驟則被稱為”規(guī)約(reduce)”。
Hadoop為本地數(shù)據(jù)存儲與同步系統(tǒng)提供一套簡化抽象機制,從而保證程序員能夠?qū)⒆⒁饬性诰帉懘a以實現(xiàn)數(shù)據(jù)分析工作上,其它工作交給Hadoop處理即可。Hadoop會將任務(wù)加以拆分并設(shè)計執(zhí)行規(guī)程。錯誤或者故障在意料之中,Hadoop的設(shè)計初衷就在于適應(yīng)由單獨設(shè)備所引發(fā)的錯誤。項目代碼遵循Apache許可機制。
官方網(wǎng)站:hadoop.apache.org
Ambari
Hadoop集群的建立需要涉及大量重復(fù)性工作。Ambari提供一套基于Web的圖形用戶界面并配備引導(dǎo)腳本,能夠利用大部分標準化組件實現(xiàn)集群設(shè)置。在大家采納Ambari并將其付諸運行之后,它將幫助各位完成配置、管理以及監(jiān)管等重要的Hadoop集群相關(guān)任務(wù)。上圖顯示的就是集群啟動后Ambari所顯示的信息屏幕。Ambari屬于Apache旗下的衍生項目,并由Hortonworks公司負責(zé)提供支持。
下載地址:http://incubator.apache.org/ambari/
Hadoop分布式文件系統(tǒng)提供一套基礎(chǔ)框架,專門用于拆分收集自不同節(jié)點之間的數(shù)據(jù),并利用復(fù)制手段在節(jié)點故障時實現(xiàn)數(shù)據(jù)恢復(fù)。大型文件會被拆分成數(shù)據(jù)塊,而多個節(jié)點能夠保留來自同一個文件的所有數(shù)據(jù)塊。上圖來自Apache公布的說明文檔,旨在展示數(shù)據(jù)塊如何分布至各個節(jié)點當(dāng)中。
這套文件系統(tǒng)的設(shè)計目的在于同時實現(xiàn)高容錯性與高數(shù)據(jù)吞吐能力的結(jié)合。加載數(shù)據(jù)塊能夠保持穩(wěn)定的信息流通,而低頻率緩存處理則將延遲降至最小。默認模式假設(shè)的是需要處理大量本地存儲數(shù)據(jù)的長時間作業(yè),這也吻合該項目所提出的”計算能力遷移比數(shù)據(jù)遷移成本更低”的座右銘。HDFS同樣遵循Apache許可。
官方網(wǎng)站:hadoop.apache.org
HBase
當(dāng)數(shù)據(jù)被匯總成一套規(guī)模龐大的列表時,HBase將負責(zé)對其進行保存、搜索并自動在不同節(jié)點之間共享該列表,從而保證MapReduce作業(yè)能夠以本地方式運行。即使列表中容納的數(shù)據(jù)行數(shù)量高達數(shù)十億,該作業(yè)的本地版本仍然能夠?qū)ζ溥M行查詢。
該代碼并不能提供其它全功能數(shù)據(jù)庫所遵循的ACID保證,但它仍然為我們帶來一部分關(guān)于本地變更的承諾。所有衍生版本的命運也都維系在一起–要么共同成功、要么一起失敗。
這套系統(tǒng)通常被與谷歌的BigTable相提并論,上圖所示為來自HareDB(一套專為HBase打造的圖形用戶界面客戶端)的截圖。官方網(wǎng)站:hbase.apache.org
將數(shù)據(jù)導(dǎo)入集群還只是大數(shù)據(jù)分析的第一步。接下來我們需要提取HBase中來自文件的所有數(shù)據(jù)內(nèi)容,而Hive的設(shè)計初衷在于規(guī)范這一提取流程。它提供一套SQL類語言,用于深入發(fā)掘文件內(nèi)容并提取出代碼所需要的數(shù)據(jù)片段。這樣一來,所有結(jié)果數(shù)據(jù)就將具備標準化格式,而Hive則將其轉(zhuǎn)化為可直接用于查詢的存儲內(nèi)容。
上圖所示為Hive代碼,這部分代碼的作用在于創(chuàng)建一套列表、向其中添加數(shù)據(jù)并選擇信息。Hive由Apache項目負責(zé)發(fā)行。
官方網(wǎng)站:hive.apache.org
Sqoop
要將蘊藏在SQL數(shù)據(jù)庫中的數(shù)據(jù)寶庫發(fā)掘出來并交給Hadoop打理需要進行一系列調(diào)整與操作。Sqoop負責(zé)將飽含信息的大型列表從傳統(tǒng)數(shù)據(jù)庫中移動到Hive或者HBase等工具的控制之下。
Sqoop是一款命令行工具,能夠控制列表與數(shù)據(jù)存儲層之間的映射關(guān)系,并將列表轉(zhuǎn)化為可為HDFS、HBase或者Hive所接納的可配置組合。上圖所示為Apache文檔材料中的內(nèi)容,可以看到Sqoop位于傳統(tǒng)庫與節(jié)點上的Hadoop結(jié)構(gòu)之間。
Sqoop的最新穩(wěn)定版本為1.4.4,但目前其2.0版本同樣進展順利。兩個版本目前都可供下載,且遵循Apache許可。
官方網(wǎng)站:sqoop.apache.org
Pig
一旦數(shù)據(jù)以Hadoop能夠識別的方式被保存在節(jié)點當(dāng)中,有趣的分析工作將由此展開。Apache的Pig會用自己的小”豬拱”梳理數(shù)據(jù),運行利用自有語言(名為Pig Latin)所編寫的代碼,并添加處理數(shù)據(jù)所需要的各種抽象機制。這樣的結(jié)構(gòu)會一步步指引用戶走向那些易于以并行方式運行在整個集群當(dāng)中的算法。
Pig還擁有一系列針對常見任務(wù)的標準化功能,能夠輕松處理諸如數(shù)據(jù)平均值計算、日期處理或者字符串差異比較等工作。如果這些還不夠用–實際上一般都不夠用–大家還可以動手編寫屬于自己的功能。上圖所示為Apache說明文檔中的一項實例,解釋了用戶如何將自己的代碼與Pig代碼結(jié)合起來、從而實現(xiàn)數(shù)據(jù)發(fā)掘。目前Pig的最新版本為0.12.0。
官方網(wǎng)站:pig.apache.org
ZooKeeper
一旦Hadoop需要在大量設(shè)備之上,集群運作的順序就顯得非常重要,特別是在其中某些設(shè)備開始簽出的情況下。
ZooKeeper在集群中強制執(zhí)行一套文件系統(tǒng)式的層級結(jié)構(gòu),并為設(shè)備保存所有元數(shù)據(jù),這樣我們就可以在不同設(shè)備之間進行作業(yè)同步。(上圖所示為一套簡單的二層式集群。)說明文檔展示了如何在數(shù)據(jù)處理流程中實施多種標準化技術(shù),例如生產(chǎn)方-消費方隊列,從而保證數(shù)據(jù)能夠以正確的順序進行拆分、清理、篩選以及分類。當(dāng)上述過程結(jié)束后,使用ZooKeeper的節(jié)點會彼此通信、并以最終生成的數(shù)據(jù)為起點開始分析工作。
官方網(wǎng)站:zookeeper.apache.org
NoSQL
并不是所有Hadoop集群都會使用HBase或者HDFS。某些集成了NoSQL的數(shù)據(jù)存儲體系會采取自己的獨特機制實現(xiàn)跨集群各節(jié)點的數(shù)據(jù)存儲任務(wù)。在這種情況下,此類體系能夠利用NoSQL數(shù)據(jù)庫的全部功能對數(shù)據(jù)進行存儲與檢索,而后利用Hadoop規(guī)劃同一集群當(dāng)中的數(shù)據(jù)分析作業(yè)。
此類方案中最為常見的當(dāng)數(shù)Cassandra、Riak或者MongoDB,而用戶則在積極探索將這兩種技術(shù)加以結(jié)合的最佳方式。作為MongoDB的主要支持廠商之一,10Gen公司建議用戶利用Hadoop進行離線分析,而MongoDB同時仍然能夠以實時方式統(tǒng)計來自Web的數(shù)據(jù)。上圖所示為連接器如何實現(xiàn)兩套體系之間的數(shù)據(jù)遷移。
Mahout
目前能夠幫助我們進行數(shù)據(jù)分析、分類以及篩選的算法多種多樣,而Mahout項目的設(shè)計目的正是為了將這些算法引入Hadoop集群當(dāng)中。大多數(shù)標準化算法,例如K-Means、Dirichelet、并行模式以及貝葉斯分類等,都能夠讓我們的數(shù)據(jù)同Hadoop類型的映射與規(guī)約機制進行協(xié)作。
上圖所示為一套篷聚類集群化算法,它選擇點與半徑來構(gòu)成圓圈、從而覆蓋整個點集合中的對應(yīng)部分。這只是眾多Hadoop內(nèi)置數(shù)據(jù)分析工具之一。
Mahout從屬于Apache項目并遵循Apache許可。
官方網(wǎng)站:mahout.apache.org
Lucene/Solr
這是目前惟一的一款用于檢索非結(jié)構(gòu)化文本大型塊的工具,它同時也是Hadoop的天生合作伙伴。由于利用Java編寫,Lucene能夠輕松與Hadoop展開協(xié)作,共同創(chuàng)建出一套用于分布式文本管理的大型工具。Lucene負責(zé)處理檢查任務(wù)、Hadoop則負責(zé)將查詢分布到整個集群當(dāng)中。
新的Lucene-Hadoop功能正迅速發(fā)展成為全新項目。以Katta為例,作為Lucene的衍生版本,它能自動對整個集群進行解析。Solr則提供集成度更高的動態(tài)集群化解決方案,能夠解析XML等標準化文件格式。上圖所示為Luke,一款用于Lucene瀏覽的圖形用戶界面。它現(xiàn)在還提供插件、用于對Hadoop集群進行瀏覽檢索。
Lucene及其多個衍生版本都屬于Apache項目的組成部分。
官方網(wǎng)站:www.apache.org
Avro
當(dāng)Hadoop作業(yè)需要進行數(shù)據(jù)共享時,我們完全可以使用任何一種數(shù)據(jù)庫加以實現(xiàn)。但Avro是一套序列化系統(tǒng),能夠利用一定模式將數(shù)據(jù)整理起來并加以理解。每一個數(shù)據(jù)包都附帶一種JSON數(shù)據(jù)結(jié)構(gòu),用于解釋數(shù)據(jù)的具體解析方式。這種數(shù)據(jù)頭會指定數(shù)據(jù)結(jié)構(gòu),從而避免我們在數(shù)據(jù)中編寫額外的標簽來對字段進行標記。如此一來,當(dāng)共享數(shù)據(jù)較為規(guī)律時,其體積將比傳統(tǒng)格式(例如XML或者JSON)更為緊湊。
上圖所示為針對某個文件的Avro處理模式,其中分為三種不同字段:姓名、最喜歡的數(shù)字與最喜歡的顏色。Avro同樣屬于Apache項目的組成部分,其代碼擁有Java、C++以及Python等多個語言版本。
官方網(wǎng)站:avro.apache.org
Oozie
將一項作業(yè)拆分成多個步驟能夠讓工作變得更為簡單。如果大家將自己的項目拆分成數(shù)個Hadoop作業(yè),那么Oozie能夠以正確的順序?qū)⑵浣M合起來并加以執(zhí)行。大家不需要插手堆棧調(diào)整,等待一個堆棧執(zhí)行結(jié)束后再啟動另一個。Oozie能夠按照DAG(即有向無環(huán)圖)的規(guī)范對工作流加以管理。(環(huán)圖相當(dāng)于無限循環(huán),對于計算機來說就像一種陷阱。)只需將DAG交給Oozie,我們就可以放心出去吃飯了。
上圖所示為來自O(shè)ozie說明文檔的一幅流程圖。Oozie代碼受到Apache許可的保護。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03