CentOS7搭建Hadoop集羣的詳細操作流程

CentOS7搭建Hadoop集羣的詳細操作流程

一、準備工作

若有hadoop-2.x.y.tar.gz.mds 這個文件建議也可下載,因爲該文件包含了檢驗值可用於檢查hadoop-2.x.y.tar.gz 的完整性,否則若文件發生了損壞或下載不完整,Hadoop 將無法正常運行。想驗證文件完整性,可在自行百度搜索,

PS:如果瀏覽器下載過慢,可複製下載鏈接到迅雷打開下載。
二、開始搭建虛擬機
前面準備工作完成後即可開始搭建虛擬機,進行hadoop集羣操作。

  • 下面爲三臺虛擬機的hostname和IP地址
hostname Ip地址
Master 192.168.100.10
Slave1 192.168.100.11
Slave2 192.168.100.12

以CentOS7爲主機,命名爲Master,複製兩臺虛擬機
找到虛擬機的目錄,直接複製兩臺虛擬機,命名爲Slave1,Slave2,並相應打開文件刪除
下面的文件
在這裏插入圖片描述

接着打開虛擬機->我的計算機->掃描虛擬機->選擇掃描位置瀏覽到剛纔複製的文件->確定完成後對虛擬機重新命名開啓即可。

網絡配置

1.VMware 網絡配置(使虛擬機上的各個節點能夠互聯,用同一個網段)

  • VMnet8(NAT模式)----子網IP設置爲:192.168.100.0----NAT設置:網關改爲192.168.100.2—確定----去掉使用DHCP選項
    在這裏插入圖片描述
    在這裏插入圖片描述
  • 開始菜單->運行->services.msc或從控制面板中找到“服務”一項打開如下圖所示,找到以vmware開頭的服務,確保都啓用
    在這裏插入圖片描述
  • 打開控制面板->系統和安全->網絡和 Internet->網絡和共享中心->更改適配器設置,啓用VMnet8
    在這裏插入圖片描述,再查看屬性,雙擊Intter協議版本4看IP地址與子網掩碼是否配好,若沒則進行相應配置。(注意IP地址與子網掩碼是於上面虛擬機配置相對應的)
    在這裏插入圖片描述
    2.CentOS網絡配置
    Master節點上修改網卡配置
vi /etc/sysconfig/network-scripts/ifcfg-ens33

#ens33爲自己本機上的網卡名

進入後先改

BOOTPROTO=static
ONBOOT=yes

後加

 IPADDR=192.168.100.10 #IP地址
 NETMASK=255.255.255.0 #子網掩碼
 GATEWAY=192.168.100.2 #網關地址
 DNS1=8.8.8.8         #DNS服務器地址

Slave1、2節點上修改網卡配置,基本和Master上的配置一樣,但Slaved1的IP地址改爲192.168.100.11,Slaved2的IP地址改爲192.168.100.12

在這裏插入圖片描述
點i進入編輯
退出編輯-> esc鍵 :x

重啓網卡
在Master節點和Slave1、2節點上重啓網卡

systemctl restart network

關閉掉Master和Slave1、2上的防火牆

systemctl stop firewalld.service   #停止firewall 
systemctl disable firewalld.service #禁止firewall開機啓動

修改主機名
CentOS7修改主機名:
hostnamectl set-hostname +主機名

hostnamectl set-hostname Master  
hostname  #查看一下
ls

如果是CentOS6修改主機名則用
vi /etc/sysconfig/network
Master上改主機名

vi /etc/sysconfig/network

修改HOSTNAME=Master

Slave1改主機名

vi /etc/sysconfig/network 

添加HOSTNAME=Slave1

Slave2改主機名

vi /etc/sysconfig/network 

添加HOSTNAME=Slave2

hosts修改域名:(三個節點上都配一遍)

vi /etc/hosts

修改內容爲

192.168.100.10 Master Master.cn 
192.168.100.11 Slave1 Slave1.cn
192.168.100.12 Slave2 Slave2.cn
#ip地址  hostname  域名 ,設置完之後可以用域名進行訪問

重新啓動一下

reboot

測試能不能跑通,實現節點間互聯

查看網絡配置是否成功

