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
- <configuration>
- <property>
- <!-- HDFS資料冗餘度,預設3 -->
- <name>dfs.replication</name>
- <value>1</value>
- </property>
- <property>
- <!-- 是否開啟HDFS許可權檢查,預設true -->
- <name>dfs.permissions</name>
- <value>true</value>
- </property>
- </configuration>
引數說明:
(1)dfs.replication
配置資料的副本數。因為這裡是單機,所以副本數配置為1。
(2)dfs.permissions
配置HDFS的許可權檢查。預設是true,也就是開啟許可權檢查。可以不配置,這裡只是為了說明。
2、core-site.xml
- <configuration>
- <property>
- <!-- 配置NameNode地址 -->
- <name>fs.defaultFS</name>
- <value>hdfs://bigdata111:9000</value>
- </property>
- <property>
- <!-- 儲存HDFS臨時資料的目錄 -->
- <name>hadoop.tmp.dir</name>
- <value>/root/training/hadoop-2.7.3/tmp</value>
- </property>
- </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
- <configuration>
- <property>
- <name>mapreduce.framework.name</name>
- <value>yarn</value>
- </property>
- </configuration>
引數說明:
(1)mapreduce.framework.name
配置mapreduce程式執行的框架名稱:yarn。yarn是資源管理器框架。
4、yarn-site.xml
- <configuration>
- <property>
- <name>yarn.resourcemanager.hostname</name>
- <value>bigdata111</value>
- </property>
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce_shuffle</value>
- </property>
- </configuration>
引數說明:
(1)yarn.resourcemanager.hostname
配置yarn的主節點ResourceManager主機名
(2)yarn.nodemanager.aux-services
配置yarn的NodeManager執行MapReduce的方式
5、格式化HDFS
執行如下命令
hdfs namenode -format
格式化HDFS。格式化成功後,部分日誌如下:
- 18/08/18 19:10:19 INFO namenode.NameNode: STARTUP_MSG:
- /************************************************************
- STARTUP_MSG: Starting NameNode
- STARTUP_MSG: host = bigdata111/192.168.189.111
- STARTUP_MSG: args = [-format]
- STARTUP_MSG: version = 2.7.3
- de4719c1c8af91ccff; compiled by 'root' on 2016-08-18T01:41ZSTARTUP_MSG: java = 1.8.0_144
- ************************************************************/
- 18/08/18 19:10:19 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT]
- 18/08/18 19:10:19 INFO namenode.NameNode: createNameNode [-format]
- Formatting using clusterid: CID-64debde0-a2ea-4385-baf2-18e6b2d76c74
- 18/08/18 19:10:21 INFO namenode.FSNamesystem: No KeyProvider found.
- 18/08/18 19:10:21 INFO namenode.FSNamesystem: fsLock is fair:true
- 18/08/18 19:10:21 INFO blockmanagement.DatanodeManager: dfs.block.invalidate.limit=1000
- 18/08/18 19:10:21 INFO blockmanagement.DatanodeManager: dfs.namenode.datanode.registration.ip-hostn
- ame-check=true18/08/18 19:10:21 INFO blockmanagement.BlockManager: dfs.namenode.startup.delay.block.deletion.sec
- 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 19:10:2118/08/18 19:10:21 INFO util.GSet: Computing capacity for map BlocksMap
- 18/08/18 19:10:21 INFO util.GSet: VM type = 64-bit
- 18/08/18 19:10:21 INFO util.GSet: 2.0% max memory 966.7 MB = 19.3 MB
- 18/08/18 19:10:21 INFO util.GSet: capacity = 2^21 = 2097152 entries
- 18/08/18 19:10:21 INFO blockmanagement.BlockManager: dfs.block.access.token.enable=false
- 18/08/18 19:10:21 INFO blockmanagement.BlockManager: defaultReplication = 1
- 18/08/18 19:10:21 INFO blockmanagement.BlockManager: maxReplication = 512
- 18/08/18 19:10:21 INFO blockmanagement.BlockManager: minReplication = 1
- 18/08/18 19:10:21 INFO blockmanagement.BlockManager: maxReplicationStreams = 2
- 18/08/18 19:10:21 INFO blockmanagement.BlockManager: replicationRecheckInterval = 3000
- 18/08/18 19:10:21 INFO blockmanagement.BlockManager: encryptDataTransfer = false
- 18/08/18 19:10:21 INFO blockmanagement.BlockManager: maxNumBlocksToLog = 1000
- 18/08/18 19:10:21 INFO namenode.FSNamesystem: fsOwner = root (auth:SIMPLE)
- 18/08/18 19:10:21 INFO namenode.FSNamesystem: supergroup = supergroup
- 18/08/18 19:10:21 INFO namenode.FSNamesystem: isPermissionEnabled = true
- 18/08/18 19:10:21 INFO namenode.FSNamesystem: HA Enabled: false
- 18/08/18 19:10:21 INFO namenode.FSNamesystem: Append Enabled: true
- 18/08/18 19:10:21 INFO util.GSet: Computing capacity for map INodeMap
- 18/08/18 19:10:21 INFO util.GSet: VM type = 64-bit
- 18/08/18 19:10:21 INFO util.GSet: 1.0% max memory 966.7 MB = 9.7 MB
- 18/08/18 19:10:21 INFO util.GSet: capacity = 2^20 = 1048576 entries
- 18/08/18 19:10:21 INFO namenode.FSDirectory: ACLs enabled? false
- 18/08/18 19:10:21 INFO namenode.FSDirectory: XAttrs enabled? true
- 18/08/18 19:10:21 INFO namenode.FSDirectory: Maximum size of an xattr: 16384
- 18/08/18 19:10:21 INFO namenode.NameNode: Caching file names occuring more than 10 times
- 18/08/18 19:10:21 INFO util.GSet: Computing capacity for map cachedBlocks
- 18/08/18 19:10:21 INFO util.GSet: VM type = 64-bit
- 18/08/18 19:10:21 INFO util.GSet: 0.25% max memory 966.7 MB = 2.4 MB
- 18/08/18 19:10:21 INFO util.GSet: capacity = 2^18 = 262144 entries
- 18/08/18 19:10:21 INFO namenode.FSNamesystem: dfs.namenode.safemode.threshold-pct = 0.9990000128746
- 03318/08/18 19:10:21 INFO namenode.FSNamesystem: dfs.namenode.safemode.min.datanodes = 0
- 18/08/18 19:10:21 INFO namenode.FSNamesystem: dfs.namenode.safemode.extension = 30000
- 18/08/18 19:10:21 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.window.num.buckets = 10
- 18/08/18 19:10:21 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.num.users = 10
- 18/08/18 19:10:21 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.windows.minutes = 1,5,25
- 18/08/18 19:10:21 INFO namenode.FSNamesystem: Retry cache on namenode is enabled
- 18/08/18 19:10:21 INFO namenode.FSNamesystem: Retry cache will use 0.03 of total heap and retry cac
- he entry expiry time is 600000 millis18/08/18 19:10:21 INFO util.GSet: Computing capacity for map NameNodeRetryCache
- 18/08/18 19:10:21 INFO util.GSet: VM type = 64-bit
- 18/08/18 19:10:21 INFO util.GSet: 0.029999999329447746% max memory 966.7 MB = 297.0 KB
- 18/08/18 19:10:21 INFO util.GSet: capacity = 2^15 = 32768 entries
- 18/08/18 19:10:21 INFO namenode.FSImage: Allocated new BlockPoolId: BP-608361600-192.168.189.111-15
- 3459062172118/08/18 19:10:21 INFO common.Storage: Storage directory /root/training/hadoop-2.7.3/tmp/dfs/name h
- as been successfully formatted.18/08/18 19:10:21 INFO namenode.FSImageFormatProtobuf: Saving image file /root/training/hadoop-2.7.
- 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
- 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
- 18/08/18 19:10:22 INFO util.ExitUtil: Exiting with status 0
- 18/08/18 19:10:22 INFO namenode.NameNode: SHUTDOWN_MSG:
- /************************************************************
- SHUTDOWN_MSG: Shutting down NameNode at bigdata111/192.168.189.111
- ************************************************************/
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
- <configuration>
- <property>
- <!-- HDFS資料冗餘度,預設3 -->
- <name>dfs.replication</name>
- <value>2</value>
- </property>
- <property>
- <!-- 是否開啟HDFS許可權檢查,預設true -->
- <name>dfs.permissions</name>
- <value>true</value>
- </property>
- </configuration>
資料副本數配置為2。
(2)core-site.xml
- <configuration>
- <property>
- <!-- 配置NameNode地址 -->
- <name>fs.defaultFS</name>
- <value>hdfs://bigdata112:9000</value>
- </property>
- <property>
- <!-- 儲存HDFS臨時資料的目錄 -->
- <name>hadoop.tmp.dir</name>
- <value>/root/training/hadoop-2.7.3/tmp</value>
- </property>
- </configuration>
NameNode地址為bigdata112。
(3)yarn-site.xml
- <configuration>
- <property>
- <name>yarn.resourcemanager.hostname</name>
- <value>bigdata112</value>
- </property>
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce_shuffle</value>
- </property>
- </configuration>
ResourceManager節點主機名改為bigdata112。
(4)slaves
salvas配置檔案內容如下:
別忘了格式化HDFS。
4、其他節點配置
(1)遠端拷貝
將bigdata112的hadoop目錄遠端拷貝到bigdata113和bigdata114上,命令如下:
- scp -r hadoop-2.7.3/ [email protected]:/root/training
- 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 -
獨立模式、偽分佈模式、hbase和hadoop 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中Null與Undefined的區別 讀取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