目錄
架構(gòu)設(shè)計(jì):
一、下載hadoop安裝包
二、解壓及構(gòu)建軟連接
三、 修改配置文件
1. 配置workers文件 ? //hadoop02中叫slaves
2. 修改hadoop-env.sh ? ? ? ??
3. 修改core-site.xml ? ?
4. 修改hdfs-site.xml
5. 配置:mapred-site.xml文件 ?
6. 配置yarn-site.xml文件?
四、根據(jù)hdfs-site.xml的配置項(xiàng),準(zhǔn)備數(shù)據(jù)目錄
五、配置hadoop02和hadoop03
六、配置環(huán)境變量
七、 授權(quán)hadoop用戶
八、啟動(dòng)集群 ??
九、測試用例
十、關(guān)閉集群
十一、通過日志排查問題
架構(gòu)設(shè)計(jì):
一、下載hadoop安裝包
1.直接使用wget命令下載
cd /export/software ? ?//安裝包下載到這個(gè)目錄
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz
2.官網(wǎng)自行下載
Index of /dist/hadoop/common (apache.org)https://archive.apache.org/dist/hadoop/common/下載的安裝包統(tǒng)一放在/export/software目錄中。
可通過rz上傳到當(dāng)前目錄(需提前切換到/export/software),上傳速度是幾個(gè)MB/s。
也可通過FinalShell或xftp拖動(dòng)到目標(biāo)目錄(需提前切換到/export/software),速度是幾十個(gè)MB/s.很快的。
```
二、解壓及構(gòu)建軟連接
tar -zxvf hadoop-3.3.5.tar.gz -C /export/servers
cd /export/servers
ln -s hadoop-3.3.5 hadoop
# 不推薦用mv hadoop-3.3.5 hadoop修改目錄的名字
三、 修改配置文件
配置文件都在這個(gè)目錄下:/export/servers/hadoop/etc/hadoop
1. 配置workers文件 ? //hadoop02中叫slaves
cd /export/servers/hadoop/etc/hadoop
vim workers
#刪除localhost,填入如下內(nèi)容,表明Datanode是哪幾個(gè)
master
Hadoop02
Hadoop03
2. 修改hadoop-env.sh ? ? ? ??
vim hadoop-env.sh
# 在hadoop-env.sh的最上面插入以下所有內(nèi)容
# 配置Java安裝路徑
export JAVA_HOME=/export/servers/jdk
# 配置Hadoop安裝路徑
export HADOOP_HOME=/export/servers/hadoop
# Hadoop hdfs 配置文件路徑
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
# Hadoop YARN 配置文件路徑
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
# Hadoop YARN 日志文件夾
export YARN_LOG_DIR=$HADOOP_HOME/logs/yarn
# Hadoop hdfs 日志文件夾
export HADOOP_LOG_DIR=$HADOOP_HOME/logs/hdfs
# 為防止意外,root用戶默認(rèn)是不讓啟動(dòng)集群的。如下強(qiáng)制設(shè)置后root用戶可啟動(dòng)集群,其他用戶就不能啟動(dòng)集群了
#export HDFS_NAMENODE_USER=root
#export HDFS_DATANODE_USER=root
#export HDFS_SECONDARYNAMENODE_USER=root
#export YARN_RESOURCEMANAGER_USER=root
#export YARN_NODENANAGER_USER=root
#export YARN_PROXYSERVER_USER=root
```
3. 修改core-site.xml ? ?
vim core-site.xml
# 把<configuration> ?</configuration> 替換為以下內(nèi)容,粘貼后注意檢查<configuration>
<configuration>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>fs.defaultFS</name>
? ? ? ? ? ? ? ? <value>hdfs://master:8020</value>
? ? ? ? ? ? ? ? <description>HDFS文件系統(tǒng)的網(wǎng)絡(luò)通訊路徑,應(yīng)用協(xié)議為hdfs://,namenode為master,通訊端口為8020</description>
? ? ? ? </property>
? ? ? ??
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>io.file.buffer.size</name>
? ? ? ? ? ? ? ? <value>131072</value>
? ? ? ? ? ? ? ? <description>io操作文件緩沖區(qū)大小,128KB</description>
? ? ? ? </property>
? ? ? ? ? ? ? ??
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>hadoop.tmp.dir</name>
? ? ? ? ? ? ? ? <value>file:/export/servers/hadoop/tmp</value>
? ? ? ? ? ? ? ? <description>臨時(shí)目錄</description>
? ? ? ? </property>
</configuration>
```
4. 修改hdfs-site.xml
vim hdfs-site.xml
# 把<configuration> ?</configuration> 替換為以下內(nèi)容,粘貼后注意檢查<configuration>
<configuration>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>dfs.namenode.secondary.http-address</name>
? ? ? ? ? ? ? ? <value>hadoop02:50090</value>
? ? ? ? ? ? ? ? <description>SecondaryNamenode在Hadoop02上</description>
? ? ? ? </property>
? ? ? ??
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>dfs.replication</name>
? ? ? ? ? ? ? ? <value>3</value>
? ? ? ? ? ? ? ? <description>副本數(shù)量,默認(rèn)3</description>
? ? ? ? </property> ?
??
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>dfs.datanode.data.dir.perm</name>
? ? ? ? ? ? ? ? <value>755</value>
? ? ? ? ? ? ? ? <description>hdfs文件系統(tǒng)管理文件的權(quán)限,默認(rèn)755,即rwxr-xr-x所屬用戶擁有全部權(quán)限</description>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>dfs.namenode.name.dir</name>
? ? ? ? ? ? ? ? <value>/data/nn</value>
? ? ? ? ? ? ? ? <description>元數(shù)據(jù)的存儲(chǔ)位置,在master的/data/nn目錄下Path on the local filesystem where the Namenode stores the namespace and transactions logs persistently.</description>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>dfs.datanode.data.dir</name>
? ? ? ? ? ? ? ? <value>/data/dn</value>
? ? ? ? ? ? ? ? <description>數(shù)據(jù)存儲(chǔ)目錄,即數(shù)據(jù)存儲(chǔ)在master,hadoop02,hadoop03的/data/dn目錄中</description>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>dfs.namenode.hosts</name>
? ? ? ? ? ? ? ? <value>master,hadoop02,hadoop03</value>
? ? ? ? ? ? ? ? <description>NN允許加入集群的DN,master,hadoop02,hadoop03被允許加入。List of permitted DataNodes.</description>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>dfs.blocksize</name>
? ? ? ? ? ? ? ? <value>268435456</value>
? ? ? ? ? ? ? ? <description>hdfs默認(rèn)的塊大小,256MB</description>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>dfs.namenode.handler.count</name>
? ? ? ? ? ? ? ? <value>100</value>
? ? ? ? ? ? ? ? <description>NN處理的并發(fā)線程數(shù),以100個(gè)并行度處理文件系統(tǒng)的管理任務(wù)</description>
? ? ? ? </property>
</configuration>
5. 配置:mapred-site.xml文件 ?
vim mapred-site.xml
# 把<configuration> ?</configuration> 替換為以下內(nèi)容,粘貼后注意檢查<configuration>
<configuration>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>mapreduce.framework.name</name>
? ? ? ? ? ? ? ? <value>yarn</value>
? ? ? ? ? ? ? ? <description>資源管理調(diào)度用YARN</description>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>mapreduce.jobhistory.address</name>
? ? ? ? ? ? ? ? <value>master:10020</value>
? ? ? ? ? ? ? ? <description>HistoryServer在master上</description>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>mapreduce.jobhistory.webapp.address</name>
? ? ? ? ? ? ? ? <value>master:19888</value>
? ? ? ? ? ? ? ? <description></description>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>yarn.app.mapreduce.am.env</name>
? ? ? ? ? ? ? ? <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
? ? ? ? ? ? ? ? <description></description>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>mapreduce.map.env</name>
? ? ? ? ? ? ? ? <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
? ? ? ? ? ? ? ? <description></description>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>mapreduce.reduce.env</name>
? ? ? ? ? ? ? ? <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
? ? ? ? ? ? ? ? <description></description>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>mapreduce.jobhistory.intermediate-done-dir</name>
? ? ? ? ? ? ? ? <value>/data/mr-history/tmp</value>
? ? ? ? ? ? ? ? <description></description>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>mapreduce.jobhistory.done-dir</name>
? ? ? ? ? ? ? ? <value>/data/mr-history/done</value>
? ? ? ? ? ? ? ? <description></description>
? ? ? ? </property>
? ? ? ??
</configuration>
6. 配置yarn-site.xml文件?
vim yarn-site.xml
# 把<configuration> ?</configuration> 替換為以下內(nèi)容,粘貼后注意檢查<configuration>
<configuration>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>yarn.resourcemanager.hostname</name>
? ? ? ? ? ? ? ? <value>master</value>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>yarn.nodemanager.aux-services</name>
? ? ? ? ? ? ? ? <value>mapreduce_shuffle</value>
? ? ? ? </property>
</configuration>
四、根據(jù)hdfs-site.xml的配置項(xiàng),準(zhǔn)備數(shù)據(jù)目錄
- 在master節(jié)點(diǎn):
mkdir -p /data/nn ? ? ? ? ?//master的根目錄下的此目錄,用于存放元數(shù)據(jù)
mkdir -p /data/dn ? ? ? ? ?//master的根目錄下的此目錄,用于存放集群中的數(shù)據(jù),以block的方式存放
- 在hadoop02和hadoop03節(jié)點(diǎn):
mkdir -p /data/dn ? ? ? //hadoop02、03的根目錄下的此目錄,用于存放集群中的數(shù)據(jù),以block的方式存放
五、配置hadoop02和hadoop03
1. 在master上,切換到目錄/export/servers,把hadoop-3.3.5遠(yuǎn)程拷貝到hadoop02和hadoop03上
cd /export/servers
scp -r hadoop-3.3.5/ hadoop02:`pwd`/
scp -r hadoop-3.3.5/ hadoop03:$PWD/ ? ? ?//多學(xué)一招:后也可用`pwd`/
2. 在hadoop02和hadoop03上,構(gòu)建軟鏈接,完成配置
cd /export/servers
ln -s hadoop-3.3.5 hadoop
# 不推薦用mv hadoop-3.3.5 hadoop修改目錄的名字
六、配置環(huán)境變量
在三臺(tái)服務(wù)器(master、Hadoop02、Hadoop03)上執(zhí)行
vim /etc/profile
# 在底部追加如下2行內(nèi)容:
export HADOOP_HOME=/export/servers/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# 使環(huán)境變量生效
source /etc/profile
# 可用hadoop version查看到hadoop的版本號(hào)了
七、 授權(quán)hadoop用戶
生產(chǎn)中,通常是授權(quán)給普通用戶使用集群,假設(shè)普通用戶名和用戶組為hadoop:hadoop,在三臺(tái)服務(wù)器上,分別進(jìn)行授權(quán)如下授權(quán):
chown -R hadoop:hadoop /export // 把/export授權(quán)給hadoop用戶
chown -R hadoop:hadoop /data ? // 把/data授權(quán)給hadoop用戶
八、格式化namenode
# 在master上 ?以hadoop用戶操作
su - hadoop
hdfs namenode -format
# 倒數(shù)第10行附近看到:Storage directory /data/nn has been successfully formatted. 表明namenode格式化成功
#可查看到在/data/nn目錄下已經(jīng)有元數(shù)據(jù)了
cd /data/nn ? //可看到有current目錄
# 進(jìn)一步,可查看到current目錄下的元數(shù)據(jù)fsimage,后續(xù)用出現(xiàn)editlog
```
八、啟動(dòng)集群 ??
```
1. ?hadoop用戶在master上執(zhí)行
start-dfs.sh ? //啟動(dòng)HDFS,為防止意外,默認(rèn)是不讓用root啟動(dòng)集群的,強(qiáng)行設(shè)置后root用戶也可啟動(dòng)集群,詳見hadoop-env.sh最下面被注釋的部分
```
在master、hadoop02和hadoop03上,檢查hadoop進(jìn)程是否啟動(dòng)
```
jps
# 在master上可看到如下進(jìn)程
namenode
datanode
# 在hadoop02上可看到如下進(jìn)程
secondarynamenode
datanode
# 在hadoop03上可看到如下進(jìn)程
datanode
```
2. 在master上,啟動(dòng)YANR ? 并檢查進(jìn)程(jps)
start-yarn.sh ?//啟動(dòng)YANR
# 在master上可看到如下進(jìn)程
ResourceManager
NodeManager
# 在hadoop02上可看到如下進(jìn)程
NodeManager
# 在hadoop03上可看到如下進(jìn)程
NodeManager
```
3. 在master上,啟動(dòng)HistoryServer,并檢查是否啟動(dòng)
mapred --daemon start historyserver
# 在master上可看到如下進(jìn)程
JobHistoryServer
4. 集群的Web UI界面管理
在宿主機(jī)的瀏覽器地址欄輸入
master:8088 ? ? ? ?可查看Yarn的運(yùn)行情況
master:9870 ? ? ? ?可查看HDFS的運(yùn)行情況
九、測試用例
?測試hadoop能否正常使用
1.pi
# 切換目錄
cd /export/servers/hadoop/share/hadoop/mapreduce
# 執(zhí)行下述內(nèi)容,顯示結(jié)果Estimated value of Pi is 3.144000
hadoop jar hadoop-mapreduce-examples-3.3.5.jar pi 20 100
2. 詞頻統(tǒng)計(jì)wordcount
cd /export/data
vim words.txt ?//在本地/export/data創(chuàng)建文件words.txt,內(nèi)容為三行文本
Hadoop is the forerunner;
Spark is the famous star;
Flink is the future star;
#在集群上創(chuàng)建目錄/wordcount/input
hdfs dfs -mkdir -p /wordcount/input
# 把文件words.txt從本地上傳到集群的/wordcount/input目錄
hdfs dfs -put words.txt /wordcount/input ?
# 執(zhí)行下述命令,在集群上分析文件words.txt中各個(gè)單詞出現(xiàn)的次數(shù)
hadoop jar /export/servers/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.5.jar wordcount /wordcount/input/words.txt /wordcount/output
#系統(tǒng)自帶的MapReduce程序wordcount運(yùn)行后的結(jié)果保存在集群的/wordcount/output目錄中
# 執(zhí)行下述命令,在集群上察看分析結(jié)果
hdfs dfs -cat /wordcount/output/part-r-00000
# 結(jié)果如下:
Flink ? 1
Hadoop ?1
Spark ? 1
famous ?1
forerunner; ? ? 1
future ?1
is ? ? ?3
star; ? 2
the ? ? 3
#把分析結(jié)果文件下載到本地/export/data目錄中
hdfs dfs -get /wordcount/output/part-r-00000 /export/data
#在本地查看結(jié)果文件
vim part-r-00000
也可在集群的WEB UI中查看 (master:9870 )
十、關(guān)閉集群
stop-dfs.sh ? //關(guān)閉hdfs,之后用jps查看,Namenode和Datanode消失
stop-yarn.sh ? //關(guān)閉yarn,之后用jps查看,ResouceManager和NodeManager消失
mapred --daemon stop historyserver ? //關(guān)閉historyserver,之后用jps查看,Historyserver消失
?hadoop集群安裝完成,打好快照,為后續(xù)學(xué)習(xí)做好準(zhǔn)備文章來源:http://www.zghlxwxcb.cn/news/detail-803698.html
十一、通過日志排查問題
cd /export/servers/hadoop/logs
tail -10 a.log ?//查看日志文件a.log的后10行,通常能查出問題所在
?文章來源地址http://www.zghlxwxcb.cn/news/detail-803698.html
到了這里,關(guān)于基于Linux環(huán)境下搭建Hadoop3.3.5偽分布式集群的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!