ifconfig	#顯示的網絡信息是否和我們配置的契合

Master上

ping baidu.com
ping 192.168.100.10
ping Slave1
ping Slave2

Slave1上

ping baidu.com
ping 192.168.100.11
ping Master
ping Slave2

Slave2同上進行相互ping
以上如果ping不通則說明你還有bug要修

yum 源配置
1.安裝wget

yum install -y wget

2.備份/etc/yum.repos.d/CentOS-Base.repo文件

cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.back

3.下載阿里雲的Centos-7.repo文件

wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

4.重新加載yum

yum clean all
yum makecache

若已經有默認的yum源可進行更換爲國內的阿里雲yum源,讓下載安裝及更新速度更快一些,替換很簡單,簡單記錄一下步驟。
1、備份

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
或
mv /etc/yum/repos.d/CentOS-Base.repo{,.date -I}

2.下載新的CentOS-Base.repo 到/etc/yum.repos.d/

wget -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
或
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3、添加EPEL

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

4、清理緩存並生成新的緩存

yum clean all
yum makecache

CentOS6上更換yum源,可點擊此次

jdk的安裝

Master上首先可用rz命令進行上傳jdk文件,若rz沒有,用 yum install lrzsz 進行下載,下載成功後在home目錄下rz進行上傳jdk文件,再ls查看一下文件即可查看jdk上傳成功
在這裏插入圖片描述
在這裏插入圖片描述
接着用

scp jdk-8u73-linux-x64.tar.gz Slave1.cn:/home 

上傳到Slave1

Slave1上

ls  #一下即可看到文件已上傳成功
mkdir -p /export/servers  #在home目錄下創建一個目錄
tar -zxvf jdk-8u73-linux-x64.tar.gz -C /export/servers/  #解壓到對應目錄 
cd  /export/servers  #進入目錄ls查看到文件已解壓安裝成功
ln -s jdk1.8.0_73 jdk  #對jdk1.8.0_73 創建快捷方式爲jdk
ls 
pwd  #看一下當前目錄

cd jdk
vi /etc/profile  #在jdk目錄下配置一下java的環境變量

添加

#java path configuration
export	JAVA_HOME=/export/servers/jdk   
export	PATH=$JAVA_HOME/bin:$PATH
export	CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  

在這裏插入圖片描述
#注意中間的空格爲tab鍵
:wq 保存退出

source /etc/profile  #讓配置生效
java -version       #看java是否安裝配置成功
chkconfig iptables off  #如果之前忘記關防火牆,可用此命令進行防火牆永久關閉

在這裏插入圖片描述

(Master、Slave2的jdk配置同上)

配置免密碼登錄
在Master上

cd ~
ssh-keygen -t rsa     #一直按回車
ssh localhost         t#這時候連接到本機是不需要密碼了
ssh-copy-id Slave1.cn  
ssh-copy-id Slave2.cn  #拷貝到Slave1、2上	

在Master上測試是否能無密碼ssh登錄到Slave1、2

ssh Slave1
ssh Slave2

這時已經不需要密碼登錄了
在這裏插入圖片描述
Hadoop的安裝

Mater上

cd /home
cd /export
mkdir software  #進入export下創建一個目錄放hadoop,然後ls可查看一下
cd software/
rz  #上傳hadoop文件到software目錄下
ls  #查看hadopp是否上傳成功
scp hadoop-2.6.1.tar.gz Slave1.cn:/export/software/  #先在Slave1創建好software再執行此命令,將hadoop包傳到Slave1

Slave1上

cd /export
mkdir software  #創建一個目錄放hadoop
cd software/
ls 
tar -zxvf hadoop-2.6.1.tar.gz -C /export/servers #解壓到servers目錄
cd /export
cd servers/
ls   #進入servers目錄查看解壓是否成功
ln -s hadoop-2.6.1 hadoop  #對hadoop-2.6.1 創建快捷方式爲hadoop
ls
vim /etc/profile  #配置hadoop的環境變量

添加

#hadoop configuration
export	HADOOP_HOME=/export/servers/hadoop
export	PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH  

#注意中間的空格爲tab鍵
在這裏插入圖片描述
退出

source /etc/profile #讓其配置生效
hadoop version #查看是否成功

