優于別人,并不高貴,真正的高貴應該是優于過去的自己
Hadoop完全分布式環境搭建
撰寫分發檔案腳本
應用場景如下:比如有三臺主機master1,slave1,slave2
如果簡歷完全分布式的集群就需要將檔案從master1拷貝到slave從機上
那么可以使用rsync命令分發單個檔案,也可以使用如下腳本分發檔案夾或者檔案
#!/bin/bash
#1 獲取輸入引數個數,如果沒有引數,直接退出
# $#代表獲得命令列引數個數
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
#2 獲取檔案名稱
# $1代表獲得命令列第一個引數
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 獲取上級目錄到絕對路徑
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 獲取當前用戶名稱
user=`whoami`
#5 rsync命令可以分發檔案到指定主機
# 這里slave就是從機的機名
for((host=1; host<3; host++))
do
echo ------------------- slave$host --------------
rsync -rvl $pdir/$fname $user@slave$host:$pdir
done
集群規劃
| hadoop102 | hadoop103 | hadoop104 | |
|---|---|---|---|
| HDFS | NameNodeDataNode | DataNode | SecondaryNameNode DataNode |
| YARN | NodeManager | ResourceManager NodeManager |
NodeManager |
配置集群
組態檔都在hadoop2.7.2/etc/hadoop下
配置core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:9000</value>
</property>
<!-- 指定Hadoop運行時產生檔案的存盤目錄 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
配置hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置hdfs-site.xml
<!-- 指定副本數量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定SecondaryNamenode主機配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:50090</value>
</property>
配置yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置yarn-site.xml
<!-- reducer獲取資料的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>
配置mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置mapred-site.xml
【需要拷貝mapred-site.xml.template 然后重命名即可】
<!-- 指定mr運行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
分發配置到集群中
# xsync就是剛剛撰寫的分發腳本
xsync /opt/module/hadoop-2.7.2/
集群格式化
# 這部分必須沒有報錯才行,不然就重來一篇,必須在hadoop根目錄下執行
hadoop namenode -format
集群啟動測驗
在主機hadooop102在sbin目錄下,運行start-dfs.sh啟動HDFS
在主機hadooop103在sbin目錄下,運行start-yarn.sh啟動yarn
然后使用jps查看行程即可

相關資料

本文配套GitHub:https://github.com/zhutiansama/FocusBigData
本文配套公眾號:FocusBigData
回復【大資料面經】【大資料面試經驗】【大資料學習路線圖】會有驚喜哦
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/156165.html
標籤:Java
下一篇:Java--MVC開發模式
