基礎篇:Hadoop元件與生態系統介紹
從2014年開始,大資料逐漸發展壯大起來。越來越多的公司開始使用大資料,包括日常事務管理及複雜業務方案探究。大資料已經很快地從一個被誇大的詞彙轉變成了一個可行的技術,無論業務規模是大還是小。
大資料,簡單來說就是存在於我們身邊的大量資料,如智慧終端、網路應用、社交媒體、聊天室、移動App、通訊記錄、支付歷史以及各種其他方式涉及到的資料。大資料技術對大量的資訊進行整合、儲存以及分析,資料量一般在PB級別。
這項技術已經完全改變了人們看待資料與資料庫的方式,也改變了人們使用資料的方式。在軍事方面,大資料主要用來預防損傷。在NBA,大資料主要用來捕捉並且分析一場比賽中數以百萬計的個人動作。健康產業將大資料應用於治療癌症與心臟病。
大資料正在改變這個世界。但,究竟在這之後存在著怎樣的軟體呢?是什麼使得大資料技術不斷髮展與執行呢?
答案揭曉,Hadoop。
很多人認為hadoop就是大資料,但它不是。在hadoop出現之前就已經存在大資料,而且即使沒有hadoop大資料也將繼續存在。然而,hadoop現在是大資料行業的寡頭。hadoop與大資料二者混用是有原因的——很多人都這樣用。你可以自己去找找看哪些大資料公司不使用 hadoop。
Hadoop究竟是什麼?
它是一個“軟體庫”,使用者可以通過它獲得處理大批資料的能力,即“使用簡單程式設計模型在計算機叢集上處理大量資料”。換句話說,它使公司有能力對大批資料進行彙總、儲存與分析。
另外,理解大資料很重要的一點在於它是一個“軟體庫”。大量的程式庫補充了Hadoop基本框架,給予各個公司所需的特定工具,以獲得期望的hadoop結果。
讓我們來看一下hadoop生態系統。相關資源及更多資訊參見hadoop網站。
Hadoop專案包含了各種模組——Hadoop通用庫、hadoop分散式檔案系統、Hadoop YARN 與Hadoop MapReduce。這些系統的整合,支撐了我們下面提到的其他hadoop專案,賦予了大資料處理實時自動任務排程和叢集資源管理能力。
其他專案提供了特定的服務,完善了整個 hadoop生態系統。
Apache Hive:“一個提供資料彙總與即席查詢的資料倉庫”。該系統是一個強大的查詢工具,並能僅實時的得到查詢結果。
Apache Spark: Apache Spark是一個通用計算引擎,能對大規模資料進行快速分析。Spark建立在HDFS之上,而不依賴於MapReduce,它使用了自己的資料處理框架。Apache Spark通常的使用場景,包括實時查詢、事件流處理、迭代計算、複雜操作與機器學習。
Apache Ambari: Ambari的目的在於幫助管理hadoop。它能夠為許多hadoop生態環境中的工具提供支援,包括Hive, HBase, Pig, Sqoop 與Zookeeper。該工具的特徵在於有一個控制面板,能夠跟蹤叢集健康狀態,幫助診斷效能問題。
Apache Pig: Pig是一個平臺工具,它支援一種處理大資料集的查詢語言。
Apache HBase: HBase是一個在HDFS之上執行的非關係型資料庫管理系統。建立HBase的目的在於處理大資料專案中的稀疏資料集。
其他常見的hadoop專案包括:Avro, Cassandra, Chukwa, Mahout與Zookeeper。
通過構建hadoop,使用者能夠獲得大量工具和資源,從而深度定製他們的大資料平臺,以適應自己的業務所需。