Ubuntu16.04-hadoop3.1.0安裝與配置

weixin_33727510發表於2018-07-02

ubuntu16.04 hadoop hadoop3.1.0

前言

本文嘗試原始碼安裝部署hadoop3.1.0

系統為ubuntu16.04

需要具有一定基礎,一些基本操作只是簡略帶過

我主要把各個部署方案的配置檔案綜合了起來,把一些常用的配置以及說明都寫了上來

適合快速部署hadoop的朋友

1 伺服器概覽

序號 主機名 IP 配置 功能 備註
1 master 192.168.136.148 記憶體:4G
CPU:2vCores
主節點
namenode
resourcemanager
2 standby 192.168.136 記憶體:4G
CPU:2vCores
備用主節點
secondaryNameNode
預設在master上
3 slave1 192.168.136.149 記憶體:2G
CPU:1vCores
從節點
DataNode
NodeManager
4 slave2 192.168.136.150 記憶體:2G
CPU:1vCores
從節點
DataNode
NodeManager

2 部署

2.1 配置hosts檔案,設定靜態IP與主機名

root@master:~# cat /etc/hosts
127.0.0.1   localhost

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

192.168.136.148 master
192.168.136.149 slave1
192.168.136.150 slave2

2.2 配置時間同步

2.3 關閉防火牆(centos關閉selinux)

2.4 配置master免密登入其它節點

2.5 JDK安裝

  • 原始碼安裝或者apt安裝

    環境變數(apt安裝不需要配置環境變數)

    export JAVA_HOME=/opt/java/jdk1.8.0_172
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
    

2.6 安裝hadoop

下載hadoop,將其解壓至/opt/目錄下

[root@node1 opt]# cd /opt/ & mkdir hadoop && cd hadoop
#解壓hadoop-3.1.0.tar.gz
[root@node1 hadoop]# tar -zxvf hadoop-3.1.0.tar.gz

#修改環境變數
[root@node1 hadoop]# vim /etc/profile

# 在最後下新增
export HADOOP_HOME=/opt/hadoop/hadoop-3.1.0
export PATH=$PATH:$HADOOP_HOME/bin
source /etc/profile

2.7 編輯配置檔案

修改配置檔案

> 共需要配置/opt/hadoop/hadoop-3.1.0/etc/hadoop/下的六個個檔案,分別是
>
> hadoop-env.sh、core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml、workers

2.7.1 hadoop-env.sh

vim hadoop-env.sh

 export JAVA_HOME=/opt/java/jdk1.8.0_172/

 export HDFS_NAMENODE_USER="root"
 export HDFS_DATANODE_USER="root"
 export HDFS_SECONDARYNAMENODE_USER="root"
 export YARN_RESOURCEMANAGER_USER="root"
 export YARN_NODEMANAGER_USER="root"

2.7.2 core-site.xml

<configuration>
    <!-- 指定HDFS老大(namenode)的通訊地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <!-- 指定hadoop執行時產生檔案的儲存路徑 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop/data/tmp</value>
    </property>
    <!-- 指定hadoop流檔案的緩衝區,單位為K -->
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>
</configuration>

2.7.3 hdfs-site.xml

<configuration>

    <!-- 設定namenode的http通訊地址 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:50070</value>
    </property>

    <!-- 設定secondarynamenode的http通訊地址 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>standby:50090</value>
    </property>
     <!-- 設定dfs塊大小,單位K,預設128Mb -->
    <property>
        <name>dfs.blocksize</name>
        <value>268435456</value>
    </property>

    <property>
         <name>dfs.namenode.handler.count  </name>
        <value>100</value>
    </property>
    
    <!-- 設定namenode存放的路徑 (最好指定多個路徑,包括NFS,用逗號分隔,便於容災)-->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/hadoop/data/name</value>
    </property>

    <!-- 設定hdfs副本數量 -->
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <!-- 設定datanode存放的路徑(可以指定多個路徑,多個路徑最好分別為不同的磁碟,提高效率) -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/hadoop/data/datanode</value>
    </property>
    
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
</configuration>

