本文通过4台Linux虚拟机,详细介绍搭建4个节点的完全分布式Hadoop集群的方法,Linux系统版本是CentOS 7,Hadoop版本是3.2.0,JDK版本是1.8。

一、准备环境

1. 在VMware workstations上创建4个Linux虚拟机,并配置其静态IP。

有关【创建Linux虚拟机及配置网络】,请参考这里

2. 配置DNS(每个节点)

编辑配置文件,添加主节点和从节点的映射关系。

#vim /etc/hosts
192.168.44.3 hadoop01
192.168.44.4 hadoop02
192.168.44.5 hadoop03
192.168.44.6 hadoop04

3. 关闭防火墙(每个节点)

#关闭服务
[root@hadoop01 opt]# systemctl stop firewalld
#关闭开机自启动
[root@hadoop01 opt]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

4. 配置免密码登录
有关【配置免密码登录方法】,请参考这里

5. 配置Java环境(每个节点)
有关【配置java环境方法】,请参考这里

二、搭建Hadoop完全分布式集群

在各个节点上安装与配置Hadoop的过程都基本相同,因此可以在每个节点上安装好Hadoop后,在主节点master上进行统一配置,然后通过scp 命令将修改的配置文件拷贝到各个从节点上即可。

1. 下载Hadoop安装包,解压,配置Hadoop环境变量

有关【Hadoop安装包下载方法】,请参考这里

本文下载的Hadoop版本是3.2.0,指定一个目录(比如:/opt),使用rz命令上传Hadoop安装包到Linux系统,解压到指定目录,配置Hadoop环境变量,并使其生效。实现命令如下:

#解压到/opt目录
[root@hadoop01 opt]# tar -zxvf hadoop-3.2.0.tar.gz
#链接/opt/hadoop-3.2.0到/opt/hadoop,方便后续配置
[root@hadoop01 opt] #ln -s hadoop-3.2.0 hadoop #配置Hadoop环境变量
[root@hadoop01 opt]# vim /etc/profile
#Hadoop
export HADOOP_HOME=/opt/hadoop # 该目录为解压安装目录
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop #保存后,使profile生效
[root@hadoop01 opt]# source /etc/profile

 2. 配置Hadoop环境脚本文件中的JAVA_HOME参数

#进入Hadoop安装目录下的etc/hadoop目录
[root@hadoop01 ~]#cd /opt/hadoop/etc/hadoop #分别在hadoop-env.sh、mapred-env.sh、yarn-env.sh文件中添加或修改如下参数:

[root@hadoop01 hadoop]# vim hadoop-env.sh 
[root@hadoop01 hadoop]# vim mapred-env.sh
[root@hadoop01 hadoop]# vim yarn-env.sh

export JAVA_HOME="/opt/jdk"  # 路径为jdk安装路径

#验证Hadoop配置是否生效
[root@hadoop01 hadoop]# hadoop version
Hadoop 3.2.0
Source code repository https://github.com/apache/hadoop.git -r e97acb3bd8f3befd27418996fa5d4b50bf2e17bf
Compiled by sunilg on 2019-01-08T06:08Z
Compiled with protoc 2.5.0
From source with checksum d3f0795ed0d9dc378e2c785d3668f39
This command was run using /opt/hadoop-3.2.0/share/hadoop/common/hadoop-common-3.2.0.jar

3. 修改Hadoop配置文件

Hadoop安装目录下的etc/hadoop目录中,需修改core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、workers文件,根据实际情况修改配置信息。

(1)core-site.xml (配置Common组件属性)

  <configuration>
<property>
<!-- 配置hdfs地址 -->
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<!-- 保存临时文件目录,需先在/opt/hadoop下创建tmp目录 -->
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
</property>
</configuration>

更多配置信息,请参考core-site.xml

(2)hdfs-site.xml (配置HDFS组件属性)

<configuration>
<property>
<!-- 主节点地址 -->
<name>dfs.namenode.http-address</name>
<value>hadoop01:50070</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/hadoop/dfs/data</value>
</property>
<property>
<!-- 备份数为默认值3 -->
<name>dfs.replication</name>
<value>3</value>
</property>

<property>
      <name>dfs.webhdfs.enabled</name>
      <value>true</value>
     </property>

     <property>
      <name>dfs.permissions</name>
      <value>false</value>
      <description>配置为false后,可以允许不要检查权限就生成dfs上的文件,方便倒是方便了,但是你需要防止误删除.</description>
     </property>

 </configuration>

更多参数配置,请参考hdfs-site.xml

(3)mapred-site.xml (配置Map-Reduce组件属性)

  <configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value> #设置MapReduce的运行平台为yarn
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>
</property>
    <property>

        <name>mapreduce.application.classpath</name>
        <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
     </property>
