1. 程式人生 > >Hadoop本地模式、偽分散式和全分散式叢集安裝與部署

Hadoop本地模式、偽分散式和全分散式叢集安裝與部署

                                        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-e2445db1a8.css">
                    <div class="htmledit_views">
            <h1><a name="t0"></a>一、準備</h1>

1、軟體版本如下:

(1)JDK1.8

jdk-8u144-linux-x64.tar.gz

(2)Hadoop

hadoop-2.7.3.tar.gz

(3)CentOS

CentOS-7-x86_64-Everything-1708.iso

安裝Hadoop叢集前,我們需要提前安裝三臺Linux伺服器,並在每個伺服器上都安裝和配置好JDK。

二、叢集規劃

        我們分別搭建三種模式的Hadoop叢集,各個模式的叢集具體劃分如下:

1、本地模式(Local Mode)







主機名 IP地址 Hadoop節點名稱
bigdata111 192.168.189.111

2、偽分散式(Pseudo-Distributed Mode)






主機名 IP地址 Hadoop節點名稱
bigdata111 192.168.189.111

NameNode / SecondaryNameNode / DataNode /

        <p>ResourceManager / NodeManager</p>
        </td>
    </tr></tbody></table><h2><a name="t8"></a>3、全分散式(Fully-Distributed Mode)</h2>












主機名 IP地址 Hadoop節點名稱
bigdata112 192.168.189.112 NameNode / SecondaryNameNode / ResourceManager
bigdata113 192.168.189.113 DataNode / NodeManager
bigdata114 192.168.189.114 DataNode / NodeManager

三、本地模式

        本地模式沒有HDFS,只能測試MapReduce程式,這裡程式處理的本地檔案系統的資料。

1、上傳檔案

         將hadoop-2.7.3.tar.gz檔案上傳至bigdata111伺服器的/root/tools下,如圖:

2、解壓檔案

在當前目錄,執行如下解壓命令

tar -zxvf hadoop-2.7.3.tar.gz -C ~/training/

將檔案解壓到/root/training/目錄下,如圖:

可以執行如下tree命令(需要單獨安裝tree-1.6.0-10.el7.x86_64.rpm)

tree -d -L 3 hadoop-2.7.3/

檢視hadoop的三層目錄,如下: 

3、配置環境變數

執行

vi ~/.bash_profile

 命令,開啟環境變數配置檔案,新增如下配置

儲存並退出檔案,再執行

source ~/.bash_profile

命令,使配置生效。在命令視窗敲入start,然後按Tab鍵,如果出現如下介面表示配置成功:

4、配置hadoop-env.sh

        進入Hadoop的配置檔案目錄,如下:

圖中是Hadoop的所有配置檔案。偽分散式只需要配置hadoop-env.sh,在該檔案中配置JDK安裝路徑,如下:

儲存退出檔案。

5、測試

(1)單詞計數

        Hadoop中為我們提供了一個單詞計數的MapReduce程式,詳細目錄如下:

(2)執行MapReduce程式

先在/root/input目錄下建立一個data.txt檔案,output目錄不能提前建立,然後在程式所在目錄執行如下命令:

hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount ~/input/data.txt ~/output/

 成功後,會在output目錄下生成兩個檔案,結果如下:

實際結果存在part-r-00000,_SUCCESS只是一個狀態檔案。

四、偽分散式

        在單機上執行,模擬分散式環境,具有Hadoop的主要功能。偽分散式是在本地模式的基礎之上安裝的。在本地模式基礎之上,再配置如下配置檔案即可。分別配置如下:

1、hdfs-site.xml

  1. <configuration>
  2. <property>
  3. <!-- HDFS資料冗餘度,預設3 -->
  4. <name>dfs.replication</name>
  5. <value>1</value>
  6. </property>
  7. <property>
  8. <!-- 是否開啟HDFS許可權檢查,預設true -->
  9. <name>dfs.permissions</name>
  10. <value>true</value>
  11. </property>
  12. </configuration>

引數說明:

(1)dfs.replication

       配置資料的副本數。因為這裡是單機,所以副本數配置為1。

(2)dfs.permissions

        配置HDFS的許可權檢查。預設是true,也就是開啟許可權檢查。可以不配置,這裡只是為了說明。

2、core-site.xml

  1. <configuration>
  2. <property>
  3. <!-- 配置NameNode地址 -->
  4. <name>fs.defaultFS</name>
  5. <value>hdfs://bigdata111:9000</value>
  6. </property>
  7. <property>
  8. <!-- 儲存HDFS臨時資料的目錄 -->
  9. <name>hadoop.tmp.dir</name>
  10. <value>/root/training/hadoop-2.7.3/tmp</value>
  11. </property>
  12. </configuration>

