Hadoop3.0徹底分佈式集羣安裝部署

 

1. 配置爲1個namenode(master主機),2個datanode(slave1主機+slave2主機)的hadoop集羣模式,node

在VMWare中構建3臺運行Ubuntu的機器做爲服務器;react

關閉操做系統防火牆:ubuntu下默認是關閉的,能夠經過命令ufw status檢查;web

master主機配置以下:apache

vim /etc/hostname 編輯此文件,設置主機名爲masterubuntu

vim /etc/hosts 編輯此文件,添加以下主機內容信息:vim

192.168.107.128 masterbash

192.168.189.129 slave1服務器

192.168.189.130 slave2app

 

同理配置slave1,ssh

vim /etc/hostname 編輯此文件,設置主機名爲slave1

vim /etc/hosts 編輯此文件,添加以下主機內容信息:

192.168.107.128 master

192.168.189.129 slave1

192.168.189.130 slave2

 

同理配置slave2主機

vim /etc/hostname 編輯此文件,設置主機名爲slave2

vim /etc/hosts 編輯此文件,添加以下主機內容信息:

192.168.107.128 master

192.168.189.129 slave1

192.168.189.130 slave2

 

2. 下載安裝jdk1.8.0_91,並設置好環境變量;

以下命令在master機器上配置:

vim .bashrc 編輯此文件,添加以下內容:

export JAVA_HOME=/usr/local/jdk1.8.0_91

export JAVA_BIN=$JAVA_HOME/bin

export JAVA_LIB=$JAVA_HOME/lib

export
CLASSPATH=.:$JAVA_LIB/tools.jar:$JAVA_LIB/dt.jar

export PATH=$JAVA_BIN:$PATH

退出root帳戶,從新登錄,使環境變量生效。

master,slave1,slave2三臺服務器配置同樣。

 

3. 安裝配置ssh, 使得master主機可以免密碼ssh登陸到全部slave主機,由於集羣裏面的主機須要在後臺通訊。

(1)安裝:

SSH分客戶端openssh-client和openssh-server,若是你只是想登錄別的機器的SSH只須要安裝openssh-client(ubuntu有默認 安裝客戶端),若是要使本機開放SSH服務就須要安裝openssh-server。

(2) 配置免密碼登錄:

在master主機上登錄root用戶, 輸入命令:ssh-keygen -t
rsa

而後根據提示一直按enter,就會按默認的選項生成的密鑰對(私鑰id_rsa和公鑰id_rsa.pub)並保存在/root/.ssh文件夾中;

將master服務器上的公鑰拷貝到slave1上,輸入命令:ssh-copy-id root@slave1(root爲slave1上的帳戶)

將master服務器上的公鑰拷貝到slave2上,輸入命令:ssh-copy-id root@slave2(root爲slave2上的帳戶)

能夠測試免密碼登錄是否成功,輸入命令:ssh slave1或ssh slave2來測試,若不用密碼錶是配置成功

 

 

4. 下載編譯好的hadoop二進制文件在master主機上

wget

解壓:tar -zxvf
hadoop-3.0.0-src.tar.gz
/usr/local/hadoop-3.0.0

 

5. 在master主機上設置相關環境變量,將hadoop的bin目錄下的可執行文件加入到系統環境

vim .bashrc 編輯此文件,添加以下內容:

export
HADOOP_HOME=/usr/local/hadoop-3.0.0

export
PATH=$PATH:$HADOOP_HOME/bin

使root用戶從新登錄後,此環境變量生效

同理配置slave1和slave2兩臺主機,從新用root帳戶登錄後使環境變量生效

 

6. 配置hadoop環境變量

vim /usr/local/hadoop-3.0.0/etc/hadoop/hadoop-env.sh

編輯hadoop的全局配置文件,設置JAVA_HOME環境變量:

export JAVA_HOME=/usr/local/jdk1.8.0_91

設置哪一個用戶能夠執行namenode和datanode命令

export HDFS_NAMENODE_USER=root

export HDFS_DATANODE_USER=root

export HDFS_SECONDARYNAMENODE_USER=root

設置哪一個用戶能夠啓動resourcemanager和弄得manager的命令

export YARN_RESOURCEMANAGER_USER=root

