Ubuntu16.04-hadoop3.1.0安装与配置

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我

参考链接:

推荐阅读更多精彩内容