引數說明:

(1)fs.defaultFS

        配置NameNode的地址,通訊埠號是9000。bigdata111為主機名,也可以使用IP地址。

(2)hadoop.tmp.dir

        配置HDFS資料儲存目錄,預設是Linux系統的tmp目錄,而Linux系統tmp目錄重啟後會被刪除,所以這裡需要配置為本地系統的其他目錄。tmp目錄需要使用者自己建立,如圖:

3、mapred-site.xml

Hadoop配置檔案中預設沒有這個檔案,只提供了模板檔案mapred-site.xml.template,需要先複製一份,如下:

cp mapred-site.xml.template mapred-site.xml

  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. </configuration>

引數說明:

(1)mapreduce.framework.name

        配置mapreduce程式執行的框架名稱:yarn。yarn是資源管理器框架。

4、yarn-site.xml

  1. <configuration>
  2. <property>
  3. <name>yarn.resourcemanager.hostname</name>
  4. <value>bigdata111</value>
  5. </property>
  6. <property>
  7. <name>yarn.nodemanager.aux-services</name>
  8. <value>mapreduce_shuffle</value>
  9. </property>
  10. </configuration>

引數說明:

(1)yarn.resourcemanager.hostname

        配置yarn的主節點ResourceManager主機名

(2)yarn.nodemanager.aux-services

        配置yarn的NodeManager執行MapReduce的方式

5、格式化HDFS

執行如下命令

hdfs namenode -format

