簡單理解Hadoop(Hadoop是什么、如何工作)

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

一、Hadoop主要的任務部署分為3個部分,分別是:Client機器,主節點和從節點。主節點主要負責Hadoop兩個關鍵功能模塊HDFS、Map Reduce的監督。當Job Tracker使用Map Reduce進行監控和調度數據的并行處理時,名稱節點則負責HDFS監視和調度。從節點負責了機器運行的絕大部分,擔當所有數據儲存和指令計算的苦差。每個從節點既扮演者數據節點的角色又沖當與他們主節點通信的守護進程。守護進程隸屬于Job Tracker,數據節點在歸屬于名稱節點。

?

二、Hadoop核心和特點

?

Hadoop的核心就是HDFS和MapReduce,而兩者只是理論基礎,不是具體可使用的高級應用。

HDFS的設計特點是:

1、大數據文件,非常適合上T級別的大文件或者一堆大數據文件的存儲,如果文件只有幾個G甚至更小就沒啥意思了。

2、文件分塊存儲,HDFS會將一個完整的大文件平均分塊存儲到不同計算器上,它的意義在于讀取文件時可以同時從多個主機取不同區塊的文件,多主機讀取比單主機讀取效率要高得多得都。

3、流式數據訪問,一次寫入多次讀寫,這種模式跟傳統文件不同,它不支持動態改變文件內容,而是要求讓文件一次寫入就不做變化,要變化也只能在文件末添加內容。

4、廉價硬件,HDFS可以應用在普通PC機上,這種機制能夠讓給一些公司用幾十臺廉價的計算機就可以撐起一個大數據集群。

5、硬件故障,HDFS認為所有計算機都可能會出問題,為了防止某個主機失效讀取不到該主機的塊文件,它將同一個文件塊副本分配到其它某幾個主機上,如果其中一臺主機失效,可以迅速找另一塊副本取文件。

?

HDFS的關鍵元素:

1)Block:將一個文件進行分塊,通常是64M。

2)NameNode:保存整個文件系統的目錄信息、文件信息及分塊信息,這是由唯一 一臺主機專門保存,當然這臺主機如果出錯,NameNode就失效了。在 Hadoop2.* 開始支持 activity-standy 模式----如果主 NameNode 失效,啟動備用主機運行 NameNode。

3)DataNode:分布在廉價的計算機上,用于存儲Block塊文件。

?

MapReduce:

我們要數圖書館中的所有書。你數1號書架,我數2號書架。這就是“Map”。我們人越多,數書就更快。

現在我們到一起,把所有人的統計數加在一起。這就是“Reduce”。

通俗說MapReduce是一套從海量源數據提取分析元素最后返回結果集的編程模型,將文件分布式存儲到硬盤是第一步,而從海量數據中提取分析我們需要的內容就是MapReduce做的事了。

? ? ? ? MapReduce的基本原理就是:將大的數據分析分成小塊逐個分析,最后再將提取出來的數據匯總分析,最終獲得我們想要的內容。當然怎么分塊分析,怎么做Reduce操作非常復雜,Hadoop已經提供了數據分析的實現,我們只需要編寫簡單的需求命令即可達成我們想要的數據。

Hadoop典型應用有:搜索、日志處理、推薦系統、數據分析、視頻圖像分析、數據保存等。

?

三、Hadoop的集群主要由 NameNode,DataNode,Secondary NameNode,JobTracker,TaskTracker組成。

如下圖所示:

1)NameNode:記錄了文件是如何被拆分成block以及這些block都存儲到了那些DateNode節點 .

2)NameNode:保存了文件系統運行的狀態信息 .

3)DataNode:存儲被拆分的blocks .

4)Secondary NameNode:幫助 NameNode 收集文件系統運行的狀態信息 .

5)JobTracker:當有任務提交到 Hadoop 集群的時候負責 Job 的運行,負責調度多個 TaskTracker .

6)TaskTracker:負責某一個 map 或者 reduce 任務 .

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451445.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451445.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451445.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JPA @Id 和 @GeneratedValue 注解詳解

Id: Id 標注用于聲明一個實體類的屬性映射為數據庫的主鍵列。該屬性通常置于屬性聲明語句之前,可與聲明語句同行,也可寫在單獨行上。 Id標注也可置于屬性的getter方法之前。 GeneratedValue: GeneratedValue 用于標注主鍵的生…

Factorials 階乘

Description N的階乘寫作N!表示小于等于N的所有正整數的乘積。階乘會很快的變大,如13!就必須用32位整數類型來存儲,70!即使用浮點數也存不下了。你的任務是找到階乘最后面的非零位。舉個例子,5!1*2*3*4*5120所以5!的最后面的非零位是2&#x…

硬件模塊設計思想

硬件模塊設計">模塊設計,顧名思義就是將各個不同的功能做成獨立的模塊。然后將各個模塊組合成不同的產品。 對于一個公司硬件模塊化設計,從設計之初,調試,到樣機及產品生產的過程應該是這樣: 1.     了解產品需求 2.     根據需求,選擇合適的處理…

java中的lastIndexOf( )函數是什么意思

int x a.lastIndexOf(b),表示b字符串在a字符串中最后出現的位置。如 a "abcdabcd";b"d";那么x的值為7.

2 分鐘讀懂大數據框架 Hadoop 和 Spark 的異同

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 談到大數據,相信大家對Hadoop和Apache Spark這兩個名字并不陌生。但我們往往對它們的理解只是提留在字面上,并沒有…

操作系統文件編程知識