2.7.4 mapred-site.xml

<configuration>
    <!-- 通知框架MR使用YARN -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>  
        <name>mapreduce.application.classpath</name>  
        <value>  
        /opt/hadoop/hadoop-3.1.0/etc/hadoop,  
        /opt/hadoop/hadoop-3.1.0/share/hadoop/common/*,  
        /opt/hadoop/hadoop-3.1.0/share/hadoop/common/lib/*,  
        /opt/hadoop/hadoop-3.1.0/share/hadoop/hdfs/*,  
        /opt/hadoop/hadoop-3.1.0/share/hadoop/hdfs/lib/*,  
        /opt/hadoop/hadoop-3.1.0/share/hadoop/mapreduce/*,  
        /opt/hadoop/hadoop-3.1.0/share/hadoop/mapreduce/lib/*,  
        /opt/hadoop/hadoop-3.1.0/share/hadoop/yarn/*,  
        /opt/hadoop/hadoop-3.1.0/share/hadoop/yarn/lib/*  
        </value>  
    </property>
</configuration>

2.7.5 yarn-site.xml

<configuration>
    <property>
         <name>yarn.resourcemanager.hostname</name>
         <value>master</value>
    </property>
    <!-- 配置外網只需要替換外網ip為真實ip,否則預設為 localhost:8088 -->
    <!-- <property>
          <name>yarn.resourcemanager.webapp.address</name>
          <value>外網ip:8088</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.ShuffleHandle</value>  
    </property>  
    <property>  
        <name>yarn.resourcemanager.resource-tracker.address</name>  
        <value>master:8025</value>  
    </property>  
    <property>  
        <name>yarn.resourcemanager.scheduler.address</name>  
        <value>master:8030</value>  
    </property>  
    <property>  
        <name>yarn.resourcemanager.address</name>  
        <value>master:8040</value>  
    </property>  
</configuration>

2.7.6 masters

新建一個masters的檔案,這裡指定的是secondary namenode 的主機

[root@node1 hadoop]# touch /opt/hadoop/hadoop-3.1.0/etc/hadoop/masters
[root@node1 hadoop]# vim /opt/hadoop/hadoop-3.1.0/etc/hadoop/masters
#新增
standby

2.7.7 workers

在workers檔案中新增slave節點

[root@node1 hadoop]# vim /opt/hadoop/hadoop-3.1.0/etc/hadoop/workers
#新增
slave1
slave2

2.7.8 建立資料夾

[root@node1 hadoop]# mkdir -p /opt/hadoop/data/tmp
[root@node1 hadoop]# mkdir -p /opt/hadoop/data/name
[root@node1 hadoop]# mkdir -p /opt/hadoop/data/datanode

2.7.9 複製到其他主機

[root@node1 opt]# scp -r /opt/hadoop spark.node2:/opt/
[root@node1 opt]# scp -r /opt/hadoop spark.node3:/opt/

2.7.10 格式化 第一次啟動得格式化

[root@node1 opt]#  /opt/hadoop/hadoop-3.1.0/bin/hdfs namenode -format

2.7.11 啟動

/opt/hadoop/hadoop-3.1.0/sbin/start-dfs.sh
/opt/hadoop/hadoop-3.1.0/sbin/start-yarn.sh

2.7.12 檢視

jps

3 關閉 【只在master上操作】

/opt/hadoop/hadoop-3.1.0/sbin/stop-dfs.sh
/opt/hadoop/hadoop-3.1.0/sbin/stop-yarn.sh

4 刪除(謹慎操作,只在master上操作)

重置hadoop環境 [移除hadoop hdfs log檔案]

rm -rf /opt/hadoop/hadoop-3.1.0/logs/*
rm -rf /opt/hadoop/data

寫在後面

這是本人的個人部落格,歡迎關注:

CSDN:弓昭的技術部落格

簡書:弓昭的簡書

如果有問題可以Email或留言與我交流:

gongzhao1@foxmail.com

PS: 每篇博文都有PDF版本,想要的朋友可以email我

參考連結:

相關文章