格式化HDFS。格式化成功後,部分日誌如下:

  1. 18/08/18 19:10:19 INFO namenode.NameNode: STARTUP_MSG:
  2. /************************************************************
  3. STARTUP_MSG: Starting NameNode
  4. STARTUP_MSG: host = bigdata111/192.168.189.111
  5. STARTUP_MSG: args = [-format]
  6. STARTUP_MSG: version = 2.7.3
  7. de4719c1c8af91ccff; compiled by 'root' on 2016-08-18T01:41ZSTARTUP_MSG: java = 1.8.0_144
  8. ************************************************************/
  9. 18/08/18 19:10:19 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT]
  10. 18/08/18 19:10:19 INFO namenode.NameNode: createNameNode [-format]
  11. Formatting using clusterid: CID-64debde0-a2ea-4385-baf2-18e6b2d76c74
  12. 18/08/18 19:10:21 INFO namenode.FSNamesystem: No KeyProvider found.
  13. 18/08/18 19:10:21 INFO namenode.FSNamesystem: fsLock is fair:true
  14. 18/08/18 19:10:21 INFO blockmanagement.DatanodeManager: dfs.block.invalidate.limit=1000
  15. 18/08/18 19:10:21 INFO blockmanagement.DatanodeManager: dfs.namenode.datanode.registration.ip-hostn
  16. ame-check=true18/08/18 19:10:21 INFO blockmanagement.BlockManager: dfs.namenode.startup.delay.block.deletion.sec
  17. is set to 000:00:00:00.00018/08/18 19:10:21 INFO blockmanagement.BlockManager: The block deletion will start around 2018 Aug
  18. 18 19:10:2118/08/18 19:10:21 INFO util.GSet: Computing capacity for map BlocksMap
  19. 18/08/18 19:10:21 INFO util.GSet: VM type = 64-bit
  20. 18/08/18 19:10:21 INFO util.GSet: 2.0% max memory 966.7 MB = 19.3 MB
  21. 18/08/18 19:10:21 INFO util.GSet: capacity = 2^21 = 2097152 entries
  22. 18/08/18 19:10:21 INFO blockmanagement.BlockManager: dfs.block.access.token.enable=false
  23. 18/08/18 19:10:21 INFO blockmanagement.BlockManager: defaultReplication = 1
  24. 18/08/18 19:10:21 INFO blockmanagement.BlockManager: maxReplication = 512
  25. 18/08/18 19:10:21 INFO blockmanagement.BlockManager: minReplication = 1
  26. 18/08/18 19:10:21 INFO blockmanagement.BlockManager: maxReplicationStreams = 2
  27. 18/08/18 19:10:21 INFO blockmanagement.BlockManager: replicationRecheckInterval = 3000
  28. 18/08/18 19:10:21 INFO blockmanagement.BlockManager: encryptDataTransfer = false
  29. 18/08/18 19:10:21 INFO blockmanagement.BlockManager: maxNumBlocksToLog = 1000
  30. 18/08/18 19:10:21 INFO namenode.FSNamesystem: fsOwner = root (auth:SIMPLE)
  31. 18/08/18 19:10:21 INFO namenode.FSNamesystem: supergroup = supergroup
  32. 18/08/18 19:10:21 INFO namenode.FSNamesystem: isPermissionEnabled = true
  33. 18/08/18 19:10:21 INFO namenode.FSNamesystem: HA Enabled: false
  34. 18/08/18 19:10:21 INFO namenode.FSNamesystem: Append Enabled: true
  35. 18/08/18 19:10:21 INFO util.GSet: Computing capacity for map INodeMap
  36. 18/08/18 19:10:21 INFO util.GSet: VM type = 64-bit
  37. 18/08/18 19:10:21 INFO util.GSet: 1.0% max memory 966.7 MB = 9.7 MB
  38. 18/08/18 19:10:21 INFO util.GSet: capacity = 2^20 = 1048576 entries
  39. 18/08/18 19:10:21 INFO namenode.FSDirectory: ACLs enabled? false
  40. 18/08/18 19:10:21 INFO namenode.FSDirectory: XAttrs enabled? true
  41. 18/08/18 19:10:21 INFO namenode.FSDirectory: Maximum size of an xattr: 16384
  42. 18/08/18 19:10:21 INFO namenode.NameNode: Caching file names occuring more than 10 times
  43. 18/08/18 19:10:21 INFO util.GSet: Computing capacity for map cachedBlocks
  44. 18/08/18 19:10:21 INFO util.GSet: VM type = 64-bit
  45. 18/08/18 19:10:21 INFO util.GSet: 0.25% max memory 966.7 MB = 2.4 MB
  46. 18/08/18 19:10:21 INFO util.GSet: capacity = 2^18 = 262144 entries
  47. 18/08/18 19:10:21 INFO namenode.FSNamesystem: dfs.namenode.safemode.threshold-pct = 0.9990000128746
  48. 03318/08/18 19:10:21 INFO namenode.FSNamesystem: dfs.namenode.safemode.min.datanodes = 0
  49. 18/08/18 19:10:21 INFO namenode.FSNamesystem: dfs.namenode.safemode.extension = 30000
  50. 18/08/18 19:10:21 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.window.num.buckets = 10
  51. 18/08/18 19:10:21 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.num.users = 10
  52. 18/08/18 19:10:21 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.windows.minutes = 1,5,25
  53. 18/08/18 19:10:21 INFO namenode.FSNamesystem: Retry cache on namenode is enabled
  54. 18/08/18 19:10:21 INFO namenode.FSNamesystem: Retry cache will use 0.03 of total heap and retry cac
  55. he entry expiry time is 600000 millis18/08/18 19:10:21 INFO util.GSet: Computing capacity for map NameNodeRetryCache
  56. 18/08/18 19:10:21 INFO util.GSet: VM type = 64-bit
  57. 18/08/18 19:10:21 INFO util.GSet: 0.029999999329447746% max memory 966.7 MB = 297.0 KB
  58. 18/08/18 19:10:21 INFO util.GSet: capacity = 2^15 = 32768 entries
  59. 18/08/18 19:10:21 INFO namenode.FSImage: Allocated new BlockPoolId: BP-608361600-192.168.189.111-15
  60. 3459062172118/08/18 19:10:21 INFO common.Storage: Storage directory /root/training/hadoop-2.7.3/tmp/dfs/name h
  61. as been successfully formatted.18/08/18 19:10:21 INFO namenode.FSImageFormatProtobuf: Saving image file /root/training/hadoop-2.7.
  62. 3/tmp/dfs/name/current/fsimage.ckpt_0000000000000000000 using no compression18/08/18 19:10:22 INFO namenode.FSImageFormatProtobuf: Image file /root/training/hadoop-2.7.3/tmp/d
  63. fs/name/current/fsimage.ckpt_0000000000000000000 of size 351 bytes saved in 0 seconds.18/08/18 19:10:22 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
  64. 18/08/18 19:10:22 INFO util.ExitUtil: Exiting with status 0
  65. 18/08/18 19:10:22 INFO namenode.NameNode: SHUTDOWN_MSG:
  66. /************************************************************
  67. SHUTDOWN_MSG: Shutting down NameNode at bigdata111/192.168.189.111
  68. ************************************************************/

tmp目錄生成的資料如下:

6、啟動叢集

(1)start-all.sh

        執行start-all.sh(這個命令已經過期,可以分別執行start-dfs.sh和start-yarn.sh命令)命令,正常啟動後如下:

Hadoop節點如下:

a、NameNode

b、DataNode

c、SecondaryNameNode

yarn節點如下:

a、ResourceManager