在這裏插入圖片描述

(Master、Slave2的hadoop配置同上)

Master上修改配置文件進行集羣

mkdir data #進入export新建一個目錄放data,然後ls一下
cd data
mkdir -p hadoop/tmp #在data下新建一個放hadoop數據,然後ls一下

進入servers目錄下的hadoop

cd etc
cd hadoop/  #進入到etc的hadoop的配置文件
vim hadoop-env.sh  #進入修改一下JAVA_HOME的安裝目錄

在這裏插入圖片描述

vim mapred-env.sh  #同樣進入修改一下JAVA_HOME的安裝目錄

在這裏插入圖片描述

vim core-site.xml    #配置 core-site.xml 
#在<configuration>和</configuration>中間添加
<property>
		<name>hadoop.tmp.dir</name>
		<value>/export/data/hadoop/tmp</value>
	</property>
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://192.168.100.10:9000</value>
	</property>

在這裏插入圖片描述

#其中/export/data/hadoop/tmp是之前是建的放hadoop數據的地方
hdfs://192.168.100.10:9000 前面爲主機Master的IP地址,後面爲端口號,可以默認爲9000

vim yarn-site.xml  #配置yarn-sit.xml
#在<configuration>和</configuration>中間添加

<property>
<name>yarn.resourcemanager.hostname</name>
	 <value>192.168.100.10</value>
</property>
<property>
 	<name>yarn.nodemanager.aux-services</name>
 	<value>mapreduce_shuffle</value>
</property>

#其中192.168.100.10是爲主機Master的IP地址

在這裏插入圖片描述

vim hdfs-site.xml  #配置hdfs-site.xml 
#在<configuration>和</configuration>中間添加
<property>
<name>dfs.replication</name>
 		 <value>3</value>
  	</property>
 	 <property>
   		 <name>dfs.secondary.http.address</name>
  		 <value>192.168.100.10:50090</value>
 	</property>

#其中192.168.100.10是爲主機的IP地址,3爲機器的節點數
在這裏插入圖片描述

cp mapred-site.xml.template mapred-site.xml #複製一份 mapred-site.xml
vim mapred-site.xml  #配置mapred-site.xml
#在<configuration>和</configuration>中間添加
<property>
<name>mapreduce.framework.name</name>
 	 <value>yarn</value>
 		 </property>

在這裏插入圖片描述

vim slaves #配置slaves

修改
localhost—>Slave1.cn Slave2.cn
#lave1.cn Slave2.cn爲你要集羣的機器
在這裏插入圖片描述

master配置完分發到其他機器上,可以把master上的hadoop配置文件進行打包壓縮複製到slaves節點上,或者直接在slaves節點上各配置一遍,其中配置內容跟master的配置一模一樣(包括IP地址和端口號

#以上配置文件已完成

hdfs namenode -format #啓動前先格式化文件系統,之後無須格式化  

開啓集羣

start-dfs.sh   #啓動dfs
start-yarn.sh #啓動yarn
mr-jobhistory-daemon.sh start historyserver  #啓動腳本
jps   #可以查看各個節點所啓動的進程

正確的話,在 Master 節點上可以看到 NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer 進程;
在這裏插入圖片描述
在Slave1、2節點上可以看到DataNode 和 NodeManager進程;
在這裏插入圖片描述
在這裏插入圖片描述
以上集羣已搭建成功
關閉集羣也是在Master上關閉,按順序執行命令

stop-yarn.sh 
stop-dfs.sh 
mr-jobhistory-daemon.sh stop historyserver

注意:CentOS系統默認開啓了防火牆,在開啓 Hadoop 集羣之前,需要關閉集羣中每個節點的防火牆。有防火牆會導致 ping 得通但 telnet 端口不通,從而導致 DataNode 啓動了,但 Live datanodes 爲 0的情況。我們前面的操作中已經關閉防火牆了,如果防火牆沒關閉的請關閉再開啓集羣。
同時有事沒事不要隨便初始化NameNode,初始過一遍就歐了。

Ubuntu上搭建hadoop僞分佈式配置可看一下這裏

CentOS上搭建hadoop僞分佈式配置可看一下這裏

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