文件的創建和讀寫 當我們需要打開一個文件進行讀寫操作的時候&#xff0c;我們可以使用系統調用函數open。使用完成以后我們調用另外一個close函數進行關閉操作。 該函數使用的頭文件如下&#xff1a; #include <fcntl.h> #include <unistd.h> #include <sys/ty…

論述HTML5平臺的若干重要特性

開發者已憑借網頁技術制作出創收豐厚的游戲作品許多年&#xff1a;《部落戰爭》憑借靜態網頁頁面大獲成功&#xff0c;《Farmville》憑借Flash開拓出新的疆域。但如今越來越多人覺得&#xff0c;未來HTML5將變成游戲的主要平臺。為什么HTML5如此頗具趣味&#xff0c;它是否真的…

多GPU使用詳解

目錄&#xff1a; 介紹 記錄設備狀態 手動分配狀態 允許GPU內存增長 在多GPU系統是使用單個GPU 使用多個 GPU 一、介紹 在一個典型的系統中&#xff0c;有多個計算設備。在 TensorFlow 中支持的設備類型包括 CPU 和 GPU。他們用字符串來表達&#xff0c;例如&#xff1a; “/cp…

圖片上傳的兩種方式

總的說圖片上傳有兩種方式&#xff0c;一種是把圖片文件寫到數據庫中&#xff0c;另一種是存到服務器文件目錄中。寫到數據庫中的圖片文件需要轉換成二進制流的格式&#xff0c;占用數據庫空間比較多&#xff0c;適合少量圖片的存儲&#xff0c;比如說&#xff0c;系統中某些小…

最好理解的: spring ioc原理講解,強烈推薦!

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 IOC&#xff08;DI&#xff09;&#xff1a;java程序中的每個業務邏輯至少需要兩個或以上的對象來協作完成。通常&#xff0c;每個對象在…

微信小程序 - 回到自己位置(map)

演示效果&#xff1a; 圖片資源 index.js 1 /** 2 * 回到自己位置&#xff0c;在cover-image上綁定點擊事件即可. 3 */ 4 clickcontrol(e) { 5 let mpCtx wx.createMapContext("map"); 6 mpCtx.moveToLocation(); 7 }, 轉載于:https://www.cnbl…

uwsgi搭配nginx

uwsgi搭配nginx可以做域名解析和負載均衡uWSGI&#xff0c;既不用wsgi協議也不用fcgi協議&#xff0c;而是自創了一個uwsgi的協議&#xff0c;據說該協議大約是fcgi協議的10倍那么快。uWSGI的主要特點如下&#xff1a;◆超快的性能。◆低內存占用&#xff08;實測為apache2的mo…

如何讓tomcat服務器運行在80端口,并且無需輸入項目名即可訪問項目()

這個問題最開始遇到的時候是半年前,自己買了個服務器玩,但是域名解析的時候出了問題,我查了查資料才知道騰訊云是默認解析到80端口,而且還改不了. 首先是修改tomcat運行端口號,默認是8080,但是我們可以通過修改配置文件更改, 打開conf/server.xml文件找到這個地方,: 將8080改為…

tailf、tail -f、tail -F三者區別

tail -f 等同于--followdescriptor&#xff0c;根據文件描述符進行追蹤&#xff0c;當文件改名或被刪除&#xff0c;追蹤停止 tail -F 等同于--followname --retry&#xff0c;根據文件名進行追蹤&#xff0c;并保持重試&#xff0c;即該文件被刪除或改名后&#xff…

使用圖形芯片加速電子自動化設計應用程序

以往EDA應用性能瓶頸主要受兩方面因素制約&#xff0c;首先大多數應用都是單線程的&#xff0c;而CPU和GPU架構擁有幾十到數千的并行內核&#xff0c;其次是應用程序內存延遲問題。目前EDA應用已經部署到傳統的常規處理器上。最重要的是這些應用促使人們設計出并行或向量處理器…

自我介紹的四個套路

四套路內容&#xff1a; 1、我是誰&#xff0c;叫什么名字&#xff0c;我從哪里來。 2、我因為什么機緣出現這個場合。 3、我能給大家帶來什么價值。 4、我希望能夠得到大家的什么幫助。 示例&#xff1a; 大家好&#xff0c;我叫XXX&#xff0c; 聽說今天會有幾個高人在場&…

加載樣式js

var MaskUtil (function(){ var $mask,$maskMsg; var defMsg 數據導出中&#xff0c;請稍待。。。; function init(){ if(!$mask){ $mask $("<div class\"datagrid-mask mymask\"></div>").appendTo("body"); } if(!$mask…

flush privileges

flush privileges 命令本質上的作用是將當前user和privilige表中的用戶信息/權限設置從mysql庫(MySQL數據庫的內置庫)中提取到內存里。MySQL用戶數據和權限有修改后&#xff0c;希望在"不重啟MySQL服務"的情況下直接生效&#xff0c;那么就需要執行這個命令。通常是在…

【Linux】Linux中常用操作命令

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 常用指令 ls   顯示文件或目錄 -l 列出文件詳細信息l(list) -a 列出當前目錄下所有文件及目錄&#xff0…

Mybatis的緩存機制Cache

Mybatis提供對緩存的支持&#xff0c;分為一級緩存和二級緩存&#xff0c;在沒有配置的情況下&#xff0c;系統默認會使用一級緩存。 一級緩存&#xff08;SqlSession級別&#xff09; 我們都知道每個SqlSession對象之間的緩存是互不影響的&#xff0c;當同一個SqlSession執行多…