b、NodeManager

(2)UI

        在瀏覽器中輸入地址http://192.168.189.111:50070(SecondaryNameNode埠預設是50090),即可開啟Hadoop管理頁面,如圖:

開啟Utilities,檢視HDFS檔案系統管理頁面如下

五、全分散式

        真正的分散式環境,用於生產環境。

1、編輯hosts檔案

        執行vi /etc/hosts開啟主機名配置檔案,配置如下:

三臺伺服器都需要配置。

2、免密碼登入

(1)生成公鑰和私鑰

        三臺伺服器執行命令ssh-keygen -t rsa生成公鑰和私鑰,中間按Enter即可。

(2)拷貝私鑰

        將每臺機器的私鑰拷貝到其他機器(包括自己),例如在bigdata112上執行如下拷貝命令:

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

將私鑰拷貝給自己。

3、bigdata112配置

      按照偽分散式配置,不同的配置如下:

(1)hdfs-site.xml

  1. <configuration>
  2. <property>
  3. <!-- HDFS資料冗餘度,預設3 -->
  4. <name>dfs.replication</name>
  5. <value>2</value>
  6. </property>
  7. <property>
  8. <!-- 是否開啟HDFS許可權檢查,預設true -->
  9. <name>dfs.permissions</name>
  10. <value>true</value>
  11. </property>
  12. </configuration>

資料副本數配置為2。

(2)core-site.xml

  1. <configuration>
  2. <property>
  3. <!-- 配置NameNode地址 -->
  4. <name>fs.defaultFS</name>
  5. <value>hdfs://bigdata112:9000</value>
  6. </property>
  7. <property>
  8. <!-- 儲存HDFS臨時資料的目錄 -->
  9. <name>hadoop.tmp.dir</name>
  10. <value>/root/training/hadoop-2.7.3/tmp</value>
  11. </property>
  12. </configuration>

NameNode地址為bigdata112。

(3)yarn-site.xml

  1. <configuration>
  2. <property>
  3. <name>yarn.resourcemanager.hostname</name>
  4. <value>bigdata112</value>
  5. </property>
  6. <property>
  7. <name>yarn.nodemanager.aux-services</name>
  8. <value>mapreduce_shuffle</value>
  9. </property>
  10. </configuration>

ResourceManager節點主機名改為bigdata112。

(4)slaves

salvas配置檔案內容如下:

別忘了格式化HDFS。

4、其他節點配置

(1)遠端拷貝

        將bigdata112的hadoop目錄遠端拷貝到bigdata113和bigdata114上,命令如下:

  1. scp -r hadoop-2.7.3/ [email protected]:/root/training
  2. scp -r hadoop-2.7.3/ [email protected]:/root/training

5、測試

(1)start-all.sh

        在bigdata112上執行叢集啟動命令start-all.sh,如圖:

(2)UI

開啟Utilities,檢視HDFS檔案系統管理頁面如下

相關推薦

Hadoop本地模式分散式分散式叢集安裝部署

<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/

Hbase本地模式分佈模式分佈模式HA的搭建

一、搭建HBase本地模式   解壓:                                  &nb

hadoop 叢集安裝部署(大資料系列)

什麼是大資料 基本概念 《資料處理》 在網際網路技術發展到現今階段,大量日常、工作等事務產生的資料都已經資訊化,人類產生的資料量相比以前有了爆炸式的增長,以前的傳統的資料處理技術已經無法勝任,需求催生技術,一套用來處理海量資料的軟體工具應運而生,這就是大資料!

hadoop初識之三:搭建hadoop環境(配置HDFS,Yarn及mapreduce 執行在yarn)上及三種執行模式本地模式分散式分散式介)

--===============安裝jdk(解壓版)================== --root 使用者登入 --建立檔案層級目錄    /opt下分別 建 modules/softwares/datas/tools 資料夾 --檢視是否安裝jdk    rpm -

獨立模式分佈模式hbasehadoop HA(高可用)完全分散式模式。整合配置

一、獨立模式: 1.下載hbase檔案 略 2.tar開 略 3.配置環境變數 略 4.修改配置檔案 在hbase安裝目錄下: //配置jdk路徑 [/conf/hbase-env.sh] export JAVA_HOME=/zdq/jdk //配置hbas

hadoop-2.2.0分散式(分佈叢集安裝於配置續,很詳細的哦~)

         hadoop-2.2.0偽分散式與(全分佈叢集安裝於配置續) hadoop-2.2.0全分佈叢集安裝於配置點選開啟連結 一、偽分佈模式 1、前提說明 我這裡配置hadoop叢集均是在虛擬機器上配置的,使用的安裝環境說明如下:       (1) 宿主機wi

