Centos 7下Hadoop分散式叢集搭建
一、關閉防火牆(直接用root使用者)
#關閉防火牆
sudo systemctl stop firewalld.service
#關閉開機啟動
sudo systemctl disable firewalld.service
二、修改每臺主機的Hostname(三臺主機都一樣)
vim /etc/hosts
註釋原有的內容,加入如下內容,ip地址為你自己的虛擬機器的IP地址:
more /etc/hosts檢視是否正確,需要重啟後方能生效。重啟命令reboot now
more /etc/hosts
reboot now
三、免密登陸
1.給3個機器生成金鑰檔案
由於Namenode會執行一系列指令碼去控制Datanode,因此需要設定SSH免金鑰登入,省去輸入密碼的麻煩。
ssh-keygen -t rsa -P ''
2.生成SSH KEY並將其拷貝到各個節點主機上
依次執行如下命令:
ssh-keygen ssh-copy-id Master-huyaqiong #免金鑰登入本機 ssh-copy-id Slave1-huyaqiong ssh-copy-id Slave2-huyaqiong
3.進行免密碼登陸測試
四、安裝JDK
1.下載JDK,
我下載的版本為:jdk-8u191-linux-x64.rpm
2.安裝
rpm -ivh jdk-8u191-linux-x64.rpm
3.配置環境變數
export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
4.使環境變數生效
執行如下命令:
source /etc/profile
5.選擇正確的JDK版本
為防止系統裡存在多個版本的JDK,需要使用alternatives選擇正確的版本:
alternatives --config java
請選擇/usr/java/jdk1.8.0_71/jre/bin/java對應的數字標號。
檢視java版本
Java -version
五 安裝hadoop
本步驟需要在每個節點下載和安裝hadoop,並做簡單的配置。
1.安裝Hadoop
tar zxvf hadoop-2.7.3.tar.gz -C /usr/hadoop --strip-components 1
2.配置環境變數
開啟~/.bashrc檔案,在檔案末新增如下內容:
export HADOOP_HOME=/usr/hadoop
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
3.使環境變數生效
source ~/.bashrc
六. 配置hadoop
1.首先登陸到Master節點
2.建立Datanode檔案目錄
mkdir ~/datanode
# 遠端到Datanode節點建立對應的目錄
ssh Slave1-huyaqiong "mkdir ~/datanode" ssh Slave2-huyaqiong "mkdir ~/datanode"
3.配置hdfs
首先開啟/usr/hadoop/etc/hadoop /hdfs-site.xml檔案,在<configuration>
</configuration>之間新增如下內容:
<property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///usr/hadoop/datanode</value> </property>
4.將配置檔案同步到Datanode
scp /usr/hadoop/etc/hadoop hdfs-site.xml [email protected]:/usr/hadoop/etc/hadoop
scp /usr/hadoop/etc/hadoop hdfs-site.xml [email protected]:/usr/hadoop/etc/hadoop
5.配置hadoop core
首先開啟/usr/hadoop/etc/hadoop/core-site.xml檔案,在<configuration> - </configuration>之間新增如下內容:
6.在hadoop中設定JAVA_HOME環境變數
首先通過如下命令在本機修改hadoop-env.sh檔案中的環境變數:
sed -i -e 's/\${JAVA_HOME}/\/usr\/java\/default/' /usr/hadoop/etc/hadoop/hadoop-env.sh
7.配置檔案同步到Datanode
scp /usr/hadoop/etc/hadoop/hadoop-env.sh [email protected]172.20.20.107:/usr/hadoop/etc/hadoop/ scp /usr/hadoop/etc/hadoop/hadoop-env.sh [email protected]172.20.20.249:/usr/hadoop/etc/hadoop/
8.建立Namenode檔案目錄
本步驟只需在Namenode上操作。
首先建立目錄:
mkdir /root/Namenode
9.配置hdfs-site.xml
編輯usr/hadoop//etc/hadoop/hdfs-site.xml檔案,增加如下的配置項:
<property> <name>dfs.namenode.name.dir</name> <value>file:///usr/hadoop/namenode</value> </property>
10.配置map-reduce
本步驟只需在Namenode上操作,開啟/ usr/hadoop/etc/hadoop/mapred-site.xml檔案,新增如下內容:
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
11.配置yarn
首先開啟/ usr/hadoop/etc/hadoop/yarn-site.xml檔案,在<configuration> - </configuration>之間新增如下內容:
<property> <name>yarn.resourcemanager.hostname</name> <value>Master-huyaqiong</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
12.將配置檔案同步到Datanode:
scp yarn-site.xml [email protected]172.20.20.249://usr/hadoop/etc/hadoop scp yarn-site.xml [email protected]172.20.20.110://usr/hadoop/etc/hadoop
13.配置slave
開啟etc/hadoop/slaves檔案,新增如下內容:
七、啟動驗證
分別啟動hdfs和yarn服務: 執行示例進行驗證
start-dfs.sh start-yarn.sh
在Namenode上執行jps命令,應該會看到如下程序:
在Datanode上執行jps命令,應該會看到如下程序:
通過web介面檢視:
訪問 http://172.20.20.249:8088/,可以看到如下圖所示的頁面,用來監控任務的執行情況: