hadoop完全分布式搭建—跟著代碼步驟走一步到位
這篇文章是搭建hadoop完全分布式的一步到位程序,并沒有對于內容的太多的介紹,直接按步驟代碼走一步到位,
這篇文章是用以下兩篇文章結合起來的,
hadoop偽分布式搭建及其介紹
hadoop完全分布式詳細步驟
話不多說現在開始
首先要創建一個虛擬機然后將虛擬機打開
1.修改虛擬機IP地址和配置NAT模式,根據下面的命令和圖片中黑色框內容進行設定
IPADDR是本臺虛擬機的IP地址
vi /etc/sysconfig/network-scripts/ifcfg-ens33

IPADDR=192.173.10.100
NETMASK=255.255.255.0
PREFIX=24
GATEWAY=192.173.10.2
DNS1=192.193.10.2
HWADDR=00:0C:29:7E:A1:2A
2.設定修改HWADDR為正確的mac地址
點擊你的虛擬機右鍵打開設定

點擊網路配接器點擊高級

將vi /etc/sysconfig/network-scripts/ifcfg-ens33 中的HWADDR改為下面的mac地址

3 修改本機的IPV4
打開網路右鍵打開屬性

點擊更改配接器設定

雙擊打開IPv4進行設定

按照下圖進行設定,設定完畢確認即可

4.關閉防火墻和安全
setenforce 0
systemctl stop firewalld
5.重啟網路
systemctl restart network.service
用ifconfig查看一下剛才配置的ip地址是否正確
6. 連接Xshell(程序就不詳解,csdn一下就可以了)
7. 傳遞安裝包
然后進入root目錄,創建software檔案夾,再用xftp連接自己的電腦傳遞jdk和hadoop的安裝包到/root/software檔案夾里,
cd /root
mkdir software

命令 ll 查看一下有沒有

8.查看已安裝的jdk,如果有卸載掉
rpm -qa | grep jdk

將已安裝的jdk卸載了
rpm -e --nodeps jdk版本號
可以再使用上上條命令看看jdk是否卸載干凈
9. 安裝jdk
在剛才存放jdk軟體包的路徑下(/root/software)操作
解壓壓縮包
tar -zxvf jdk-8u281-linux-x64.tar.gz
ll命令查看是否解壓完畢

配置環境變數
vim /etc/profile
再最后面插入以下內容
export JAVA_HOME=/root/software/jdk1.8.0_281 # 配置Java的安裝目錄
export PATH=$PATH:$JAVA_HOME/bin # 在原PATH的基礎上加入JDK的bin目錄
讓環境變數生效
source /etc/profile
查看安裝版本,查得到就是安裝成功
java -version
10.安裝hadoop
在剛才存放jdk軟體包的路徑下(/root/software)操作
解壓壓縮包
tar -zxvf hadoop-2.8.2.tar.gz
ll命令查看是否解壓完畢

配置環境變數
vim /etc/profile
再最后面插入以下內容
# 配置Hadoop的安裝目錄
export HADOOP_HOME=/root/software/hadoop-2.8.2
# 在原PATH的基礎上加入Hadoop的bin和sbin目錄
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
讓環境變數生效
source /etc/profile
查看安裝版本,查得到就是安裝成功
hadoop version
11.接下來需要修改hadoop的組態檔,需要進入hadoop組態檔的存放地址
cd /root/software/hadoop-2.8.2/etc/hadoop
修改hadoop-env.sh
先使用下列方式得到JDK 的安裝目錄
echo $JAVA_HOME
vi hadoop-env.sh

配置配置core-site.xml
vi core-site.xml
將下面的內容插入到檔案里的 <configuration 和 /configuration>之間
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:8020</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/soft/tmp</value>
</property>
配置hdfs-site.xml
vi hdfs-site.xml
將下面的內容插入到檔案里的<configuration 和 /configuration>之間
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.block.size</name>
<value>134217728</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/soft/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/soft/data</value>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>file:///home/soft/cname</value>
</property>
<property>
<name>fs.checkpoint.edits.dir</name>
<value>file:///home/soft/cname</value>
</property>
<property>
<name>dfs.http.address</name>
<value>hadoop1:50070</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop2:50090</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
配置yarn-site.xml
vi yarn-site.xml
將下面的內容插入到檔案里的<configuration 和 /configuration>之間
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop1:8088</value>
</property>
配置slaves
vim slaves
寫入以下的內容
hadoop1
hadoop2
hadoop3
配置mapred-site.xml
創建一個名為mapred-site.xml的檔案
touch mapred-site.xml
將mapred-site.xml.template的內容寫入mapred-site.xml檔案內
cat mapred-site.xml.template >> mapred-site.xml
然后再配置mapred-site.xml
vi mapred-site.xml
將下面的內容插入到檔案里的<configuration 和 /configuration>之間
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<final>true</final>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop1:19888</value>
</property>
12. 克隆兩臺虛擬機
先將虛擬機關閉,右鍵虛擬機管理里面的克隆虛擬機




修改ip地址和HWADDR
vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改主機名\ 修改完后需要重啟虛擬機
vi /etc/sysconfig/network
HOSTNAME=hadoop2

重啟虛擬機
reboot
然后打開第三臺hadoop3虛擬機進行以上和hadoop2一樣的操作
13.接下來對三臺主機都進行主機映射配置
vi /etc/hosts
192.173.10.100 hadoop1
192.173.10.101 hadoop2
192.173.10.102 hadoop3

14.設定免密登陸
連接上三臺虛擬機的XShell,下面的1.2.3.三臺虛擬機都得一一完成,剩下按文字提示完成,
1.首先創建root底下的.ssh目錄
cd /root
mkdir .ssh
進入.ssh目錄
cd /root/.ssh cd /root/.ssh
2.然后生成一個密鑰(需要在三臺虛擬機中都執行此命令,生成密鑰)
(三次回車)
ssh-keygen -t rsa
3.然后創建authorized_keys檔案
touch authorized_keys
4.將id_rsa.pub的內容寫入authorized_keys檔案
cat id_rsa.pub >> authorized_keys
5.將authorized_keys傳到hadoop2的/root/.ssh下
scp authorized_keys hadoop2:/root/.ssh/
6.然后在hadoop2下將將id_rsa.pub的內容寫入authorized_keys檔案
cat id_rsa.pub >> authorized_keys
7.再將authorized_keys檔案傳到hadoop3的/root/.ssh下
scp authorized_keys hadoop3:/root/.ssh/
8.然后在hadoop3下將將id_rsa.pub的內容寫入authorized_keys檔案
cat id_rsa.pub >> authorized_keys
9.再將authorized_keys檔案傳到hadoop1和hadoop2的/root/.ssh下覆寫之前的authorized_keys檔案
scp authorized_keys hadoop1:/root/.ssh/
scp authorized_keys hadoop2:/root/.ssh/
10.在虛擬機上用ssh hadoop1或者ssh hadoop2或者ssh hadoop3進行測驗,如果不需要輸入密碼則免密設定成功
15接下來就可以進行格式化然后啟動集群
格式化(只有第一次啟動才會格式化)
hdfs namenode -format
啟動
start-all.sh
網頁驗證:
http:192.168.80.100:50070
http:192.168.80.100:8088
在虛擬機上分別運行一下jps,完全分布式搭建成功按下圖所示,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/297942.html
標籤:其他
上一篇:技術百科——中國宇翔技術作業站