export YARN_NODEMANAGER_USER=root

 

執行source
hadoop-env.sh使環境變量生效

同理配置slave1和slave2兩臺主機

 

7. 建立相關目錄 ,依次在全部主機上執行

root@master:/usr/local/hadoop-3.0.0# mkdir tmp

root@master:/usr/local/hadoop-3.0.0# mkdir hdfs

root@master:/usr/local/hadoop-3.0.0# cd hdfs/

root@master:/usr/local/hadoop-3.0.0/hdfs# mkdir name

root@master:/usr/local/hadoop-3.0.0/hdfs# mkdir tmp

root@master:/usr/local/hadoop-3.0.0/hdfs# mkdir data

 

8. 配置核心配置文件core-site.xml

在master主機上配置hdfs地址

<configuration>

<property>

<name>hadoop.tmp.dir</name>

<value>/usr/local/hadoop-3.0.0/tmp</value>

<description>A base for other
temporary directories</description>

</property>

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000</value> #master爲主機名

<description>The name of the default
file system</description>

</property>

</configuration>

 

上面/usr/local/hadoop-3.0.0/tmp爲建立的臨時文件夾;master爲主機名

 

9. 編輯hdfs-site.xml文件,配置副本的個數及數據的存放路徑

 

<configuration>

<property>

<name>dfs.replication</name> --數據塊的副本數量

<value>2</value>

</property>

<property>

<name>dfs.namenode.name.dir</name> --元數據存放路徑

<value>/usr/local/hadoop-3.0.0/hdfs/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name> --數據節點存放路徑

<value>/usr/local/hadoop-3.0.0/hdfs/data</value>

</property>

</configuration>

 

10. 配置mapred-site.xml

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

 

11. 配置yarn-site.xml文件

<property>

<name>yarn.resourcemanager.address</name>

<value>master:18040</value>

</property>

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>master:18030</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>master:18088</value>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>master:18025</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>master:18141</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

 

12. 配置workers 文件,列出全部workers的主機名

vim workers

slave1

slave2

hdfs分佈式文件系統下的datanode進程和YARN下面的nodemanager進程會在這些workers主機上啓動

注意:hadoop2.x配置的是slaves文件

 

13. 遠程複製hadoop3.0.0文件下全部文件到slave1和slave2的主機上

scp -r hadoop-3.0.0 root@slave1:/usr/local/

scp -r hadoop-3.0.0 root@slave2:/usr/local/

 

14. 啓動hdfs集羣

在master主機上執行如下命令,格式化hdfs文件系統

$HADOOP_HOME/bin/hdfs namenode -format

 

在master主機上執行如下命令,初始化namenode節點

$HADOOP_HOME/bin/hdfs --daemon start
namenode

 

分別在全部slave節點上執行如下命令,初始化datanode節點

$HADOOP_HOME/bin/hdfs --daemon start
datanode

 

若是前面的ssh配置成功,也能夠直接

$HADOOP_HOME/sbin/start-dfs.sh 啓動全部進程

(確保ssh master免密碼登錄能成功,一開始我能夠免密碼登錄ssh slave1和ssh slave2,不能免密碼登錄ssh master,後面再master主機目錄下,切換到~/.ssh目錄,執行cat id_rsa.pub >>
authorized_keys就能夠了)

 

15. 啓動YARN

在master主機上啓動resourcemanage進程

$HADOOP_HOME/bin/yarn
--daemon start resourcemanager

 

在全部slave節點上啓動nodemanager進程

$HADOOP_HOME/bin/yarn
--daemon start nodemanager

 

若是前面的ssh配置成功,也能夠直接

$HADOOP_HOME/sbin/start-yarn.sh 啓動全部進程

 

16. 經過網頁訪問hdfs集羣的狀態

http://localhost:9870

默認端口時9870,能夠經過hdfs-default.xml配置文件裏面的 dfs.namenode.http-address配置

 

 

hdfs集羣狀態

 

17. 經過網頁訪問YARN集羣的狀態

默認端口是8088,可經過yarn-site.xml文件裏面的yarn.resourcemanager.webapp.address配置

 

YARN管理下的hadoop集羣狀態
相關文章
相關標籤/搜索