</configuration>

更多配置信息,请参考mapred-site.xml

(4)yarn-site.xml(配置资源调度属性)

 <configuration>
<property>
<name>yarn.resourcemanager.hostname</name> #指定yarn的ResourceManager管理界面的地址,不配的话,Active Node始终为0
<value>hadoop01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name> #reducer获取数据的方式
<value>mapreduce_shuffle</value>
</property>

<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop01/192.168.44.5:8088</value>
<description>配置外网只需要替换外网ip为真实ip,否则默认为 localhost:8088</description>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
<description>每个节点可用内存,单位MB,默认8182MB</description>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
<description>忽略虚拟内存的检查,如果你是安装在虚拟机上,这个配置很有用,配上去之后后续操作不容易出问题。</description>
</property>

<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>

</configuration>

更多配置信息,请参考yarn-site.xml

(5)workers文件

#增加从节点地址(若配置了hosts,可直接使用主机名,亦可用IP地址)
[root@hadoop01 hadoop]# vim workers
hadoop02
hadoop03
hadoop04

 4. 将配置好的文件夹拷贝到其他从节点

[root@hadoop01 hadoop]# scp -r /opt/hadoop-3.2.0 root@hadoop02:/opt/
[root@hadoop01 hadoop]# scp -r /opt/hadoop-3.2.0 root@hadoop03:/opt/
[root@hadoop01 hadoop]# scp -r /opt/hadoop-3.2.0 root@hadoop04:/opt/
[root@hadoop01 hadoop]# scp -r /opt/hadoop root@hadoop02:/opt/
[root@hadoop01 hadoop]# scp -r /opt/hadoop root@hadoop03:/opt/
[root@hadoop01 hadoop]# scp -r /opt/hadoop root@hadoop04:/opt/

5. 配置启动脚本,添加HDFS和Yarn权限

添加HDFS权限:编辑如下脚本,在第二行空白位置添加HDFS权限
[root@hadoop01 sbin]# vim sbin/start-dfs.sh
[root@hadoop01 sbin]# vim sbin/stop-dfs.sh HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
添加Yarn权限:编辑如下脚本,在第二行空白位置添加Yarn权限

[root@hadoop01 sbin]# vim sbin/start-yarn.sh
[root@hadoop01 sbin]# vim sbin/stop-yarn.sh YARN_RESOURCEMANAGER_USER=root
HDFS_DATANODE_SECURE_USER=yarn
YARN_NODEMANAGER_USER=root

注意:若不添加上述权限,则会报错:缺少用户权限定义所致。

ERROR: Attempting to launch hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting launch.
Starting datanodes
ERROR: Attempting to launch hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting launch.
Starting secondary namenodes [localhost.localdomain]
ERROR: Attempting to launch hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting launch.

6. 初始化 & 启动

#格式化
[root@hadoop01 hadoop-3.2.0]# bin/hdfs namenode -format #启动(两种方式均可启动)
方法一:
[root@hadoop01 hadoop-3.2.0]# sbin/start-all.sh 方法二:
[root@hadoop01 hadoop-3.2.0]# sbin/start-dfs.sh
[root@hadoop01 hadoop-3.2.0]# sbin/start-yarn.sh

7. 验证Hadoop启动成功

#主节点
[root@hadoop01 sbin]# jps
11329 NameNode
11831 ResourceManager
11592 SecondaryNameNode
12186 Jps
#从节点
[root@hadoop02 hadoop]# jps
5152 SecondaryNameNode
5085 DataNode
5245 NodeManager
5357 Jps [root@hadoop03 opt]# jps
5080 DataNode
5178 NodeManager
5278 Jps [root@hadoop04 opt]# jps
5090 NodeManager
5190 Jps
4991 DataNode

8. Web端口访问

注:先开放端口或直接关闭防火墙。

# 查看防火墙状态
firewall-cmd --state
# 临时关闭防火墙
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld

在浏览器输入:http://hadoop01:8088打开ResourceManager页面。

在浏览器输入:http://hadoop01:50070打开Hadoop Namenode页面。

注意:如果输入主节点名称无法打开Web页面,则需要配置Windows上的hosts,路径如下:

C:\Windows\System32\drivers\etc\hosts

192.168.44.3 hadooop01
192.168.44.4 hadooop02
192.168.44.5 hadooop03
192.168.44.6 hadooop04

