現如今,隨著雲端計算技術、物聯網技術的興起,企業需要應對的資料規模越來越大、資料格式越來越複雜、資料收集速度越來越快,也使得它和傳統意義的業務資料相比,有了明顯的特點。比如ApacheHadoop已成為大資料行業發展背後的驅動力。Hadoop帶來了廉價的處理大資料的能力,那麼,下面我們來分享一些關於Hadoop處理大資料工具及優勢吧。 1、MapReduce——Hadoop的核心 Google的網路搜尋引擎在得益於演算法發揮作用的同時,MapReduce在後臺發揮了極大的作用。MapReduce框架成為當今大資料處理背後的最具影響力的“發動機”。除了Hadoop,你還會在MapReduce上發現MPP(SybaseIQ推出了列示資料庫)和NoSQL(如Vertica和MongoDB)。 MapReduce的重要創新是當處理一個大資料集查詢時會將其任務分解並在執行的多個節點中處理。當資料量很大時就無法在一臺伺服器上解決問題,此時分散式計算優勢就體現出來。將這種技術與Linux伺服器結合可獲得價效比極高的替代大規模計算陣列的方法。Yahoo在2006年看到了Hadoop未來的潛力,並邀請Hadoop創始人DougCutting著手發展Hadoop技術,在2008年Hadoop已經形成一定的規模。Hadoop專案再從初期發展的成熟的過程中同時吸納了一些其他的元件,以便進一步提高自身的易用性和功能。 2、HDFS和MapReduce HDFS與MapReduce的結合是強大的。在處理大資料的過程中,當Hadoop叢集中的伺服器出現錯誤時,整個計算過程並不會終止。同時HFDS可保障在整個叢集中發生故障錯誤時的資料冗餘。當計算完成時將結果寫入HFDS的一個節點之中。HDFS對儲存的資料格式並無苛刻的要求,資料可以是非結構化或其它類別。相反關聯式資料庫在儲存資料之前需要將資料結構化並定義架構。 開發人員編寫程式碼責任是使資料有意義。HadoopMapReduce級的程式設計利用JavaAPIs,並可手動載入資料檔案到HDFS之中。 3、Pig和Hive Pig是一種程式語言,它簡化了Hadoop常見的工作任務。Pig可載入資料、表達轉換資料以及儲存最終結果。Pig內建的操作使得半結構化資料變得有意義(如日誌檔案)。同時Pig可擴充套件使用Java中新增的自定義資料型別並支援資料轉換。 Hive在Hadoop中扮演資料倉儲的角色。Hive新增資料的結構在HDFS,並允許使用類似於SQL語法進行資料查詢。與Pig一樣,Hive的核心功能是可擴充套件的。 Pig和Hive總是令人困惑的。Hive更適合於資料倉儲的任務,Hive主要用於靜態的結構以及需要經常分析的工作。Hive與SQL相似促使其成為Hadoop與其他BI工具結合的理想交集。Pig賦予開發人員在大資料集領域更多的靈活性,並允許開發簡潔的指令碼用於轉換資料流以便嵌入到較大的應用程式。Pig相比Hive相對輕量,它主要的優勢是相比於直接使用HadoopJavaAPIs可大幅削減程式碼量。正因為如此,Pig仍然是吸引大量的軟體開發人員。 4、改善資料訪問:HBase、Sqoop以及Flume Hadoop核心還是一套批處理系統,資料載入進HDFS、處理然後檢索。對於計算這或多或少有些倒退,但通常互動和隨機存取資料是有必要的。HBase作為面向列的資料庫執行在HDFS之上。HBase以GoogleBigTable為藍本。專案的目標就是快速在主機內數十億行資料中定位所需的資料並訪問它。HBase利用MapReduce來處理內部的海量資料。同時Hive和Pig都可以與HBase組合使用,Hive和Pig還為HBase提供了高層語言支援,使得在HBase上進行資料統計處理變的非常簡單。 但為了授權隨機儲存資料,HBase也做出了一些限制:例如Hive與HBase的效能比原生在HDFS之上的Hive要慢4-5倍。同時HBase大約可儲存PB級的資料,與之相比HDFS的容量限制達到30PB。HBase不適合用於ad-hoc分析,HBase更適合整合大資料作為大型應用的一部分,包括日誌、計算以及時間序列資料。 5、獲取資料與輸出資料 Sqoop和Flume可改進資料的互操作性和其餘部分。Sqoop功能主要是從關聯式資料庫匯入資料到Hadoop,並可直接匯入到HFDS或Hive。而Flume設計旨在直接將流資料或日誌資料匯入HDFS。 Hive具備的友好SQL查詢是與繁多資料庫的理想結合點,資料庫工具通過JDBC或ODBC資料庫驅動程式連線。 6、負責協調工作流程的ZooKeeper和Oozie 隨著越來越多的專案加入Hadoop大家庭併成為叢集系統運作的一部分,大資料處理系統需要負責協調工作的的成員。隨著計算節點的增多,叢集成員需要彼此同步並瞭解去哪裡訪問服務和如何配置,ZooKeeper正是為此而生的。而在Hadoop執行的任務有時候需要將多個Map/Reduce作業連線到一起,它們之間或許批次依賴。Oozie元件提供管理工作流程和依賴的功能,並無需開發人員編寫定製的解決方案。7、使用Hadoop 通常情況下,Hadoop應用於分散式環境。就像之前Linux的狀況一樣,廠商整合和測試ApacheHadoop生態系統的元件,並新增自己的工具和管理功能。
感興趣可以加Java架構師群獲取Java工程化、高效能及分散式、高效能、深入淺出。高架構。效能調優、Spring,MyBatis,Netty原始碼分析和大資料等多個知識點高階進階乾貨的直播免費學習許可權 都是大牛帶飛 讓你少走很多的彎路的 群..號是:855801563 對了 小白勿進 最好是有開發經驗
注:加群要求
1、具有工作經驗的,面對目前流行的技術不知從何下手,需要突破技術瓶頸的可以加。
2、在公司待久了,過得很安逸,但跳槽時面試碰壁。需要在短時間內進修、跳槽拿高薪的可以加。
3、如果沒有工作經驗,但基礎非常紮實,對java工作機制,常用設計思想,常用java開發框架掌握熟練的,可以加。
4、覺得自己很牛B,一般需求都能搞定。但是所學的知識點沒有系統化,很難在技術領域繼續突破的可以加。
5.阿里Java高階大牛直播講解知識點,分享知識,多年工作經驗的梳理和總結,帶著大家全面、科學地建立自己的技術體系和技術認知!