Hadoop僞分佈式環境搭建

一.安裝虛擬機

VMware12、Centos7安裝,網上教程有很多,可參考
https://blog.csdn.net/sinat_35866463/article/details/77934186
網絡模式我選擇的是NAT

二.hadoop環境準備

1.準備
網絡配置

VMware頁面 → 編輯 → 虛擬網絡編輯 → VMnet8
選擇NAT模式,不要勾選使用本地DHCP服務將IP地址分配給虛擬機
可以點擊NAT設置看信息,要與下面的配置信息一致

使用root用戶登錄,新添加一個hadoop用戶

[root@localhost~]$useradd hadoop
[root@localhost~]$passwd hadoop
[root@localhost~]$chmod u+w /etc/sudoers
[root@localhost~]$vi /etc/sudoers  #在root ALL=(ALL)ALL下添加hadoop ALL=(ALL)ALL
[root@localhost~]$chmod u-w /etc/sudoers

2.配置靜態IP

設置IP

[root@localhost~]$vi /etc/sysconfig/network-scripts/ifcfg-ens33	  #修改此文件
#修改內容
BOOTPROTO=static #dhcp改爲static   
ONBOOT=yes   #開機啓用本配置  
IPADDR=192.168.120.128  #靜態IP  
GATEWAY=192.168.120.2 #默認網關  
NETMASK=255.255.255.0 #子網掩碼  
DNS1=114.114.114.114 #DNS 配置
NM_CONTROLLED=no
IPV6INIT=no

配置完重啓網絡服務service network restart,測試ping baidu.com,ping不通先繼續以下步驟

修改hostname

[root@localhost~]$vi /etc/hostname
#修改爲
master
[root@localhost~]$hostname		#輸出爲localhost
[root@localhost~]$hostname master   #修改成功		

修改默認網關配置

[root@localhost~]$vi /etc/sysconfig/network
#修改爲
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=master
GATEWAY=192.168.120.2 #默認網關

修改DNS

[root@localhost~]$vi /etc/resolv.conf
#修改爲
nameserver 114.114.114.114
[root@localhost~]$source /etc/resolv.conf      #出錯,提示no command nameserver,跳過

關閉防火牆

[root@localhost~]$systemctl stop firewalld.service    #停止firewall
[root@localhost~]$systemctl disable firewalld.service     #禁止firewall開機啓動

配置/etc/hosts

[root@localhost~]$vi /etc/hosts
#修改爲
127.0.0.1	localhost    #第一行配置不能丟掉,否則Hadoop啓動的時候會報錯
192.168.120.128  master   #主節點
192.168.120.129  slave1	   #從節點1
192.168.120.131  slave2    #從節點2

重啓網絡服務service network restart

3.xshell工具
xshell6下載地址
https://www.jb51.net/softs/595166.html
連接時發現無法連接,網上關於sshd、修改網絡模式配置的解決方法都不行
解決方法參考,後面驗證Hadoop平臺運行情況也需如此修改
https://www.cnblogs.com/liuyuxing/p/5010880.html

Xshell 6 連接時報錯 “The remote SSH server rejected X11 forwarding request.”
解決方法:

yum install xorg-x11-xauth -y
#然後重啓網絡服務

4.安裝JDK
下載離線JDK壓縮包,1.8版本,通過xshell中xftp工具上傳至虛擬機
http://www.oracle.com/technetwork/java/javase/downloads/index.html

然後解壓到自己設置的文件夾
tar -zxvf jdk-8u144-linux-x64.tar.gz -C /Java
配置環境變量

[root@localhost~]$vi /etc/profile
#添加以下內容
export JAVA_HOME=/Java/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

#然後
[root@localhost~]$source /etc/profile
[root@localhost~]$java -version  #查看是否安裝成功

5.克隆虛擬機
克隆兩臺虛擬機作爲slave1,slave2,並修改靜態IP、主機名,在VMware的NAT設置中添加這兩個IP轉發接口
測試一下網絡通不通,

ping baidu.com
ping master
ping slave1
ping slave2

6.ssh免密登錄

使用hadoop用戶登錄master

[hadoop@localhost~]$cd /home/hadoop
[hadoop@localhost~]$ssh-keygen -t rsa    #敲回車就行
[hadoop@localhost~]$cat /root/.ssh/id_dsa.pub >> /root/.ssh/authorized_keys  #導入公鑰

#先測試連接自己
[hadoop@localhost~]$ssh master
#如果提示要輸入密碼, 查看authorized_keys文件權限,
#如果是屬於其他用戶的, 需要修改該文件給其他用戶權限 
#執行命令 $chmod 644 .ssh/authorized_keys

在slave1和slave2中執行命令"mkdir /root/.ssh",在master節點執行如下操作:

