1. 程式人生 > >Centos 7下Hadoop分散式叢集搭建

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/,可以看到如下圖所示的頁面,用來監控任務的執行情況: