Centos7.5搭建Hadoop2.8.5完全分布式集群部署
一、基础环境设置
1. 准备4台客户机(VMware虚拟机)
系统版本:Centos7.5
节点配置:
192.168.208.128 ——Master
192.168.208.129 ——Slaver-1
192.168.208.130 ——Slaver-2
192.168.208.130 ——Slaver-3
2. 配置hosts文件,使4台客户机能够以主机名相互访问
[root@Master ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.208.128 Master
192.168.208.129 Slaver-1
192.168.208.130 Slaver-2
192.168.208.131 Slaver-3
# 将hosts文件传送给其它3台客户机
[root@Master ~]# scp -r /etc/hosts root@Slaver-1:/etc
[root@Master ~]# scp -r /etc/hosts root@Slaver-2:/etc
[root@Master ~]# scp -r /etc/hosts root@Slaver-3:/etc
3. 为4台客户机配置jdk环境
我们选择配置jdk1.8.0_181,点击此处下载。
[root@Master ~]# wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
# 解压
[root@Master ~]# tar -xzvf jdk-8u181-linux-x64.tar.gz
[root@Master ~]# mkdir /usr/local/java # 创建jdk存放目录
[root@Master ~]# mv jdk1.8.0_181/ /usr/local/java # 将解压缩文件转移至存放目录
# 配置jdk环境
[root@Master ~]# vi /etc/profile
# 在文件末尾添加如下内容
# java
export JAVA_HOME=/usr/local/java/jdk1.8.0_181 # 注意,要与刚刚所创建的目录匹配
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 使jdk配置文件生效
[root@Master ~]# source /etc/profile
# 测试jdk环境配置是否成功,如输出如下内容,则表示成功
[root@Master ~]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
4. 关闭防火墙,SELinux
a. iptables
# 临时关闭
[root@Master ~]# service iptables stop
# 禁止开机启动
[root@Master ~]# chkconfig iptables off
b.firewalld
CentOS7版本后防火墙默认使用firewalld,默认是没有iptables的,所以关闭防火墙的命令如下:
# 临时关闭
[root@Master ~]# systemctl stop firewalld
# 禁止开机启动,输出如下,则表示禁止成功
[root@Master ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
c.关闭SELinux
# 永久关闭SELinux
[root@Master ~]# vi /etc/selinux/config
#disabled - No SELinux policy is loaded.
SELINUX=disabled # 此处将SELINUX=enforcing改为SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# 修改SELinux配置后,需重启客户机才能生效
[root@Master ~]# reboot
# 重启之后,查看SELinux状态
[root@Master ~]# /usr/sbin/sestatus
SELinux status: disabled # 如果输出如是,则表示SELinux永久关闭成功
5. 设置SSH免密钥
关于ssh免密码的设置,要求每两台主机之间设置免密码,自己的主机与自己的主机之间也要求设置免密码。在这里,为了避免后面的各种权限问题,我们直接使用root账户来设置面密钥登陆。
[root@Master ~]$ ssh-keygen -t rsa
[root@Master ~]$ ssh-copy-id node-1
[root@Master ~]$ ssh-copy-id node-2
[root@Master ~]$ ssh-copy-id node-3
注:每一台客户机都要做如上设置,所以,最好的方式是:按上述方法配置好一台虚拟机之后,再克隆出其它几台。
二、安装hadoop集群
1. 下载hadoop2.8.5二进制文件
2. hadoop安装目录
为了统一管理,我们将hadoop的安装路径定为/usr/opt/hadoop下,创建目录后,我们将hadoop二进制文件解压至这个目录下。
3. 配置core-site.xml
hadoop的配置文件,在/opt/hadoop/hadoop-2.8.5/etc/hadoop下,
[root@Master ~]# cd /opt/hadoop/hadoop-2.8.5/etc/hadoop
[root@Master hadoop]# vi core-site.xml
<configuration>
<!--配置hdfs文件系统的命名空间-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
</property>
<!-- 配置操作hdfs的存冲大小 -->
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<!-- 配置临时数据存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/hadoop-2.8.5/tmp</value>
</property>
</configuration>
4. 配置hdfs-site.xml
[root@Master hadoop]# vim hdfs-site.xml
<configuration>
<!--配置副本数-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--hdfs的元数据存储位置-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/hadoop-2.8.5/hdfs/name</value>
</property>
<!--hdfs的数据存储位置-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/hadoop-2.8.5/hdfs/data</value>
</property>
<!--hdfs的namenode的web ui 地址-->
<property>
<name>dfs.http.address</name>
<value>Master:50070</value>
</property>
<!--hdfs的snn的web ui 地址-->
<property>
<name>dfs.secondary.http.address</name>
<value>Master:50090</value>
</property>
<!--是否开启web操作hdfs-->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<!--是否启用hdfs权限(acl)-->
<property>
<name>dfs.permissions</name>
<value>false</value> </property>
</configuration>
5. 配置mapred-site.xml
[root@Master hadoop]# cp mapred-site.xml.template mapred-site.xml
[root@Master hadoop]# vim mapred-site.xml
<configuration>
<!--指定maoreduce运行框架-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value> </property>
<!--历史服务的通信地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master:10020</value>
</property>
<!--历史服务的web ui地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master:19888</value>
</property>
</configuration>
6. 配置yarn-site.xml
[root@Master hadoop]# vim yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<!--指定resourcemanager所启动的服务器主机名-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<!--指定mapreduce的shuffle-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--指定resourcemanager的内部通讯地址-->
<property>
<name>yarn.resourcemanager.address</name>
<value>Master:8032</value>
</property>
<!--指定scheduler的内部通讯地址-->
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>Master:8030</value>
</property>
<!--指定resource-tracker的内部通讯地址-->
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>Master:8031</value>
</property>
<!--指定resourcemanager.admin的内部通讯地址-->
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>Master:8033</value>
</property>
<!--指定resourcemanager.webapp的ui监控地址-->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>Master:8088</value>
</property>
</configuration>
7. 配置slaves文件
[root@Master hadoop]# vim slaves
Slaver-1
Slaver-2
Slaver-3
8. 配置hadoop-env.sh,指定JAVA_HOME
[root@Master hadoop]# vim hadoop-env.sh
修改 export JAVA_HOME=/usr/local/java/jdk1.8.0_181
9. 配置yarn-env.sh,指定JAVA_HOME
[root@Master hadoop]# vim yarn-env.sh
修改 export JAVA_HOME=/usr/local/java/jdk1.8.0_181
10. 配置mapred-env.sh,指定JAVA_HOME
[root@Master hadoop]# vim mapred-env.sh
修改 export JAVA_HOME=/usr/local/java/jdk1.8.0_181
11. 将hadoop文件分发到其它几台客户机上
[root@Master hadoop]# scp -r hadoop/ Slaver-1:`pwd`
[root@Master hadoop]# scp -r hadoop/ Slaver-2:`pwd`
[root@Master hadoop]# scp -r hadoop/ Slaver-3:`pwd`
三、启动并验证hadoop集群
1. 启动集群
第一次启动集群,需要格式化namenode,操作如下:
[root@Master ~]# hdfs namenode -format
输出如下内容,则表示格式化成功

**启动HDFS**
格式化成功之后,我们就可以启动HDFS了,命令如下:
[root@Master hadoop]# start-dfs.sh
Starting namenodes on [Master]
Master: starting namenode, logging to /opt/hadoop/hadoop-2.8.5/logs/hadoop-root-namenode-Master.out
Slaver-3: starting datanode, logging to /opt/hadoop/hadoop-2.8.5/logs/hadoop-root-datanode-Slaver-3.out
Slaver-2: starting datanode, logging to /opt/hadoop/hadoop-2.8.5/logs/hadoop-root-datanode-Slaver-2.out
Slaver-1: starting datanode, logging to /opt/hadoop/hadoop-2.8.5/logs/hadoop-root-datanode-Slaver-1.out
Starting secondary namenodes [Master]
Master: starting secondarynamenode, logging to /opt/hadoop/hadoop-2.8.5/logs/hadoop-root-secondarynamenode-Master.out
启动Yarn
启动Yarn时需要注意,我们不能在NameNode上启动Yarn,而应该在ResouceManager所在的主机上启动。但我们这里是将NameNode和ResouceManager部署在了同一台主机上,所以,我们直接在Master这台机器上启动Yarn。
[root@Master hadoop]# start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /opt/hadoop/hadoop-2.8.5/logs/yarn-root-resourcemanager-Master.out
Slaver-2: starting nodemanager, logging to /opt/hadoop/hadoop-2.8.5/logs/yarn-root-nodemanager-Slaver-2.out
Slaver-1: starting nodemanager, logging to /opt/hadoop/hadoop-2.8.5/logs/yarn-root-nodemanager-Slaver-1.out
Slaver-3: starting nodemanager, logging to /opt/hadoop/hadoop-2.8.5/logs/yarn-root-nodemanager-Slaver-3.out
2. web验证
至此,我们的集群就已完全启动起来了,我们可以通过访问web页面,来做最后一步验证。我们已将web页面配置在Master主机上,因此,我们访问http://192.168.208.128:50070/,页面显示如下:


Centos7.5搭建Hadoop2.8.5完全分布式集群部署的更多相关文章
- Hadoop(二)CentOS7.5搭建Hadoop2.7.6完全分布式集群
一 完全分布式集群(单点) Hadoop官方地址:http://hadoop.apache.org/ 1 准备3台客户机 1.1防火墙,静态IP,主机名 关闭防火墙,设置静态IP,主机名此处略,参考 ...
- CentOS7.5搭建Hadoop2.7.6完全分布式集群
一 完全分布式集群搭建 Hadoop官方地址:http://hadoop.apache.org/ 1 准备3台客户机 1.2 关闭防火墙,设置静态IP,主机名 关闭防火墙,设置静态IP,主机名此处略 ...
- 超详细从零记录Hadoop2.7.3完全分布式集群部署过程
超详细从零记录Ubuntu16.04.1 3台服务器上Hadoop2.7.3完全分布式集群部署过程.包含,Ubuntu服务器创建.远程工具连接配置.Ubuntu服务器配置.Hadoop文件配置.Had ...
- 搭建Hadoop2.7.1的分布式集群
Hadoop 2.7.1 (2015-7-6更新),hadoop的环境配置不是特别的复杂,但是确实有很多细节需要注意,不然会造成许多配置错误的情况.尽量保证一次配置正确防止反复修改. 网上教程有很多关 ...
- # 从零開始搭建Hadoop2.7.1的分布式集群
Hadoop 2.7.1 (2015-7-6更新),Hadoop的环境配置不是特别的复杂,可是确实有非常多细节须要注意.不然会造成很多配置错误的情况.尽量保证一次配置正确防止重复改动. 网上教程有非常 ...
- Docker中搭建Hadoop-2.6单机伪分布式集群
1 获取一个简单的Docker系统镜像,并建立一个容器. 1.1 这里我选择下载CentOS镜像 docker pull centos 1.2 通过docker tag命令将下载的CentOS镜像名称 ...
- 基于hadoop2.6.0搭建5个节点的分布式集群
1.前言 我们使用hadoop2.6.0版本配置Hadoop集群,同时配置NameNode+HA.ResourceManager+HA,并使用zookeeper来管理Hadoop集群 2.规划 1.主 ...
- 搭建hbase1.2.5完全分布式集群
简介 有一段时间,没写博客了,因为公司开发分布式调用链追踪系统,用到hbase,在这里记录一下搭建过程 1.集群如下: ip 主机名 角色 192.168.6.130 node1.jacky.com ...
- 摘要: CentOS 6.5搭建Redis3.2.8伪分布式集群
from https://my.oschina.net/ososchina/blog/856678 摘要: CentOS 6.5搭建Redis3.2.8伪分布式集群 前言 最近在服务器上搭建了 ...
随机推荐
- 适用于 Windows 的虚拟机扩展和功能
Azure 虚拟机扩展是小型应用程序,可在Azure 虚拟机上提供部署后配置和自动化任务. 例如,如果虚拟机要求安装软件.防病毒保护或进行 Docker 配置,便可以使用 VM 扩展来完成这些任务. ...
- oracle表名、字段名大小写问题。
oracle 表名 .字段名 默认不区分大小写,除非建表语句中带双引号 如CREATE TABLE "TableName"("ID" number). CRE ...
- [翻译] JTBorderDotAnimation
JTBorderDotAnimation https://github.com/jonathantribouharet/JTBorderDotAnimation JTBorderDotAnimatio ...
- 支持xcode6的缓动函数Easing以及使用示例
支持xcode6的缓动函数Easing以及使用示例 用xcode6新建工程后,直接导致不支持之前的Easing缓动函数的代码,经过修改后就可以正常使用了,虽然比不上POP高大上的动画,但用缓动函数的动 ...
- iso、ios、osi的区别
ISO 国际标准化组织(International Organization for Standardization)简称ISO,是一个全球性的非政府组织,是国际标准化领域中一个十分重要的组织.IS ...
- Nginx学习---Nginx的详解_【all】
1.1. Nginx简介 1.什么是nginx nginx:静态的,开源的www软件,可以解析静态的小文件(低于1M ),支持高并发占用较发少的资源(3W并发,10个进程,内存150M),跨平台 te ...
- 荣禄[róng lù]
荣禄[róng lù] 百科名片 荣禄 荣禄(1836年4月6日-1903年4月11日)清末大臣,晚清政治家.字仲华,号略园,瓜尔佳氏,满洲正白旗人,出身于世代军官家庭,以荫生晋工部员外郎,后任内务府 ...
- [BZOJ 4573][ZJOI 2016]大森林
[LOJ 2092][BZOJ 4573][UOJ 195][ZJOI 2016]大森林 题意 给定一个树序列, 初始时所有树都只有一个点, 要求支持三种操作: 区间种树(在某个特定点上长出一个子结点 ...
- HTTP协议图--HTTP 报文实体
1. HTTP 报文实体概述 HTTP 报文结构 大家请仔细看看上面示例中,各个组成部分对应的内容. 接着,我们来看看报文和实体的概念.如果把 HTTP 报文想象成因特网货运系统中的箱子,那么 H ...
- 对json的理解?
回答一: a.JSON对象:以 ”{“ 开始,以 ”}” 结束,里面则是一系列的键(key)值(value)对,键和值用 ”:” 分开,每对键值对之间用 ”,” 分开.参考以下语法: {key1:va ...