hadoop叢集搭建之分散式完全分散式

## Hadoop叢集搭建 一、軟體及環境準備 安裝JDK 查詢是否安裝jdk: rpm -qa |grep java 如果安裝版本小於1.7,解除安裝該版本 rpm -e 軟體包 將上傳好的jdk解壓並配置環境變數

javascript學習筆記(二):定義函數調用函數參數返回值局部局變量

兩個 cnblogs bsp 結果 value ava ase com 調用 定義函數、調用函數、參數、返回值 關鍵字function定義函數,格式如下: function 函數名(){ 函數體 } 調用函數、參數、返回值的規則和c語言規則類似。 1 <!DOC

前端後端棧到底不該學什麽

ajax兼容 fff 開發工程師 過程 技術人 技術開發 過時 socket 微信 1、前言在職業規劃咨詢過程中經常會被問到這樣的問題: 老師,我是該深入鉆研專精一門,走技術大牛路線,還是所有都要精通,做一個全棧工程師?類似問題的變種還有,老師我是不是該30歲最遲35歲就要

約束檢視序列索引

前言 約束條件用於保證資料的完整性。主要有主鍵約束(primary key)/非空約束(not null)、唯一約束(unique) 檢查約束(check)和外來鍵約束(foreign key). 正文 約束 主鍵約束(primary key) 主鍵約束

AMiner 新功能:技術趨勢分析—挖掘技術源頭近期熱度局熱度

不可 世紀 公式 前沿 Language gen 發出 決定 內容 技術趨勢分析的方法 技術趨勢分析描述了技術的出現、變遷和消亡的全過程,它可以幫助研究人員理解領域的研究歷史和現狀,快速識別研究的前沿熱點問題。學者運用統計分析、模型構建、AHP 等方法對技術發展路徑進行了

Hbase分散式完全分散式搭建步驟

hbase偽分散式以Linux檔案系統 儲存 使用自身、自帶ZooKeeper 1、基本環境    ip、網路、hosts列表、防火牆關閉... 2、安裝jdk   設定jdk環境變數 3、下載安裝包

分散式完全分散式的3個配置檔案的配置

執行的通用操作都是格式化+啟動 hdfs namenode -format start-dfs.sh 完全分散式 在node01節點(即NameNode節點)配置hadoop 修改hdfs-site.xml配置檔案 <property>

thinkphp5.0學習(四):入口檔案路由模式路由設定url生成

一、路由的作用 簡化URL地址,方便記憶 有利於搜尋引擎的優化 二、入口檔案 前後臺分離 在網站public目錄下(專案\public)新建admin.php 開啟admin.ph

內連線外連線連線的區別

舉例說明 假設您有兩個表,每個表只有一個列,表資料如下 A B - - 1 3 2 4 3 5 4 6 注意,(1,2)是A表唯一的,(3,4)是公共的,並且(5,6)是B表獨有的 內連線 內連線是A表的所有行交上B

【譯】DeepLab V2:基於深度卷積網孔洞演算法連線CRFs的語義影象分割

【譯】DeepLab:基於深度卷積網、孔洞演算法和全連線CRFs的語義影象分割 Author: Liang-Chieh Chen 摘要 在這項工作中有三個主要貢獻具有實質的實用價值: 第一,使用上取樣濾波器進行卷積,或者將“多孔 convolut

算法初級面試題08——遞歸動態規劃的精髓階乘漢諾塔子序列排列母牛問題逆序棧最小的路徑數組累加成指定整數背包問題

數據 先來 練習 過程 move sin nbsp add generate 第八課主要介紹遞歸和動態規劃 介紹遞歸和動態規劃 暴力遞歸: 1,把問題轉化為規模縮小了的同類問題的子問題 2,有明確的不需要繼續進行遞歸的條件(base case) 3,有當得到

指令操作指令巨集指令區別

//MACRO……MEND功能:標誌一下巨集的定義。格式:MACRO      Macro_prototype      MEND巨集表示式的格式如下:{$label}    macroname     {$ parameter{,parameter2}…}其中:$ label    引數,在巨集使用時,被給

前端後端棧到底不該學什麼

開發十年,就只剩下這套架構體系了! >>>   

淺談JS中的!=== !=====的用法區別 JS中NullUndefined的區別 讀取XML文件 獲取路徑的方式 C#中Cookie,Session,Application的用法區別? c#反射 抽象工廠

main 收集 data- 時間設置 oba ase pdo 簡單工廠模式 1.0 var num = 1; var str = ‘1‘; var test = 1; test == num //true 相同類型 相同值 te