溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

菜鳥的Hadoop快速入門

發布時間:2020-07-31 12:43:16 來源:網絡 閱讀:233 作者:數瀾 欄目:大數據

一、相關概念

1、大數據

大數據是一門概念,也是一門技術,是以Hadoop為代表的大數據平臺框架上進行各種數據分析的技術。

大數據包括了以Hadoop和Spark為代表的基礎大數據框架,還包括實時數據處理,離線數據處理,數據分析,數據挖掘和用機器算法進行預測分析等技術。

2、Hadoop

Hadoop是一個開源的大數據框架,是一個分布式計算的解決方案。

Hadoop的兩個核心解決了數據存儲問題(HDFS分布式文件系統)和分布式計算問題(MapRe-duce)。

舉例1:用戶想要獲取某個路徑的數據,數據存放在很多的機器上,作為用戶不用考慮在哪臺機器上,HD-FS自動搞定。

舉例2:如果一個100p的文件,希望過濾出含有Hadoop字符串的行。這種場景下,HDFS分布式存儲,突破了服務器硬盤大小的限制,解決了單臺機器無法存儲大文件的問題,同時MapReduce分布式計算可以將大數據量的作業先分片計算,最后匯總輸出。

二、Hadoop特點

優點

1、支持超大文件。HDFS存儲的文件可以支持TB和PB級別的數據。

2、檢測和快速應對硬件故障。數據備份機制,NameNode通過心跳機制來檢測DataNode是否還存在。

3、高擴展性??山嬙诹畠r機上,實現線性(橫向)擴展,當集群增加新節點之后,NameNode也可以感知,將數據分發和備份到相應的節點上。

4、成熟的生態圈。借助開源的力量,圍繞Hadoop衍生的一些小工具。

缺點

1、不能做到低延遲。高數據吞吐量做了優化,犧牲了獲取數據的延遲。

2、不適合大量的小文件存儲。

3、文件修改效率低。HDFS適合一次寫入,多次讀取的場景。

三、HDFS介紹

1、HDFS框架分析

HDFS是Master和Slave的主從結構。主要由Name-Node、Secondary NameNode、DataNode構成。

菜鳥的Hadoop快速入門

NameNode

管理HDFS的名稱空間和數據塊映射信存儲元數據與文件到數據塊映射的地方。

如果NameNode掛掉了,文件就會無法重組,怎么辦?有哪些容錯機制?

Hadoop可以配置成HA即高可用集群,集群中有兩個NameNode節點,一臺active主節點,另一臺stan-dby備用節點,兩者數據時刻保持一致。當主節點不可用時,備用節點馬上自動切換,用戶感知不到,避免了NameNode的單點問題。

Secondary NameNode

輔助NameNode,分擔NameNode工作,緊急情況下可輔助恢復NameNode。

DataNode

Slave節點,實際存儲數據、執行數據塊的讀寫并匯報存儲信息給NameNode。

2、HDFS文件讀寫

文件按照數據塊的方式進行存儲在DataNode上,數據塊是抽象塊,作為存儲和傳輸單元,而并非整個文件。

菜鳥的Hadoop快速入門

文件為什么要按照塊來存儲呢?

首先屏蔽了文件的概念,簡化存儲系統的設計,比如100T的文件大于磁盤的存儲,需要把文件分成多個數據塊進而存儲到多個磁盤;為了保證數據的安全,需要備份的,而數據塊非常適用于數據的備份,進而提升數據的容錯能力和可用性。

數據塊大小設置如何考慮?

文件數據塊大小如果太小,一般的文件也就會被分成多個數據塊,那么在訪問的時候也就要訪問多個數據塊地址,這樣效率不高,同時也會對NameNode的內存消耗比較嚴重;數據塊設置得太大的話,對并行的支持就不太好了,同時系統如果重啟需要加載數據,數據塊越大,系統恢復就會越長。

3.2.1 HDFS文件讀流程

菜鳥的Hadoop快速入門
1、向NameNode通信查詢元數據(block所在的DataNode節點),找到文件塊所在的DataNode服務器。

2、挑選一臺DataNode(就近原則,然后隨機)服務器,請求建立socket流。

3、DataNode開始發送數據(從磁盤里面讀取數據放入流,以packet為單位來做校驗)。

4、客戶端已packet為單位接收,現在本地緩存,然后寫入目標文件,后面的block塊就相當于是append到前面的block塊最后合成最終需要的文件。

3.2.2 HDFS文件寫流程

菜鳥的Hadoop快速入門

1、向NameNode通信請求上傳文件,NameNode檢查目標文件是否已存在,父目錄是否存在。

