一、关闭防火墙(直接用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..tar.gz -C /usr/hadoop --strip-components 
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 root@172.20.20.110:/usr/hadoop/etc/hadoop
scp /usr/hadoop/etc/hadoop hdfs-site.xml root@172.20.20.249:/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 root@172.20.20.107:/usr/hadoop/etc/hadoop/
scp /usr/hadoop/etc/hadoop/hadoop-env.sh root@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 root@172.20.20.249://usr/hadoop/etc/hadoop

scp yarn-site.xml root@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/,可以看到如下图所示的页面,用来监控任务的执行情况:

Centos 7下Hadoop分布式集群搭建的更多相关文章

  1. [过程记录]Centos7 下 Hadoop分布式集群搭建

    过程如下: 配置hosts vim /etc/hosts 格式: ip hostname ip hostname 设置免密登陆 首先:每台主机使用ssh命令连接其余主机 ssh 用户名@主机名 提示是 ...

  2. Hadoop分布式集群搭建

    layout: "post" title: "Hadoop分布式集群搭建" date: "2017-08-17 10:23" catalog ...

  3. Hadoop分布式集群搭建hadoop2.6+Ubuntu16.04

    前段时间搭建Hadoop分布式集群,踩了不少坑,网上很多资料都写得不够详细,对于新手来说搭建起来会遇到很多问题.以下是自己根据搭建Hadoop分布式集群的经验希望给新手一些帮助.当然,建议先把HDFS ...

  4. Hadoop框架:单服务下伪分布式集群搭建

    本文源码:GitHub·点这里 || GitEE·点这里 一.基础环境 1.环境版本 环境:centos7 hadoop版本:2.7.2 jdk版本:1.8 2.Hadoop目录结构 bin目录:存放 ...

  5. hadoop分布式集群搭建(2.9.1)

    1.环境 操作系统:ubuntu16 jdk:1.8 hadoop:2.9.1 机器:3台,master:192.168.199.88,node1:192.168.199.89,node2:192.1 ...

  6. hadoop分布式集群搭建前期准备(centos7)

    那玩大数据,想做个大数据的从业者,必须了解在生产环境下搭建集群哇?由于hadoop是apache上的开源项目,所以版本有些混乱,听说都在用Cloudera的cdh5来弄?后续研究这个吧,就算这样搭建不 ...

  7. Hadoop分布式集群搭建_1

    Hadoop是一个开源的分布式系统框架 一.集群准备 1. 三台虚拟机,操作系统Centos7,三台主机名分别为k1,k2,k3,NAT模式 2.节点分布 k1: NameNode DataNode ...

  8. 使用Docker在本地搭建Hadoop分布式集群

    学习Hadoop集群环境搭建是Hadoop入门必经之路.搭建分布式集群通常有两个办法: 要么找多台机器来部署(常常找不到机器) 或者在本地开多个虚拟机(开销很大,对宿主机器性能要求高,光是安装多个虚拟 ...

  9. 分布式计算(一)Ubuntu搭建Hadoop分布式集群

    最近准备接触分布式计算,学习分布式计算的技术栈和架构知识.目前的分布式计算方式大致分为两种:离线计算和实时计算.在大数据全家桶中,离线计算的优秀工具当属Hadoop和Spark,而实时计算的杰出代表非 ...

随机推荐

  1. redis-5.0.5 集群部署

    之前写过一套基于redis-4.0.6版本的测试集群部署 https://www.cnblogs.com/mrice/p/10730309.html 最近生产环境需要部署一套redis-5.0.5版本 ...

  2. CF1260C Infinite Fence 题解(扩欧)

    题目地址 CF1260C 题目大意 现有\(10^{100}\)块木板需要涂漆,第x块如果是x是a的倍数,则涂一种颜色,是b的倍数,则涂另一种颜色.如果既是a又是b的倍数,那么两种颜色都可以涂:如果连 ...

  3. Tengine + Lua + GraphicsMagick 实现图片自动裁剪/缩放

    http://my.oschina.net/eduosi/blog/169606

  4. 前端每日实战:126# 视频演示如何用纯 CSS 创作小球变矩形背景的按钮悬停效果

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/yxbEzJ 可交互视频 此视频是可 ...

  5. BZOJ2160 拉拉队排练 PAM

    题意简述 询问一个串中所有奇回文按照长度降序排列,前k个奇回文的长度乘积. 做法 回文自动机(PAM)模板题. 维护每个回文自动机的结点回文串出现次数,跳fail得到每个长度的出现次数,双关键字排序后 ...

  6. Word快捷选取

    在word中,你知道鼠标单击选中一个词,双击选中一行,三击选中一个段落吗?

  7. 【Luogu4191】[CTSC2010] 性能优化

    题目链接 题意简述 求循环卷积意义下的 \(A(x)*B(x)^C\). 模数为 n+1 ,长度为 n. Sol 板子题. 循环卷积可直接把点值快速幂来解决. 所以问题就是要快速 \(DFT\),由于 ...

  8. AC自动机及其模板

    模板 #include<queue> #include<stdio.h> #include<string.h> using namespace std; ; ; ; ...

  9. 舞蹈课(dancingLessons)

    有n个人参加一个舞蹈课.每个人的舞蹈技术由整数ai来决定.在舞蹈课的开始,他们从左到右站成一排.当这一排中至少有一对相邻的异性时,舞蹈技术相差最小的那一对会出列并开始跳舞.如果相差最小的不止一对,那么 ...

  10. Oralce动态的创建按月的分区

    说明: XXX为一个配置表,里面配置了要分区的表明,即CODENO = 'PARTITIONTABLENAME',只有每个月月底的时候,才会进入IF的判断,此外还有一个定时任务,每天去执行即可. 存储 ...