scp /root/.ssh/authorized_keys  slave1:/home/hadoop/.ssh/
scp /root/.ssh/authorized_keys  slave2:/home/hadoop/.ssh/
#測試一下
ssh master
ssh slave1
ssh slave2
#第一次可能要輸密碼

三、安裝hadoop

hadoop2.6.5下載地址 http://mirrors.hust.edu.cn/apache/hadoop/common/

1.解壓到hadoop用戶下

tar -zxvf hadoop-2.6.5.tar.gz  -C /home/hadoop/

2.進入解壓目錄…/hadoop-2.6.5/etc/hadoop/目錄修改裏面的配置文件
①hadoop-env.sh和yarn-env.sh文件
修改Java環境變量,將其值改爲前面Java的安裝路徑

export JAVA_HOME=${JAVA_HOME}

②core-site.xml

mkdir -p /home/hadoop/tmp
#然後進行如下修改

在這裏插入圖片描述

③hdfs-site.xml
在這裏插入圖片描述

④mapred-site.xml
該文件是MapReduce的配置文件,由於Hadoop中不存在該文件,首先複製一個:

cp ./mapred-site.xml.template  ./hadoop/mapred-site.xml

然後將其修改爲下圖內容,指定由yarn作爲MapReduce的程序運行框架。如果沒有配置這項,那麼提交的程序只會運行在 locale 模式,而不是分佈式模式。
在這裏插入圖片描述

⑤yarn-site.xml
yarn-site.xml用來配置Yarn的一些信息。yarn.nodemanager.aux-services配置用戶自定義服務,例如MapReduce的shuffle。yarn.resourcemanager.address設置客戶端訪問的地址,客戶端通過該地址向RM提交應用程序,殺死應用程序等。yarn.resourcemanager. scheduler.adress設置ApplicationMaster的訪問地址,通過該地址向ResourceManager申請資源、釋放資源等。yarn.resourcemanager.resource-tracker.address設置NodeManager的訪問地址,通過該地址向ResourceManager彙報心跳,領取任務等。yarn.resourcemanager.admin.address設置管理員的訪問地址,通過該地址向ResourceManager發送管理命令等。yarn.resourcemanager.webapp.address設置對外ResourceManager Web訪問地址,用戶可通過該地址在瀏覽器中查看集羣各類信息。yarn-site.xml配置信息如圖
在這裏插入圖片描述

⑥創建文件slaves
touch /home/hadoop/hadoop-2.6.5/etc/hadoop/slaves

#添加如下內容
slave1
slave2

3.將hadoop文件發送給slave1和slave2

$scp -r hadoop-2.6.0/ slave1:/home/hadoop/hadoop-2.6.0
$scp -r hadoop-2.6.0/ slave2:/home/hadoop/hadoop-2.6.0

4.修改master、slave1、slave2的hadoop環境變量

vi /etc/profile
#添加以下內容
export HADOOP_HOME=/hadoop/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#然後source /etc/profile

四、測試

1.在master節點格式化namenode

hdfs namenode –format

若出現錯誤:java.io.IOException: Cannot create directory
在三個節點上先以root用戶登錄,然後

sudo chmod -R a+w /home/hadoop/tmp

2.maser節點啓動start-all.sh

start-dfs.sh
start-yarn.sh
#也可用start-all.sh

#停止服務如下
stop-dfs.sh
stop-yarn.sh
#也可用stop-all.sh

3.jps顯示信息
master節點輸入jps

$jps 
#顯示如下信息
5161 SecondaryNameNode 
5320 ResourceManager 
4989 NameNode

slave節點輸入jps

$jps 
#顯示如下信息
3586 NodeManager 
4765 DataNode

4.web頁面驗證
在瀏覽器中輸入地址http://127.0.0.1:50070檢查NameNode和DataNode是否啓動正常。這裏做了端口轉發,通過windows下127.0.0.1訪問,而不是直接訪問虛擬機ip,需要在NAT設置中添加
在瀏覽器中輸入地址http://127.0.0.1:18088檢查Yarn是否啓動正常

5在master節點運行Hadoop自帶的MapReduce例子驗證

 $cd /home/hadoop/hadoop-2.6.5/share/hadoop/mapreduce/
 $hadoop jar hadoop-mapreduce-examples-2.6.5.jar pi 10 10

若出現Warning: Permanently added ‘192.168.9.10‘ (RSA) to the list of known hosts.重新跑一遍

若出現hadoop運行mapreduce作業無法連接0.0.0.0/0.0.0.0:10020 Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
在mapred-site.xml配置文件中添加:

<property>  
        <name>mapreduce.jobhistory.address</name>  
        <value>master:10020</value>  
</property>

在master上啓動JobHistoryServer服務

$mr-jobhistory-daemon.sh start historyserver 

再次運行實例即可
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章