Hadoop 3.0完全分布式集群搭建方法(CentOS 7+Hadoop 3.2.0)的更多相关文章

  1. Hadoop 2.0完全分布式集群搭建方法(CentOS7+Hadoop 2.7.7)

    本文详细介绍搭建4个节点的完全分布式Hadoop集群的方法,Linux系统版本是CentOS 7,Hadoop版本是2.7.7,JDK版本是1.8. 一.准备环境 1. 在VMware worksta ...

  2. Hadoop上路-01_Hadoop2.3.0的分布式集群搭建

    一.配置虚拟机软件 下载地址:https://www.virtualbox.org/wiki/downloads 1.虚拟机软件设定 1)进入全集设定 2)常规设定 2.Linux安装配置 1)名称类 ...

  3. 分布式实时日志系统(四) 环境搭建之centos 6.4下hbase 1.0.1 分布式集群搭建

    一.hbase简介 HBase是一个开源的非关系型分布式数据库(NoSQL),它参考了谷歌的BigTable建模,实现的编程语言为 Java.它是Apache软件基金会的Hadoop项目的一部分,运行 ...

  4. Hadoop2.7.3+Spark2.1.0完全分布式集群搭建过程

    1.选取三台服务器(CentOS系统64位) 114.55.246.88 主节点 114.55.246.77 从节点 114.55.246.93 从节点 之后的操作如果是用普通用户操作的话也必须知道r ...

  5. Hadoop 2.2 YARN分布式集群搭建配置流程

    搭建环境准备:JDK1.6,SSH免密码通信 系统:CentOS 6.3 集群配置:NameNode和ResourceManager在一台服务器上,三个数据节点 搭建用户:YARN Hadoop2.2 ...

  6. hadoop 3.x 完全分布式集群搭建/异常处理/测试

    共计三台虚拟机分别为hadoop002(master,存放namenode),hadoop003(workers,datanode以及resourcemanage),hadoop004(workers ...

  7. hbase分布式集群搭建

    hbase和hadoop一样也分为单机版.伪分布式版和完全分布式集群版本,这篇文件介绍如何搭建完全分布式集群环境搭建. hbase依赖于hadoop环境,搭建habase之前首先需要搭建好hadoop ...

  8. kafka系列二:多节点分布式集群搭建

    上一篇分享了单节点伪分布式集群搭建方法,本篇来分享一下多节点分布式集群搭建方法.多节点分布式集群结构如下图所示: 为了方便查阅,本篇将和上一篇一样从零开始一步一步进行集群搭建. 一.安装Jdk 具体安 ...

  9. Hadoop完全分布式集群搭建

    Hadoop的运行模式 Hadoop一般有三种运行模式,分别是: 单机模式(Standalone Mode),默认情况下,Hadoop即处于该模式,使用本地文件系统,而不是分布式文件系统.,用于开发和 ...

随机推荐

  1. 如何使用SSDT进行SQL数据库的自动化部署到生产环境和版本控制

    简介 在开发过程,我们常常会遇到数据库环境部署的问题,当部署正式环境中,数据库产生的多文件脚本在管理上就容易出现混乱,特别是你还没有权限访问正式环境的情况,就更为困难.SSDT为我们提供了很好的解决方 ...

  2. BEC listen and translation exercise 35

    高中听力: At five o'clock, we have afternoon tea, but we don't have it in the kitchen. Father's Day is t ...

  3. 51nod1428 活动安排问题 (贪心加暴力)

    1428 活动安排问题 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动 ...

  4. Java 集合常用特点

    1:集合:1) Collection(单列集合) ---------------------------------------------------------------------       ...

  5. 使用 py2exe 打包 Python 程序

    上回在<使用 PyInstaller 打包 Python 程序>中,我们介绍了使用 PyInstaller 对 Python 程序进行打包,今天带大家认识一个新的工具:py2exe. 接下 ...

  6. [CJOJ2425][SYZOI Round1]滑稽的树

    cjoj sol 子树转化成dfs序上的区间. 所以就变成了:区间Kth,区间内[a,b]范围内的数有多少个,单点修改 裸的树套树啊. code #include<cstdio> #inc ...

  7. SLF4j+LOG4j

    工作笔记:在myeclipse 中创建一个java project 创建一个 TestSlf4J 类 import org.slf4j.Logger; import org.slf4j.LoggerF ...

  8. Parallel Programming-Task Result && Continuation Task

    本文主要介绍带有返回值的Task和Continuation Task 带返回值的Task Continuation Task ContinueWhenAll即多任务延续 一.带返回值的Task 1.1 ...

  9. 低调的css3属性font-size-adjust

    在我们日常的项目中经常会用到不同的字体来达到我们想要的效果,可是某些情况下不同字体的大小在相同的px下显示的大小是不同的 <div id="div1">Text 1&l ...

  10. tomcat部署虚拟主机-搭建两个应用以及httpd和Nginx的反向代理

    实验环境:CentOS7 前提:已经安装好tomcat,未安装请查看http://www.cnblogs.com/wzhuo/p/7111135.html: 目的:基于主机名访问两个应用: [root ...