之前記錄了大資料開發環境的部署過程,下面就可以介紹大資料開發工具的一些工作機制和工作原理。今天首先介紹大資料開發中大家耳熟能詳的工具——hadoop。hadoop作為乙個最早開始流行的大資料開發工具,它能夠做些什麼呢?當然要看大資料開發需要幹什麼,簡單來講大資料主要做兩件事情,一是海量資料的儲存,二是海量資料的運算。那麼hadoop恰好就能夠做這兩件事情。為了能夠滿足以上兩種需求,hadoop的開發者設計以下幾個核心的元件:
hdfs:分布式檔案系統,實現將檔案分布式地儲存在多台物理分散的伺服器上;
mapreduce:分布式運算程式設計框架,實現多型機器上分布式平行計算;
yarn:分布式資源排程平台,幫助使用者排程大量的分布式運算程式,實現資源統一管理。(2.0版本以後加入)
本篇部落格將主要介紹hdfs的核心工作原理和機制。
hdfs組成:
namenode:負責記錄和管理元資料,通常有1個。
datanode: 負責儲存檔案,通常有多個。
首先,hdfs有著檔案系統共同的特徵:
1、有目錄結構,頂層目錄是: /。
2、系統中存放的就是檔案。
3、系統可以提供對檔案的:建立、刪除、修改、檢視、移動等功能。
但是,hdfs跟普通的單機檔案系統之間存在一些區別:
1、單機檔案系統中存放的檔案,是在一台機器的作業系統中。
2、hdfs的檔案系統會橫跨n多的機器。
3、單機檔案系統中存放的檔案,是在一台機器的磁碟上。
4、hdfs檔案系統中存放的檔案,是落在n多機器的本地單機檔案系統中(hdfs是乙個基於linux本地檔案系統之上的檔案系統)。
hdfs的工作機制:
1、客戶把乙個檔案存入hdfs,hdfs會把這個檔案切塊後,分散儲存在n臺linux機器系統中(負責儲存檔案塊的角色:datanode),切塊行為由客戶端決定。
2、一旦檔案被切塊儲存,那麼hdfs中就必須有乙個機制,來記錄使用者的每乙個檔案的切塊資訊,及每一塊的具體儲存機器(負責記錄塊資訊的角色是:namenode)。
3、為了保證資料的安全性,hdfs可以將每乙個檔案塊在集群中存放多個副本,副本的數量由客戶端指定。
綜述:乙個hdfs系統,由一台執行了namenode的伺服器,和n臺執行了datanode的伺服器組成!
在hdfs中,檔案分塊儲存在不同的datanode上,然而檔案的塊資訊(包括塊id,副本數量,儲存位置等)由namenode負責記錄和管理,這樣的塊資訊又叫做元資料。元資料的更新管理如圖所示。
大資料學習之路
大資料的學習之路,一直在到處學習零零閃閃的東西,但是從來麼有對自己學習的東西進行整理,以及後續做過的東西,一直找不到對應的東西,接下來會對自己的學習記錄下來,以及同類問題遇見的得以解決 4v特徵 volume 資料量大,pb級別 velocity 輸入和處理速度快 流式資料 value 價值密度低 ...
android開發之路3
intent intent new intent intent.action call,uri.parse tel textstr startactivity intent android minline 控制textview的顯示行數 1.狀態列通知 2.對話方塊通知 3.吐絲 toast sms...
大資料開發 常見問題(3)
q 在大資料開發套件 運維中心中檢視任務,顯示全部失敗?a 因為任務中配置了上游依賴,上游任務跑失敗了,導致下游任務無法繼續。q ads 支援 if ifnull 關鍵字嗎?a 不支援,您可以用 case when coalesce 代替,另外,若是含 group by的 sql 語句中必須有聚合函...