Hadoop框架:集群模式下分布式环境搭建
本文源码:GitHub·点这里 || GitEE·点这里
一、基础环境配置
1、三台服务
准备三台Centos7服务,基础环境从伪分布式环境克隆过来。
133 hop01,134 hop02,136 hop03
2、设置主机名
## 设置名称
hostnamectl set-hostname hop01
## 重启
reboot -f
3、主机名通信
vim /etc/hosts
# 添加服务节点
192.168.37.133 hop01
192.168.37.134 hop02
192.168.37.136 hop03
4、SSH免密登录
配置三台服务SSH免密登录。
[root@hop01 ~]# ssh-keygen -t rsa
...一路回车结束
[root@hop01 ~]# cd .ssh
...权限分配到指定集群服务
[root@hop01 .ssh]# ssh-copy-id hop01
[root@hop01 .ssh]# ssh-copy-id hop02
[root@hop01 .ssh]# ssh-copy-id hop03
...在hop01免密登录到hop02
[root@hop01 ~]# ssh hop02
这里针对hop01服务,在hop02和hop03服务都要执行该操作。
5、同步时间
ntp组件安装
# 安装
yum install ntpdate ntp -y
# 查看
rpm -qa|grep ntp
基础管理命令
# 查看状态
service ntpd status
# 启动
service ntpd start
# 开机启动
chkconfig ntpd on
修改时间服务hop01
# 修改ntp配置
vim /etc/ntp.conf
# 添加内容
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
server 127.0.0.1
fudge 127.0.0.1 stratum 10
修改hop02\hop03时间机制,从hop01同步时间,并注销网络获取时间的机制。
server 192.168.37.133
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst
编写定时任务
[root@hop02 ~]# crontab -e
*/10 * * * * /usr/sbin/ntpdate hop01
修改hop02和hop03服务时间
# 指定时间
date -s "2018-05-20 13:14:55"
# 查看时间
date
这样时间会基于hop01服务的时间不断的更正或同步。
6、环境清理
从伪分布式环境虚拟机克隆三台Centos7服务,删除原来hadoop环境配置的data和log文件夹。
[root@hop02 hadoop2.7]# rm -rf data/ logs/
二、集群环境搭建
1、集群配置概览
服务列表 | HDFS文件 | YARN调度 | 单服务 |
---|---|---|---|
hop01 | DataNode | NodeManager | NameNode |
hop02 | DataNode | NodeManager | ResourceManager |
hop03 | DataNode | NodeManager | SecondaryNameNode |
2、修改配置
vim core-site.xml
<property><name>fs.defaultFS</name><value>hdfs://hop01:9000</value>
</property>
这里三台服务都需要分别指定当前主机名称。
vim hdfs-site.xml
<property><name>dfs.replication</name><value>3</value>
</property><property><name>dfs.namenode.secondary.http-address</name><value>hop03:50090</value>
</property>
这里修改副本数为3,并指定SecondaryNameNode服务,三台服务同样修改指定SecondaryNameNode在hop03服务上。
vim yarn-site.xml
<property><name>yarn.resourcemanager.hostname</name><value>hop02</value>
</property>
指定ResourceManager服务在hop02上。
vim mapred-site.xml
<!-- 服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hop01:10020</value>
</property><!-- 服务器web端地址 -->
<property><name>mapreduce.jobhistory.webapp.address</name><value>hop01:19888</value>
</property>
指定相关web端查看地址在服务hop01上。
3、集群服务配置
路径:/opt/hadoop2.7/etc/hadoop
文件:vim slaves
hop01
hop02
hop03
这里配置三台服务的集群列表。同步修改其他服务相同配置。
4、格式化NameNode
注意这里NameNode配置在hop01服务上。
[root@hop01 hadoop2.7]# bin/hdfs namenode -format
5、启动HDFS
[root@hop01 hadoop2.7]# sbin/start-dfs.sh
Starting namenodes on [hop01]
hop01: starting namenode
hop03: starting datanode
hop02: starting datanode
hop01: starting datanode
Starting secondary namenodes [hop03]
hop03: starting secondarynamenode
注意看这里的打印信息,和配置完全吻合。namenodes在hop01上启动,secondary-namenodes在hop03上启动,可以通过JPS命令到各个服务查看验证。
6、启动YARN
注意Yarn配置在hop02服务上,所以在hop02服务执行启动命令。
[root@hop02 hadoop2.7]# sbin/start-yarn.sh
starting yarn daemons
starting resourcemanager
hop03: starting nodemanager
hop01: starting nodemanager
hop02: starting nodemanager,
注意这里的启动打印日志,至此集群规划的服务都启动完毕。
[root@hop01 hadoop2.7]# jps
4306 NodeManager
4043 DataNode
3949 NameNode
[root@hop02 hadoop2.7]# jps
3733 ResourceManager
3829 NodeManager
3613 DataNode
[root@hop03 hadoop2.7]# jps
3748 DataNode
3928 NodeManager
3803 SecondaryNameNode
查看各个服务下的集群进程,与规划配置一致。
7、Web端界面
NameNode:http://hop01:50070
SecondaryNameNode:http://hop03:50090
三、源代码地址
GitHub·地址
https://github.com/cicadasmile/big-data-parent
GitEE·地址
https://gitee.com/cicadasmile/big-data-parent
推荐阅读:编程体系整理
序号 | 项目名称 | GitHub地址 | GitEE地址 | 推荐指数 |
---|---|---|---|---|
01 | Java描述设计模式,算法,数据结构 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆☆ |
02 | Java基础、并发、面向对象、Web开发 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆ |
03 | SpringCloud微服务基础组件案例详解 | GitHub·点这里 | GitEE·点这里 | ☆☆☆ |
04 | SpringCloud微服务架构实战综合案例 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆☆ |
05 | SpringBoot框架基础应用入门到进阶 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆ |
06 | SpringBoot框架整合开发常用中间件 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆☆ |
07 | 数据管理、分布式、架构设计基础案例 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆☆ |
08 | 大数据系列、存储、组件、计算等框架 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆☆ |
Hadoop框架:集群模式下分布式环境搭建相关推荐
- hadoop历史背景hdfs分布式文件系统hadoop的集群模式单机模式伪分布
hadoop历史背景&hdfs分布式文件系统&hadoop的集群模式&单机模式&伪分布 1.hadoop的历史背景 lucense ---->nutch----& ...
- RSF-Center,集群模式下-协调数据结构
为什么80%的码农都做不了架构师?>>> RSF是一个轻量化的分布式服务框架.支持点对点调用,也支持分布式调用.典型的应用场景是,将同一个服务部署在多个Server上提供 re ...
- 如何访问集群中指定的服务器,【Nacos源码之配置管理 六】集群模式下服务器之间是如何互相感知的...
前言 我们用Nacos当配置中心的时候,上一篇文章中 [Nacos源码之配置管理 五]为什么把配置文件Dump到磁盘中 知道了,所有的配置文件都会Dump到服务器的本地磁盘中, 那么集群模式下: 服务 ...
- strom-1.1.0模拟单词统计功能,Spout编写,Bolt编写,TopologyDriver编写,本地模式运行,集群模式运行,集群模式下看输出结果
统计文本中的单词出现的频率,其中文本内容如下: 创建项目 项目结构如下: 创建pom.xml,代码如下: <?xml version="1.0" encoding=" ...
- 关于Redis集群模式下,使用mget通过keys批量获取value时的解决方案
关于Redis集群模式下,使用mget通过keys批量获取value时的解决方案 今天在做项目的时候,需要使用到mget命令,通过一个批量的key去获取对应的value集合,但是取值的时候,报了这个错 ...
- zookeeper专题:zookeeper集群模式下,leader选举流程分析
文章目录 Zookeeper 集群模式一共有三种类型的角色 1. zookeeper启动时leader选举流程 1.1 加载配置文件,设置基本信息 1.2 指定快速选举算法,启动多级队列.线程 1.3 ...
- quartz集群模式下qrtz_triggers表trigger_state变ERROR分析
最近在正式环境新增了一个定时任务,项目启动后,新增的任务总是跑一两次就不跑了,排查发现trigger_state变为ERROR了. 一.Quartz重要表含义 1)qrtz_calendars:以Bl ...
- redis分布式锁 在集群模式下如何实现_收藏慢慢看系列:简洁实用的Redis分布式锁用法...
在微服务中很多情况下需要使用到分布式锁功能,而目前比较常见的方案是通过Redis来实现分布式锁,网上关于分布式锁的实现方式有很多,早期主要是基于Redisson等客户端,但在Spring Boot2. ...
- Hadoop集群搭建(五:Hadoop HA集群模式的安装)
实验 目的 要求 目的: 1.Hadoop的高可用完全分布模式的安装和验证 要求: 完成Hadoop的高可用完全分布模式的安装: Hadoop的相关服务进程能够正常的启动: HDFS能够正常的使用: ...
最新文章
- webcdn故障处理一例
- Linux0.11小结
- jQuery 插入元素
- Linux有待完善的小缺陷的累记
- 杭电1262--寻找素数对(打表)
- 前端学习(523):双飞翼布局
- mysql change index_MySQL · 引擎特性 · Innodb change buffer介绍
- vue如何输出一个值_如何利用vue获取当前点击的元素并传值(图文教程) -
- 最佳论文!牛津大学揭示梯度下降复杂度理论
- PyTorch 1.0 中文官方教程:ONNX 现场演示教程
- day02-虚拟环境安装
- 【odoo12填坑日记】field.selection引号使用规范
- 查看windows所有exe的启动参数。
- win10 串口驱动下载链接
- 《Openwrt开发》第四章:newifi3 实现内网穿透(n2n)
- VScode+esp-idf:编译腾讯物联网控制台ESP32例程(esp-qcloud)
- 数据结构之树的相关名字解释
- Gamemaker studio2经验(1)——右键人物移动逻辑
- 块、内联、内联块都有哪些及其特点
- C\C++中计时、延时函数