VM15.0,centos7
最小版安裝centos,不能上網。先配置網絡,設置:
BOOTPROTO="dhcp"
ONBOOT="yes"
然後service network restart重啓網絡,根據分配的ip,設置靜態ip
BOOTPROTO="static" # 手動分配ip
IPADDR=172.16.235.240 # 該網卡ip地址就是你要配置的固定IP,如果你要用xshell等工具連接,220這個網段最好和你自己的電腦網段一致,否則有可能用xshell連接失敗
GATEWAY="172.16.235.129" # 網關
NETMASK="255.255.255.224" # 子網掩碼
DNS1="172.16.6.208" # DNS,8.8.8.8爲Google提供的免費DNS服務器的IP地址
- 安裝資源準備:
1、8G內存以上的臺式機,安裝VM15.0,再安裝centos7,選擇最小安裝,先配置master,如下:
2、建好目錄:
mkdir /bdl /bdl/software /bdl/appData /bdl/software/hadoop /bdl/software/java8
-bdl
--software
---hadoop
–--java8
--appData
2、準備好安裝包:jdk-8u121-linux-x64.tar.gz、hadoop-2.6.4.tar.gz
- 安裝JDK1.8
- 解壓安裝包並更名:
cd /bdl/software/java8
tar -zxvf jdk-8u121-linux-x64.tar.gz
mv jdk1.8.0_121/ /bdl/jdk1.8
- 配置環境變量:
vim /etc/profile,最後一行添加一下內容:
export JAVA_HOME=/bdl/jdk1.8
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
使java環境變量生效:source /etc/profile
查看效果:java -version
三、搭建hadoop的主節點master1步驟:
1、設置主機名:hostnamectl set-hostname hadoop.m1
查看是否設置成功:hostname
2、配置IP主機名映射,vim /etc/hosts,添加如下內容:
172.16.235.138 hadoop.m1
172.16.235.139 hadoop.s1
172.16.235.140 hadoop.s2
- 解壓hadoop壓縮包,並移動更名:
cd /bdl/software/hadoop
tar -zxvf tar -zxvf hadoop-2.6.4.tar.gz
mv hadoop-2.6.4 /bdl/hadoop2.6.4
- 配置hadoop的環境變量,vim /etc/profile,添加如下內容:
export JAVA_HOME=/bdl/jdk1.8
export HADOOP_HOME=/bdl/hadoop2.6.4
export PATH=$JAVA_HOME/bin: $HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
然後source /etc/profile使環境變量生效
5、修改hadoop配置文件,在/bdl/hadoop2.6.4/etc/hadoop目錄下:
cd /bdl/hadoop2.6.4/etc/hadoop
- 修改hadoop-env.sh中的JAVA_HOME:
vim hadoop-env.sh
修改處:export JAVA_HOME=/bdl/jdk1.8
- 修改core-site.xml
vim core-site.xml
<configuration>標籤中添加如下內容:
<!-- 指定HADOOP所使用的文件系統schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop.m1:9000</value>
</property>
<!-- 指定hadoop運行時產生文件的存儲目錄 ,無需手動創建,會自動生成-->
<property>
<name>hadoop.tmp.dir</name>
<value>/bdl/appData/hadoop/tmp</value>
</property>
- 修改hdfs-site.xml
vim hdfs-site.xml
<configuration>標籤中添加如下內容:
<!-- 指定HDFS副本的數量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- 第二數據結點,可不配置 -->
<property>
<name>dfs.secondary.http.address</name>
<value>192.168.1.152:50090</value>
</property>
- 修改mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<configuration>標籤中添加如下內容:
<!-- 指定mr運行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
- 修改yarn-site.xml
vim yarn-site.xml
<configuration>標籤中添加如下內容:
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop.m1</value>
</property>
<!-- reducer獲取數據的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
6、格式化namenode(是對namenode進行初始化)
/bdl/hadoop2.6.4/bin/hdfs namenode -format
輸出如下提示表示namenode格式化成功
三、配置其他slaver節點(克隆虛擬機,選擇要克隆的虛擬機,右鍵,管理,克隆(先關閉虛擬機)
克隆完整,然後修改網絡配置)
1、如果是虛擬機需要變更IP和MAC地址(MAC地址重新生成,虛擬機界面)
2、修改主機名
hostnamectl set-hostname hadoop.s1
3、在主節點hadoop.m1上配置slaves文件,設置好datanode:
vim /bdl/hadoop2.6.4/etc/hadoop/slaves,然後添加如下節點
hadoop.s1
hadoop.s2
- 啓動hadoop驗證
啓動hdfs:
/usr/shuyechao/hadoop2.6.5/sbin/start-dfs.sh
啓動yarn:
/usr/shuyechao/hadoop2.6.5/sbin/start-yarn.sh
啓動過程中多次輸入連接密碼,啓動完成後jps查看各節點進程,另外需要注意關一下slaver的防火牆(system stop firewalld),不關的話主節點啓動從節點的datanode和nodemanager啓不起來。
防火牆:
查看防火牆狀態:firewall-cmd –state
停止防火牆:systemctl stop firewalld.service
禁止開機啓動:systemctl disable firewalld.service
Slave2,不關閉防火牆也可以通過master啓動salve2
master節點截圖:
slaver截圖:
- 配置master到slaver的免密登錄
- 在hadoop.m1上生成免登錄密鑰:
ssh-keygen -t rsa或ssh-keygen(執行後按四下回車鍵)
- 將密鑰複製到所有slaver和master自己(hadoop.m1、hadoop.s1、hadoop.s2):
ssh-copy-id hadoop.m1
ssh-copy-id hadoop.s1
ssh-copy-id hadoop.s2
然後驗證一下(/usr/shuyechao/hadoop2.6.5/sbin/start-all.sh),不用輸密碼了,啓動成功後訪問HDFS管理頁面http://主節點IP:50070(注意關閉防火牆或在防火牆增加訪問端口,否則訪問不了),hadoop任務的管理頁面http://主節點IP:8088
查看防火牆開啓的端口:firewall-cmd --list-port
開啓端口:firewall-cmd --zone=public --add-port=80/tcp –permanent
重啓防火牆:firewall-cmd –reload
如果遇到slave啓動不成功或者發現不了從節點,先刪除/bld/appdata/hadoop重新format一下即可。(也有可能是防火牆的問題)
成功後界面如下: