您好,登錄后才能下訂單哦!
這篇文章主要介紹“Hadoop分布式有哪些優點”,在日常操作中,相信很多人在Hadoop分布式有哪些優點問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Hadoop分布式有哪些優點”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
一、什么是Hadoop分布式系統?
從命名名稱上看,首先可以認為他是一個工具,可能有人認為是廢話,但是這個理念對我來說很重要,因為他是我認真學習下去的一個重要的理由,既然是工具我相信就能把他掌握。
他是一個分布式基礎架構,由Apache基金會開發,他的產生由Google公司的三篇著名的論文而來,也是Google提出云計算概念的由來,大家有時間可以閱讀一下這三篇經典的論文。他是一種用戶在不必要分析底層的情況下,利用集群實現的一種處理高并發數據的計算和存儲的框架。他實現的功能就是讓用戶不必使用昂貴的服務器,利用平時的小型主機就可以完成海量數據的查詢與存儲的基礎框架。
二、Hadoop分布式有哪些優點?
1、高可靠性 :Hadoop 分布式具有很好的容錯機制,假設一臺機器出現故障他維護的副本機器會直接替換掉出現故障的機器,以保證系統的正常運行。
2、高擴展性 :Hadoop 可以利用計算機簇集成進行計算,可以很輕松的擴展到數千的計算機節點。
3、高效性 :Hadoop 充分利用其分布式集群的特點,將海量數據分塊處理,并細分給每一臺小型計算機進行計算,保證了他的高效率并行計算。
Hadoop 采用JAVA語言開發,所以跨平臺性非常好,等等還有很多優點,在這里就不和大家一一介紹了。
三、Hadoop 核心之—— MapReduce
MapReduce的工作原理大致分為如下幾個階段:
客戶端:提交MapReduce作業。
Jobtracker:協調作業程序。Jobtracker是一個Java程序,他的主類是JobTracker.
Tasktracker:運行作業分配后的任務,他也是一個Java應用程序,他的主類是TaskTracker.
分布式文件系統:一般為HDFS,用來實現實體間的共享作業文件。
1、作業提交
JobClient的RunJob()方法用于創建JobClient實例,并調用submitJob()方法的便捷方式,調用runJob()方法對作業進行輪詢,如果發現作業有變化,他自動將作業提交到控制臺。如果提交成功他會把作業計數提交到控制臺,如果失敗的話他會將錯誤記錄提交到控制臺。
2、作業初始化
當JobTracker通過調用其submitJob()得到作業后,會放進內部的作業隊列當中,交由作業調度器(job scheduler)進行調度,并對其進行初始化。初始化包括,創建一個正在運行的業務對象,任務和記錄,這樣就方便程序跟蹤任務的運行狀態和進程。
3、作業的分配
tasktarcker運行一個簡單的循環,定期發送‘心跳’給JobTracker,他會告訴JobTracker,tasktracker是否還活著,同時也充當兩者之間溝通的橋梁。
任務執行
tasktracker已經被分配了一個任務,下一步就是運行了,首先,他會通過共享文件系統把作業Jar文件復制到tasktracker所在的文件系統,從而實現作業的JAR文件的本地化,tasktracker,將應用程序,從分布式緩存復制到本地磁盤中并進行解壓,然后創建任務實例,并運行。
4、進度和狀態
MapReduce作業是常時間批量作業,運行時間從幾秒到幾小時甚至更長,這么長的時間用戶肯定需要掌握作業的進展情況,一個作業和他的每個任務都有一個狀態,包括作業或任務的狀態如:運行狀態,成功狀態,失敗狀態,map和reduce的進度,作業計數器的值,狀態消息,或描述等等。這些狀態都是隨著作業時間的改變而不斷變化。
5、作業完成
當JobTracker收到作業最后一個任務已經完成的通知后,便把作業狀態改為成功,然后JobClient查詢狀態時,便知道執行的任務已經執行成功了。于是JobClient端會打印給客戶消息告知客戶,然后從runJob()方法返回。
到此,關于“Hadoop分布式有哪些優點”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。