運作環境:
系統:centos6.9
jdk:jdk1.8.0_201
搭建版本:
hadoop:hadoop-2.7.2
環境說明:
叢集環境至少需要 3 個節點(也就是 3 台伺服器裝置):1 個 Master,2 個 Slave,節點之間區域網路連接配接
1、首先需要分别将三台伺服器的opt目錄改為qiqi使用者的
chown -R qiqi: /opt/
2、在opt目錄下建立檔案夾 modules 和 檔案夾software,所有的安裝包放在software下面,解壓檔案放在modules下面
3、準備工作,安裝 JDK,在三台機器上配置 JDK 環境
tar -zvxf /opt/software/jdk-8u201-linux-x64.tar.gz -C /opt/modules/
4、配置環境變量(切換到root目錄下):vi /etc/profile
# set java
export JAVA_HOME=/opt/madules/jdk1.8.0_201
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
5、執行指令:source /etc/profile 使之配置環境生效
6、添加 Hosts 映射關系(三個節點都要添加):vi /etc/hosts 添加内容如下(ip位址加節點)
192.168.147.12 c1
192.168.147.13 c2
192.168.147.14 c3
7、修改節點與主機名:vi /etc/sysconfig/network
HOSTNAME=localhost.localdomain #修改 localhost.localdomain 為 c1 即HOSTNAME要對應的是主機名與節點名
8、設定叢集之間 SSH 無密碼登陸
CentOS 預設安裝了 ssh,如果沒有你需要先安裝 ssh 。叢集環境的使用必須通過 ssh 無密碼登陸來執行,本機登陸本機必須無密碼登陸,主機與從機之間必須可以雙向無密碼登陸,從機與從機之間無限制。
a、關閉selinux

b、防火牆
[root@c1 ~]# service iptables stop #關閉防火牆,(我的已關閉,是以下面沒顯示)
[root@c1 ~]# chkconfig iptables off #永久關閉防火牆
[root@c1 ~]# service iptables status #檢視防火牆狀态
iptables: Firewall is not running. # 防火牆已關閉
c、配置ssh,配置ssh需要切換到普通使用者下,即qiqi
[qiqi@c1 ~]$ cd ~/.ssh/
[qiqi@c1 .ssh]$ ssh-keygen -t rsa #生成密匙,連續四次回車,我的已經生成,就不展示了
d、ssh複制給其他伺服器(包括自己)
ssh-copy-id c1 #在c1中操作(會有yes 和輸入密碼選項),修改節點,複制密匙
在前面配置的HOSTNAME和防護牆都需要重新開機生效!重新開機後進行下面的配置
9、将hadoop的安裝包解壓到modules 檔案夾下,将hadoop的安裝檔案夾重新命名為hadoop
tar -zvxf /opt/software/hadoop-2.7.2.tar.gz -C /opt/modules/
10、配置環境變量
#set hadoop
export HADOOP_HOME=/opt/madules/hadoop
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
11、執行指令:source /etc/profile 使之配置環境生效
12、修改hadoop配置檔案,會用到(Notepad)
配置完成點選關閉
輕按兩下/
13、配置檔案
a、在第一類配置檔案中修改JAVA_HOME
配置hadoop-env.sh
export JAVA_HOME=/opt/modules/jdk1.8.0_201
export HADOOP_HOME=/opt/modules/hadoop
配置mapred-env.sh
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
export JAVA_HOME=/opt/madules/jdk1.8.0_201
配置yarn-env.sh
export JAVA_HOME=/opt/madules/jdk1.8.0_201
b、需要修改的第二類檔案
slaves --->配置datanode
配置core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
#配置主節點
<value>hdfs://c1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
#啟動hadoop叢集時,存放初始化檔案,需要我們自己建立
<value>/opt/modules/hadoop/hadoop-qiqi</value>
</property>
</configuration>
在指令窗建立緩存目錄
hadoop fs -mkdir hadoop
配置hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>c1:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>c1:50090</value>
</property>
</configuration>
配置yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>c1</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>c1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>c1:19888</value>
</property>
</configuration>
14、将配置好的hadoop環境複制到其他節點的modules目錄下
scp -r hadoop/ qiqi@c2:/opt/modules/
scp -r hadoop/ qiqi@c3:/opt/modules/
15、配置完成,初始化叢集(切換到hadoop目錄下)
bin/hadoop namenode -format
16、啟動叢集
sbin/start-all.sh
17、輸入jps檢視程序
18、打開本地浏覽器輸入 c1:50070檢視hdfs檔案系統的頁面
19、本地浏覽器輸入 c1:8088檢視yarn資源管理頁面