學(xué)習(xí)大數(shù)據(jù)的路上,肯定少不了Hadoop的陪伴。
在學(xué)習(xí)Hadoop之初,一件"痛苦"的事情莫過(guò)于裝環(huán)境,沒(méi)有環(huán)境,練不了HDFS命令,寫(xiě)不了MapReduce程序,后續(xù)的HBase、Hive無(wú)從下手。
為了學(xué)好Hadoop,于是下決心,一定把環(huán)境裝好,于是,跟著老師做,跟著網(wǎng)上學(xué),別人都順理成章、一氣呵成;而輪到自己時(shí),總在懷疑自己的眼睛、自己的手、自己的電腦、自己的…
- 軟件或者系統(tǒng)版本與老師不一致
- 沒(méi)有完全跟著老師做,比如老師用的用戶(hù)名是
user1
, 而你總想取自己的名字zhangsan
,結(jié)果在后面配置相應(yīng)的目錄時(shí)出錯(cuò)了 - 在安裝的過(guò)程中漏掉了某些細(xì)節(jié),比如老師隨手切換了目錄,而你還在原目錄中,糾結(jié)為什么
ls
出來(lái)的內(nèi)容與老師的不同… - 失誤導(dǎo)致的錯(cuò),比如在格式化HDFS時(shí),
hdfs namenode -format
,而你寫(xiě)的是hdfs namenode-format
,一個(gè)空格,敲出了兩種境界 - …
對(duì)初學(xué)者的建議:掌握整體過(guò)程及每一步的作用,按部就班的操作,仔仔細(xì)細(xì)的核對(duì)。
本教程按如下順序進(jìn)行:
【資源準(zhǔn)備】 => 【環(huán)境準(zhǔn)備】 => 【JDK的安裝】 => 【Hadoop的安裝】 => 【偽分布式的配置】 => 【啟動(dòng)與測(cè)試】 => 【常見(jiàn)錯(cuò)誤及解決辦法】
零、資源準(zhǔn)備
- 虛擬機(jī)相關(guān):
- vmware:vmware_177981.zip
- ubuntu18-desktop:ubuntu-18.04.5-desktop-amd64.iso
- Hadoop相關(guān)
- jdk1.8:jdk-8u261-linux-x64.tar.gz
- hadoop2.7.7:hadoop-2.7.7.tar.gz
- 輔助工具
- putty:putty.exe
- winscp:WinSCP-5.19.5-Portable.zip
鏈接:https://pan.baidu.com/s/1kjcuNNCY2FxYA5o7Z2tgkQ
提取碼:nuli
除了vmware(你懂的…),以上資源均來(lái)源于官網(wǎng),putty和winscp都是便捷式軟件,無(wú)需安裝
一、環(huán)境準(zhǔn)備
1. 安裝虛擬機(jī)
本教程使用vmware安裝ubuntu18.05系統(tǒng)
系統(tǒng)設(shè)置
CPU選擇2核心;內(nèi)存使用2-4G; 硬盤(pán)選擇50G以上,動(dòng)態(tài)分配
具體步驟可參考:
https://blog.csdn.net/tangyi2008/article/details/120311293
當(dāng)然你可以選用其他的虛擬機(jī),比如使用VBox作為虛擬機(jī)軟件,同樣,操作系統(tǒng)可以選CentOS等其他Linux系統(tǒng)。
如果是小白,建議嚴(yán)格按這里的步驟
2. 環(huán)境準(zhǔn)備
1) 創(chuàng)建新用戶(hù)xiaobai
為了避免不必要的麻煩,這里統(tǒng)一用戶(hù)名,創(chuàng)建一個(gè)新用戶(hù)xiaobai
。
創(chuàng)建用戶(hù)
sudo useradd -m xiaobai -s /bin/bash
使用sudo命令,需要需要輸入當(dāng)前用戶(hù)的登錄密碼才能創(chuàng)建;密碼輸入后如果沒(méi)任何提示,說(shuō)明創(chuàng)建成功
如果提示
useradd: user 'xiaobai' already exists
, 表明這個(gè)用戶(hù)名已經(jīng)存在
設(shè)置密碼
sudo passwd xiaobai
密碼盡量使用簡(jiǎn)單易記的,比如
123456
,畢竟我們只是在學(xué)習(xí),沒(méi)有多少機(jī)密文件值得你設(shè)置自己都記不清的密碼。設(shè)置密碼的時(shí)候,光標(biāo)不會(huì)跳(千萬(wàn)不要以為鍵盤(pán)壞了?)
當(dāng)你看到
password updated successfully
,表示密碼設(shè)置成功
為xiaobai增加管理員權(quán)限
為了方便部署,避免一些對(duì)新手來(lái)說(shuō)比較棘手的權(quán)限問(wèn)題,這里為xiaobai增加管理員權(quán)限
sudo adduser xiaobai sudo
當(dāng)然也可以修改文件/etc/sudoers(對(duì)于新手無(wú)需理會(huì))
切換到用戶(hù)xiaobai
su - xiaobai
su命令加參數(shù)
-
的目的是切換用戶(hù)的同時(shí),會(huì)切換到相應(yīng)用戶(hù)的Home目錄這里輸入的密碼是剛剛為xiaobai用戶(hù)設(shè)置的密碼
2) 安裝ssh-server
sudo apt install openssh-client openssh-server
這里使用了sudo命令,輸入的密碼是xiaobai用戶(hù)的密碼
3) 上傳相關(guān)資源
在Home目錄下創(chuàng)建soft目錄,使用winscp上傳jdk和hadoop到soft目錄
cd
mkdir soft
查看虛擬機(jī)ip
ip a
具體的ip地址以你命令輸出為準(zhǔn)。
創(chuàng)建連接
解壓WinSCP-5.19.5-Portable.zip,打開(kāi)WinSCP.exe,設(shè)置相應(yīng)的連接參數(shù),然后點(diǎn)Login
進(jìn)行連接。
上傳文件
將本地目錄(左邊)需要上傳的文件拖入虛機(jī)機(jī)相應(yīng)目錄。
[4)] 使用putty連接服務(wù)器
這一步不是必須的操作,使用putty主要是通過(guò)ssh連接虛擬機(jī),進(jìn)行遠(yuǎn)程操作而不需要進(jìn)入虛擬機(jī),相應(yīng)的替代品有Xshell、secureCRT等
打開(kāi)putty.exe,設(shè)置相應(yīng)的連接。
5)設(shè)置主機(jī)名
修改主機(jī)名為node1
sudo hostname node1
如果提示
[sudo] password for xiaobai:
,表示要執(zhí)行sudo
命令,需要輸入xiaobai的登錄密碼,后面出現(xiàn)類(lèi)似情況不再介紹
上面命令修改的主機(jī)名是臨時(shí)生效,當(dāng)虛擬機(jī)重啟會(huì)恢復(fù)成原來(lái)的主機(jī)名,這里修改配置文件使用其永久修改。打開(kāi)hostname文件, 配置hostname為node1。
sudo vi /etc/hostname
注意,對(duì)于小白,如果不想用vi命令,可以使用
sudo gedit /etc/hostname
打開(kāi)類(lèi)似windows上的記事本進(jìn)行文件的編輯,后面類(lèi)似情況自行處理。簡(jiǎn)單使用方式:進(jìn)入文件后,輸入字母
i
進(jìn)入插入模式 => 修改文件內(nèi)容為node1 => 按Esc
鍵進(jìn)入命令行模式 => 輸入:
進(jìn)入底行模式 => 輸入x
或者wq
保存推出。如果文件修改后不想保存,進(jìn)行底行模式后輸入
q!
進(jìn)行不保存退出。
打開(kāi)hosts文件配置hosts
sudo vi /etc/hosts
6)檢查和關(guān)閉防火墻
打開(kāi)終端,安裝防火墻管理工具。命令:
sudo apt install ufw
查看防火墻狀態(tài)。命令:
sudo ufw status
可以看出默認(rèn)為關(guān)閉
若未關(guān)閉,使用下面的命令進(jìn)行防火墻關(guān)閉
sudo ufw disable
7)設(shè)置免密登錄
生成密鑰對(duì)
ssh-keygen -t rsa
拷貝公鑰到主機(jī)
ssh-copy-id -i ~/.ssh/id_rsa.pub node1
測(cè)試免密登錄是否成功,
如果沒(méi)有提示輸入密碼,則免密登錄成功
ssh node1
二、安裝JDK
注意:在Home目錄(可以使用
~
表示Home目錄)下面,創(chuàng)建opt目錄,所有要安裝的軟件都放在這個(gè)目錄
將jdk上傳到~/soft
目錄,確保文件已經(jīng)上傳,輸入命令ls ~/soft
進(jìn)入驗(yàn)證
接下來(lái)解壓文件
mkdir ~/opt
tar -xvf ~/soft/jdk-8u261-linux-x64.tar.gz -C ~/opt
設(shè)置軟連接
cd ~/opt
ln -s jdk1.8.0_261/ jdk
配置環(huán)境變量,打開(kāi)bash配置文件
cd
vi .bashrc
按i
進(jìn)入插入模式,在末尾添加如下代碼,然后按esc
退出編輯,輸入:x
保存
export JAVA_HOME=/home/xiaobai/opt/jdk
export PATH=$PATH:$JAVA_HOME/bin
輸入以下命令使修改生效,可用java
命令驗(yàn)證配置是否成功
source .bashrc
java
三、安裝Hadoop
請(qǐng)確保前面已經(jīng)將hadoop的壓縮包上傳到了~/soft目錄,使用命令ls ~/soft
解壓文件
tar -xvf ~/soft/hadoop-2.7.7.tar.gz -C ~/opt
設(shè)置軟連接
cd ~/opt
ln -s hadoop-2.7.7/ hadoop
配置環(huán)境變量
使用命令vi ~/.bashrc
打開(kāi)配置文件,添加以下代碼到文件末尾,步驟與配置JDK環(huán)境變量相同
export HADOOP_HOME=/home/xiaobai/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
Hadoop目錄介紹
ls ~/opt/hadoop
Hadoop目錄簡(jiǎn)介:
- bin: 存放對(duì)Hadoop相關(guān)服務(wù)進(jìn)行操作的腳本,包括 hadoop, hdfs, …
- sbin: 存放啟動(dòng)和停止Hadoop相關(guān)服務(wù)的腳本,比如start-dfs.sh, start-yarn.sh, hadoop-daemon.sh, …
- etc: 配置文件的目錄
- share: 存放Hadoop的依賴(lài)jar包、文檔、和官方案例
- lib: 存放Hadoop的本地庫(kù)(對(duì)數(shù)據(jù)進(jìn)行壓縮解壓縮功能)
修改配置文件hadoop-env.sh
將JAVA_HOME的值改為jdk的絕對(duì)路徑/home/xiaobai/opt/jdk
vi ~/opt/hadoop/etc/hadoop/hadoop-env.sh
保存修改
驗(yàn)證Hadoop是否安裝成功
hadoop
四、配置Hadoop偽分布式
Hadoop主要有三種模式,一般在學(xué)習(xí)過(guò)程中使用偽分布模式基本就可以了
模式 | 概念 | 特點(diǎn) | 用途 |
---|---|---|---|
單機(jī)模式 | Hadoop默認(rèn)模式 | 1.沒(méi)有分布式文件系統(tǒng)HDFS 2.MapReduce處理的是本地Linux的文件數(shù)據(jù) | 一般僅用于本地MapReduce程序的調(diào)試 |
偽分布模式 | 是在單機(jī)上,模擬一個(gè)分布式的環(huán)境 | 具備Hadoop的主要功能 | 常用于調(diào)試程序 |
完全分布式模式 | 也叫集群模式,是將Hadoop運(yùn)行在機(jī)器上,各個(gè)機(jī)器按照相關(guān)配置運(yùn)行相應(yīng)的hadoop守護(hù)進(jìn)程 | 在多臺(tái)機(jī)器上運(yùn)行,是真正的分布式環(huán)境 | 常用于生產(chǎn) |
主要的配置文件
配置文件 | 配置內(nèi)容 |
---|---|
hadoop-env.sh | 配置與環(huán)境相關(guān)的參數(shù),比如JAVA_HOME目錄 |
core-site.xml | 配置Hadoop集群相關(guān)參數(shù) |
hdfs-site.xml | 配置HDFS相關(guān)參數(shù) |
mapred-site.xml | 配置MapReduce相關(guān)參數(shù) |
yarn-site.xml | 配置YARN相關(guān)參數(shù) |
slaves | 配置從節(jié)點(diǎn) |
在安裝的過(guò)程中,已經(jīng)配置了 hadoop-env.sh中的JAVA_HOME參數(shù),接下來(lái)分別配置其他5個(gè)配置文件
切換到配置文件目錄
cd ~/opt/hadoop/etc/hadoop
1. core-site.xml
配置項(xiàng) | 值 | 說(shuō)明 |
---|---|---|
fs.defaultFS | hdfs://<hostname>:9000 |
配置默認(rèn)的文件系統(tǒng),這里配置NameNode地址,9000是RPC通信端口 |
hadoop.tmp.dir | /home/<用戶(hù)名>/opt/hadoop/tmp |
其他臨時(shí)目錄的父目錄 |
打開(kāi)core-site.xml文件
vi core-site.xml
在configuration標(biāo)簽中加入以下代碼,保存
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/xiaobai/opt/hadoop/tmp</value>
</property>
注意:
上面的配置項(xiàng)要配置到
<configuration>
標(biāo)簽中,后面的配置項(xiàng)類(lèi)似hadoop.tmp.dir配置的目錄一定要是當(dāng)前用戶(hù)有控制權(quán)限的目錄
更多參數(shù)請(qǐng)參考官網(wǎng):https://hadoop.apache.org/docs/r2.7.7/hadoop-project-dist/hadoop-common/core-default.xml
2. hdfs-site.xml
配置項(xiàng) | 默認(rèn)值 | 說(shuō)明 |
---|---|---|
dfs.replication | 3 | 數(shù)據(jù)副本個(gè)數(shù),偽分布時(shí)設(shè)為1 |
dfs.namenode.name.dir | file://${hadoop.tmp.dir}/dfs/name |
namenode存著數(shù)據(jù)存放的本地目錄 |
dfs.datanode.data.dir | file://${hadoop.tmp.dir}/dfs/data |
datanode相關(guān)數(shù)據(jù)存放的本地目錄 |
打開(kāi)hdfs-site.xml文件
vi hdfs-site.xml
往configuration加入設(shè)置,保存
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/xiaobai/opt/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/xiaobai/opt/hadoop/tmp/dfs/data</value>
</property>
更多參數(shù)請(qǐng)參考官網(wǎng):https://hadoop.apache.org/docs/r2.7.7/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
3. mapred-site.xml
配置項(xiàng) | 默認(rèn)值 | 說(shuō)明 |
---|---|---|
mapreduce.framework.name | local | MapReduce的執(zhí)行模式,默認(rèn)是本地模式,另外可以設(shè)置成classic(采用MapReduce1.0模式運(yùn)行) 或 yarn(基于YARN框架運(yùn)行). |
mapreduce.job.ubertask.enable | false | 是否允許開(kāi)啟uber模式,當(dāng)開(kāi)啟后,小作業(yè)會(huì)在一個(gè)JVM上順序運(yùn)行,而不需要額外申請(qǐng)資源 |
默認(rèn)情況下沒(méi)有這個(gè)配置文件,可以根據(jù)樣本文件mapred-site.xml.template復(fù)制一份。
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
往configuration加入設(shè)置,保存
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>true</value>
</property>
更多參數(shù)請(qǐng)參考官網(wǎng):https://hadoop.apache.org/docs/r2.7.7/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml
4. yarn-site.xml
配置項(xiàng) | 默認(rèn)值 | 說(shuō)明 |
---|---|---|
yarn.resourcemanager.hostname | 0.0.0.0 | ResourceManager的主機(jī)名 |
yarn.nodemanager.aux-services | NodeManager上運(yùn)行的附屬服務(wù) | |
yarn.nodemanager.pmem-check-enabled | true | 是否將對(duì)容器強(qiáng)制執(zhí)行物理內(nèi)存限制 |
yarn.nodemanager.vmem-check-enabled | true | 是否將對(duì)容器強(qiáng)制執(zhí)行虛擬內(nèi)存限制 |
打開(kāi)yarn-site.xml文件
vi yarn-site.xml
往configuration加入設(shè)置,保存
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
更多參數(shù)請(qǐng)參考官網(wǎng):https://hadoop.apache.org/docs/r2.7.7/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
5. slaves
該文件配置從服務(wù)器的地址,一個(gè)服務(wù)器地址占一行。
打開(kāi)slaves
vi slaves
將默認(rèn)的localhost修改成node1
node1
五、啟動(dòng)與測(cè)試
1. 格式化
在第一次啟動(dòng)Hadoop時(shí),一定要記得對(duì)HDFS進(jìn)行格式化
hdfs namenode -format
2. 啟動(dòng)
start-all.sh
3. 查看進(jìn)程
jps
jps(Java Virtual Machine Process Status Tool)是java提供的一個(gè)顯示當(dāng)前所有java進(jìn)程pid的命令,適合在linux/unix平臺(tái)上簡(jiǎn)單察看當(dāng)前java進(jìn)程的一些簡(jiǎn)單情況。jps命令類(lèi)似于unix系統(tǒng)里的ps命令(主要是用來(lái)顯示當(dāng)前系統(tǒng)的進(jìn)程情況,有哪些進(jìn)程以及進(jìn)程id),它的作用是顯示當(dāng)前系統(tǒng)的java進(jìn)程情況及進(jìn)程id。
4. 通過(guò)web訪問(wèn)實(shí)驗(yàn)總結(jié)
在虛擬機(jī)中,使用瀏覽器打開(kāi)如下兩個(gè)網(wǎng)址,可以查看HDFS的NameNode和YARN的ResourceManager相關(guān)信息
node1:50070
node1:8088
5. 測(cè)試
使用hdfs命令上傳一個(gè)文件到HDFS文件系統(tǒng)
#切換到Home目錄
cd
#編輯一個(gè)本地文件,比如輸入:a b c a a a b
vi test.txt
#上傳到HDFS根目錄
hdfs dfs -put test.txt /
運(yùn)行mapreduce示例代碼,進(jìn)行詞頻統(tǒng)計(jì)
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /test.txt /output
查看運(yùn)行結(jié)果
#查看輸出目錄
hdfs dfs -ls /output
#查看輸出內(nèi)容
hdfs dfs -cat /output/part*
至此,表明你的Hadoop偽分布式搭建完成?。?!
如果有錯(cuò)誤,可以查看第六部分內(nèi)容:常見(jiàn)問(wèn)題及解決方案
6. Hadoop啟動(dòng)服務(wù)總結(jié)
在第2步中,我們啟動(dòng)Hadoop時(shí)使用的start-all.sh
, 在下面的提示信息中顯示 This script is Deprecated
,也就是說(shuō)這個(gè)啟動(dòng)腳本是被棄用的狀態(tài),并且建議我們Instead use start-dfs.sh and start-yarn.sh
下面就Hadoop的服務(wù)啟動(dòng)進(jìn)行簡(jiǎn)單的總結(jié):
1)整體啟動(dòng)和關(guān)閉
start-all.sh
stop-all.sh
2)各個(gè)服務(wù)組件逐一啟動(dòng)/停止
(1)分別啟動(dòng)/停止HDFS組件
hadoop-daemon.sh start / stop namenode / datanode / secondarynamenode
(2)啟動(dòng)/停止YARN
yarn-daemon.sh start / stop resourcemanager / nodemanager
3) 各個(gè)模塊分開(kāi)啟動(dòng)/停止
(1)整體啟動(dòng)/停止HDFS
start-dfs.sh
stop-dfs.sh
(2)整體啟動(dòng)/停止YARN
start-yarn.sh
stop-yarn.sh
六、常見(jiàn)錯(cuò)誤及解決辦法
1. 出現(xiàn)command not found錯(cuò)誤
1)檢查~/.bashrc文件中是否配置了正確的PATH
2)如果~/.bashrc設(shè)置正確,是否沒(méi)有執(zhí)行source ~/.bashrc
使環(huán)境變量生效
2. 所有命令都運(yùn)行不了
如果你發(fā)現(xiàn)不止安裝的程序命令,就連原系統(tǒng)的內(nèi)置命令都使用不了(比如ls
、vi
、cat
等),很明顯,你在修改.bashrc時(shí),將PATH路徑設(shè)置錯(cuò)了。最常見(jiàn)的是錯(cuò)誤就是在設(shè)置PATH時(shí),PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
,把$PATH:
漏掉了,這就相當(dāng)于現(xiàn)在的PATH路徑只有兩個(gè)值$HADOOP_HOME/bin
和$HADOOP_HOME/sbin
。
解決辦法:
1)恢復(fù)默認(rèn)的PATH路徑:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
2)修改~/.bashrc
文件,檢查設(shè)置PATH的地方是否漏掉了$PATH:
3. 不小心多次格式化
多次格式化導(dǎo)致DataNode 與 NameNode namespaceID不一致,導(dǎo)致啟動(dòng)HDFS失敗,這里告訴最直接暴力的解決辦法, 清空$hadoop.tmp.dir這個(gè)目錄,以本文為例:
stop-all.sh
#本教程配置的hadoop.tmp.dir目錄為/home/xiaobai/opt/hadoop/tmp
rm -fr /home/xiaobai/opt/hadoop/tmp
4. NameNode啟動(dòng)不成功
1) NameNode沒(méi)有格式化
2) 環(huán)境變量配置錯(cuò)誤
3) Ip和hostname綁定失敗,需要通過(guò)ip a
查看ip地址,重新配置/etc/hosts文件,設(shè)置正確的ip和hostname
4)hostname含有特殊符號(hào)如.
(符號(hào)點(diǎn)),會(huì)被誤解析
5. 萬(wàn)能大法
一切的錯(cuò)誤,最好的解決辦法是查看日志
Hadoop的默認(rèn)日志文件目錄在$HADOOP_HOME/logs
, 比如在本教程中,在~/opt/hadoop/logs
這里列舉兩個(gè)示例:
1)提示Content is not allowed in prolog錯(cuò)誤
這個(gè)錯(cuò)誤比較明顯,顯示在core-site.xml文件的第18行第1列有一個(gè)字符不認(rèn)識(shí),使用命令vi
查看相應(yīng)配置,修改即可。注意,這里不建議使用gedit打開(kāi)文件查看,因?yàn)槿绻胁豢梢?jiàn)字符,gedit也看不見(jiàn),難以查錯(cuò)。
2)jps時(shí)查看進(jìn)程少啟動(dòng)了部分服務(wù),比如下面示例中發(fā)現(xiàn)沒(méi)有啟動(dòng)NodeManager
這種錯(cuò)誤最好最直接的方式是查看日志文件,而不是去Baidu,去Google,因?yàn)楦髯缘膯?wèn)題都不盡一致,必須找準(zhǔn)備病因,才能藥到病除。
進(jìn)入日志目錄
cd ~/opt/hadoop/logs
ls
NodeManager屬于YARN組件的服務(wù),在ls的結(jié)果中可以迅速找到相應(yīng)的日志文件yarn-xiaobai-nodemanager-node1.log
使用tail命令查看最后50行日志內(nèi)容:
tail -n 50 yarn-xiaobai-nodemanager-node1.log
錯(cuò)誤原因?yàn)椋篢he ServiceName: mapreduce-shuffle set in yarn.nodemanager.aux-services is invalid.The valid service name should only contain a-zA-Z0-9_ and can not start with numbers。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-406837.html
意思是說(shuō)服務(wù)名無(wú)效,只能由 a-zA-Z0-9_ 組成并且不能以數(shù)字開(kāi)始,錯(cuò)誤很明顯了,錯(cuò)誤原因是yarn-site.xml這個(gè)配置文件中配置了無(wú)效的服務(wù)名,打開(kāi)該配置文件,檢查并修改相應(yīng)配置項(xiàng)即可。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-406837.html
到了這里,關(guān)于Hadoop環(huán)境搭建及常見(jiàn)問(wèn)題解決(保姆級(jí)教程)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!