2、NameNode返回確認可以上傳。

3、client會先對文件進行切分,比如一個block塊128m,文件有300m就會被切分成3個塊,一個128m、一個128m、一個44m。請求第一個block該傳輸到哪些DataNode服務器上。

4、NameNode返回DataNode的服務器。

5、client請求一臺DataNode上傳數據,第一個DataNode收到請求會繼續調用第二個DataNode,然后第二個調用第三個DataNode,將整個通道建立完成,逐級返回客戶端。

6、client開始往A上傳第一個block,當然在寫入的時候DataNode會進行數據校驗,第一臺DataNode收到后就會傳給第二臺,第二臺傳給第三臺。

7、當一個block傳輸完成之后,client再次請求NameNode上傳第二個block的服務器。

四、MapReduce介紹

1、概念

MapReduce是一種編程模型,是一種編程方法,是抽象的理論,采用了分而治之的思想。MapReduce框架的核心步驟主要分兩部分,分別是Map和Reduce。每個文件分片由單獨的機器去處理,這就是Map的方法,將各個機器計算的結果匯總并得到最終的結果,這就是Reduce的方法。

2、工作流程

向MapReduce框架提交一個計算作業時,它會首先把計算作業拆分成若干個Map任務,然后分配到不同的節點上去執行,每一個Map任務處理輸入數據中的一部分,當Map任務完成后,它會生成一些中間文件,這些中間文件將會作為Reduce任務的輸入數據。Reduce任務的主要目標就是把前面若干個Map的輸出匯總到一起并輸出。

菜鳥的Hadoop快速入門

3、運行MapReduce示例

運行Hadoop自帶的MapReduce經典示例Word-count,統計文本中出現的單詞及其次數。首先將任務提交到Hadoop框架上。

菜鳥的Hadoop快速入門

查看MapReduce運行結束后的輸出文件目錄及結果內容。
菜鳥的Hadoop快速入門

可以看到統計單詞出現的次數結果

菜鳥的Hadoop快速入門

五、Hadoop安裝

墻裂推薦:史上最詳細的Hadoop環境搭建(https://blog.csdn.net/hliq5399/article/details/78193113)

1、Hadoop部署模式

本地模式

偽分布式模式

完全分布式模式

以上部署模式區分的依據是NameNode、Data-Node、ResourceManager、NodeManager等模塊運行在幾個JVM進程、幾個機器上。

菜鳥的Hadoop快速入門

2、安裝步驟(以偽分布式模式為例)

學習Hadoop一般是在偽分布式模式下進行。這種模式是在一臺機器上各個進程上運行Hadoop的各個模塊,偽分布式的意思是雖然各個模塊是在各個進程上分開運行的,但是只是運行在一個操作系統上的,并不是真正的分布式。

5.2.1 JDK包下載、解壓安裝及JAVA環境變量配置

exportJAVA_HOME=/home/admin/apps/jdk1.8.0_151

exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

exportPATH=$JAVA_HOME/bin:$PATH

菜鳥的Hadoop快速入門

5.2.2 Hadoop包下載、解壓安裝及Hadoop環境變量配置

exportHADOOP_HOME="/zmq/modules/hadoop/hadoop-3.1.0"

exportPATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

菜鳥的Hadoop快速入門

5.2.3 配置Hadoop-env.sh、mapred-env.sh、yarn-env.sh 這個文件的JAVA_HOME參數

exportJAVA_HOME="/home/admin/apps/jdk1.8.0_151"

菜鳥的Hadoop快速入門
5.2.4 配置core-site.xml,配置的是HDFS的地址和Hadoop臨時目錄

菜鳥的Hadoop快速入門

5.2.5 配置hdfs-site.xml,設置HDFS存儲時的備份數量,這里是偽分布式部署,就填寫1
菜鳥的Hadoop快速入門

5.2.6 格式化HDFS,啟動NameNode、Data-Node、SecondaryNameNode,查看進程

菜鳥的Hadoop快速入門

5.2.7 搭建完成,操作HDFS(常用的新建目錄、上傳下載文件等),以及運行MapReduceJob

六、Hadoop更多

以上介紹的僅是對Hadoop的初步學習和使用,Ha-doop的HA完全分布式部署、Hadoop的資源調度YARN、Hadoop的高可用和容錯機制、Hadoop生態圈的其他組件等等還沒有去研究,感嘆Hadoop水很深,哈哈。

作者簡介:夢琴,兩年+測試經驗,當前主要負責內部平臺產品的測試及部分外部交付項目測試。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女