基于hadoop2.6.0搭建5个节点的分布式集群
1、前言
我们使用hadoop2.6.0版本配置Hadoop集群,同时配置NameNode+HA、ResourceManager+HA,并使用zookeeper来管理Hadoop集群
2、规划
1、主机规划
hadoop1/ 192.168.56.131 |
hadoop2/ 192.168.56.132 |
hadoop3/ 192.168.56.133 |
hadoop4/ 192.168.56.134 |
hadoop5/ 192.168.56.135 |
|
namenode |
是 |
是 |
否 |
否 |
否 |
datanode |
否 |
否 |
是 |
是 |
是 |
resourcemanager |
是 |
是 |
否 |
否 |
否 |
journalnode |
是 |
是 |
是 |
是 |
是 |
zookeeper |
是 |
是 |
是 |
是 |
是 |
Journalnode和ZooKeeper保持奇数个,最少不少于3个节点
2、软件规划
软件 |
版本 |
位数 |
说明 |
centos |
6.5 |
64 |
|
jdk |
1.7 |
64 |
稳定版本 |
zookeeper |
3.4.6 |
稳定版本 |
|
hadoop |
2.6.0 |
稳定版本 |
3、用户规划
节点名称 |
用户组 |
用户 |
密码 |
hadoop1 |
hadoop |
hadoop |
123456 |
hadoop2 |
hadoop |
hadoop |
123456 |
hadoop3 |
hadoop |
hadoop |
123456 |
hadoop4 |
hadoop |
hadoop |
123456 |
hadoop5 |
hadoop |
hadoop |
123456 |
4、目录规划
名称 |
路径 |
所有软件目录 |
/usr/hadoop/app/ |
所有数据和日志目录 |
/usr/hadoop/data/ |
3、集群安装前的环境检查
1、修改主机名
将5个节点分别修改为hadoop1、hadoop2、hadoop3、hadoop4、hadoop5
修改主机名,请参考“修改主机名”
2、hosts文件检查
所有节点(hadoop1、hadoop2、hadoop3、hadoop4、hadoop5)的hosts文件都要配置静态ip与hostname之间的对应关系
192.168.56.131 hadoop1
192.168.56.132 hadoop2
192.168.56.133 hadoop3
192.168.56.134 hadoop4
192.168.56.135 hadoop5
具体请参考,“配置hosts文件”
3、禁用防火墙
永久关闭hadoop1、hadoop2、hadoop3、hadoop4、hadoop5这5个节点的防火墙
具体请参考,“防火墙”
4、配置SSH免密码通信
下面对hadoop1节点上的root用户配置ssh
1、输入“ssh-keygen -t rsa”,生成秘钥
2、使用“cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys”命令,把公钥复制到认证文件(authorized_keys)中,如下所示
3、确保.ssh目录的权限是700(使用chmod 700 .ssh命令修改),确保.ssh目录下所有文件(authorized_key、id_rsa、id_rsa.pub)的权限是600(使用chmod 600 .ssh/*命令修改),如下所示
4、输入“ssh hadoop1”登录,第一次登录需要输入yes,以后就不需要输入啦
对hadoop2、hadoop3、hadoop4、hadoop5这4个节点上的root用户也配置ssh,配置过程和上述在hadoop1上为root用户配置ssh的过程是一样
5、在hadoop2、hadoop3、hadoop4、hadoop5这4个节点上都执行一次“cat ~/.ssh/id_rsa.pub | ssh root@hadoop1 'cat >> ~/.ssh/authorized_keys'”命令,将这4个节点上的共钥id_ras.pub拷贝到hadoop1中的authorized_keys文件中,如下
拷贝完成后,hadoop1中的authorized_keys文件内容如下
6、将hadoop1中的authorized_keys文件分发到其他节点(hadoop2、hadoop3、hadoop4、hadoop5)上,在hadoop1上,使用scp -r ~/.ssh/authorized_keys root@主机名:~/.ssh/ 命令分发,效果如下
7、然后测测看看,出现如下信息,表示配置成功
说明:第一次可能会出现如下信息,输入yes就可以了,以后就不会再出现啦
5、脚本工具的使用
脚本工具已放在“shell脚本”目录下,如果安装目录有所变动,请根据需要修改
1、在hadoop1节点上,创建/usr/hadoop/tools目录,如下所示
2、将脚本通过rz命令上传到/usr/hadoop/tools目录
具体使用rz命令,请参考“上传下载rz、sz命令”
3、为后缀*.sh的文件增加执行权限
具体使用chmod命令,请参考“权限chmod命令”
4、将/usr/hadoop/tools目录配置到PATH路径中
6、集群安装前的环境配置
1、时钟同步
下面通过脚本对所有节点(hadoop1、hadoop2、hadoop3、hadoop4、hadoop5)进行时钟同步
1、输入runRemoteCmd.sh "cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime" all
2、输入runRemoteCmd.sh "ntpdate pool.ntp.org" all
具体请参考,“时钟同步”
2、创建hadoop用户组、hadoop用户以及设置密码
下面通过脚本在hadoop1、hadoop2、hadoop3、hadoop4、hadoop5这5个节点上分别创建hadoop用户组、hadoop用户以及设置密码123456
1、创建hadoop用户组
2、创建hadoop用户,并指定用户的组为hadoop
3、为hadoop用户设置密码123456
具体请参考,“用户相关命令”
3、创建/usr/hadoop/app/、/usr/hadoop/data/目录, 并修改/usr/hadoop目录的所有人,所有组为hadoop
下面通过脚本在hadoop1、hadoop2、hadoop3、hadoop4、hadoop5这5个节点上分别创建/usr/hadoop/app/、/usr/hadoop/data/目录,并修改/usr/hadoop目录的所有人,所有组为hadoop
1、创建/usr/hadoop/app/目录
2、创建/usr/hadoop/data/目录
3、修改/usr/hadoop目录的所有人,所有组为hadoop
具体请参考,“目录相关命令”
4、为每个节点中hadoop用户配置ssh,这里为了省事,直接拷贝相应节点中root用户的配置给对应的hadoop用户,默认hadoop家目录是/home/hadoop
接着随意选择一个节点,这里选择hadoop4节点,以hadoop用户登录,然后进行ssh测试,如果出现如下信息,表示配置成功
7、JDK安装
1、将本地下载好的jdk1.7,上传至hadoop1节点下的/home/hadoop/app目录中
可以使用rz上传,请参考“上传下载rz、sz命令”
2、解压jdk
删除安装包
3、配置环境变量
使配置文件生效
4、查看jdk是否安装成功
出现以上信息,说明配置成功
5、通过脚本,将hadoop1中的jdk安装包分发到其他节点上
切换到hadoop用户
在hadoop2, hadoop3, hadoop4, hadoop5节点上,重复步骤3、4,完成jdk配置
8、Zookeeper安装
1、上传zookeeper到hadoop1节点
1、将本地下载好的zookeeper-3.4.6.tar.gz安装包,上传至hadoop1节点下的/home/hadoop/app目录下
可以使用rz上传,请参考“上传下载rz、sz命令”
2、解压
3、删除zookeeper-3.4.6.tar.gz安装包
4、重命名
2、修改Zookeeper中的配置文件
1、复制一个zoo.cfg文件
2、编辑zoo.cfg文件
3、通过脚本deploy.sh将Zookeeper安装目录拷贝到其他节点上面,输入deploy.sh zookeeer/ /usr/hadoop/app slave,如下所示
4、通过脚本runRemoteCmd.sh在所有节点上面创建数据目录、日志目录
1、创建数据目录(runRemoteCmd.sh "mkdir -p /usr/hadoop/data/zookeeper/zkdata" all)
2、创建日志目录(runRemoteCmd.sh "mkdir -p /usr/hadoop/data/zookeeper/zkdatalog" all)
5、分别在hadoop1、hadoop2、hadoop3、hadoop4、hadoop5节点上,进入/usr/hadoop/data/zookeeper/zkdata目录下,创建文件myid,里面的内容分别填充为:1、2、3、4、5, 这里我们以hadoop1为例
1、进入/usr/hadoop/data/zookeeper/zkdata目录
2、编辑myid文件
3、按esc,输入“:x”保存退出
6、配置Zookeeper环境变量
1、vi /etc/profile, 输入内容,然后按esc,输入”:x”,保存退出,最后,输入source /etc/profile,使其立马生效
2、其他节点和hadoop1一样的配置
7、查看启动情况
1、查看hadoop1节点上Zookeeper是否配置成功
1、启动Zookeeper
2、出现如下信息,说明配置成功
3、关闭Zookeeper
2、查看所有节点上Zookeeper是否配置成功
1、使用runRemoteCmd.sh 脚本,启动所有节点上面的Zookeeper
2、查看所有节点上的QuorumPeerMain进程是否启动
3、查看所有节点上Zookeeper的状态
出现4个follower,一个leader,表示Zookeeper安装成功
9、hadoop安装
1、上传hadoop
1、将下载好的hadoop-2.6.0.tar.gz安装包,上传至hadoop1节点中的/usr/hadoop/app目录下
2、解压hadoop-2.6.0.tar.gz
3、删除hadoop-2.6.0.tar.gz安装包
4、重命名
2、配置hadoop家目录下的.bash_profile
3、hdfs
1、切换到/usr/hadoop/app/hadoop/etc/hadoop/目录下
2、配置hdfs
1、配置hadoop-env.sh
2、配置core-site.xml
3、配置hdfs-site.xml
4、配置 slave
3、向其他节点分发hadoop安装包
4、配置完毕后,启动hdfs
1、启动所有节点上面的Zookeeper进程(runRemoteCmd.sh "/usr/hadoop/app/zookeeper/bin/zkServer.sh start" zookeeper)
2、启动所有节点上面的journalnode进程(runRemoteCmd.sh "/usr/hadoop/app/hadoop/sbin/hadoop-daemon.sh start journalnode" all)
3、在hadoop1(主节点)上执行格式化
1、切换到/usr/hadoop/app/hadoop/
2、namenode格式化(bin/hdfs namenode -format)
3、格式化高可用(bin/hdfs zkfc -formatZK)
4、启动namenode
4、与此同时,需要在hadoop2(备节点)上执行数据同步(bin/hdfs namenode -bootstrapStandby)
5、hadoop2同步完数据后,紧接着在hadoop1节点上,按下ctrl+c来结束namenode进程。 然后关闭所有节点上面的journalnode进程(runRemoteCmd.sh "/usr/hadoop/app/hadoop/sbin/hadoop-daemon.sh stop journalnode" all)
6、如果上面操作没有问题,我们可以一键启动hdfs所有相关进程
7、验证是否启动成功
出现上面信息,说明启动成功
8、使用bin/hdfs haadmin -failover nameService1 nameService2命令,将hadoop2切换成active, hadoop1切换成standby,其中,nameService1、nameService2是在hdfs-site.xml文件中的dfs.ha.namenodes. clusterl指定的
效果如下:
9、上传文件至hdfs
如果以上操作都没有问题说明hdfs配置成功
4、yarn
1、yarn配置
1、配置mapred-site.xml(默认没有mapred-site.xml文件,从mapred-site.xml.template文件复制一份,改名为mapred-site.xml就可以)
2、配置yarn-site.xml
2、向其他节点同步yarn配置(deploy.sh etc/ /usr/hadoop/app/hadoop/ all)
3、启动YARN
1、在hadoop1节点上执行(sbin/start-yarn.sh)
2、在hadoop2节点上面执行(sbin/yarn-daemon.sh start resourcemanager)
3、查看web页面
1、访问hadoop1的web页面,如下
2、访问hadoop2的web页面,如下
4、查看ResourceManager状态
resourceManager的名字是yarn.resourcemanager.ha.rm-ids属性指定的
5、Wordcount示例测试
如果上面执行没有异常,说明YARN安装成功
至此,基于hadoop2.6搭建5个节点的分布式集群搭建完毕
基于hadoop2.6.0搭建5个节点的分布式集群的更多相关文章
- kafka系列一:单节点伪分布式集群搭建
Kafka集群搭建分为单节点的伪分布式集群和多节点的分布式集群两种,首先来看一下单节点伪分布式集群安装.单节点伪分布式集群是指集群由一台ZooKeeper服务器和一台Kafka broker服务器组成 ...
- 搭建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伪分布式集群 前言 最近在服务器上搭建了 ...
- Hadoop2学习记录(1) |HA完全分布式集群搭建
准备 系统:CentOS 6或者RedHat 6(这里用的是64位操作) 软件:JDK 1.7.hadoop-2.3.0.native64位包(可以再csdn上下载,这里不提供了) 部署规划 192. ...
- Centos7.5基于MySQL5.7的 InnoDB Cluster 多节点高可用集群环境部署记录
一. MySQL InnoDB Cluster 介绍MySQL的高可用架构无论是社区还是官方,一直在技术上进行探索,这么多年提出了多种解决方案,比如MMM, MHA, NDB Cluster, G ...
- mac 下搭建Elasticsearch 5.4.3分布式集群
一.集群角色 多机集群中的节点可以分为master nodes和data nodes,在配置文件中使用Zen发现(Zen discovery)机制来管理不同节点.Zen发现是ES自带的默认发现机制,使 ...
- Mac Hadoop2.6(CDH5.9.2)伪分布式集群安装
操作系统: MAC OS X 一.准备 1. JDK 1.8 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-dow ...
- Nginx之搭建反向代理实现tomcat分布式集群
参考博文: Nginx反向代理实现Tomcat分布式集群 1. jdk 安装 jdk 下载网址: http://www.oracle.com/technetwork/java/javase/downl ...
- 基于HBase0.98.13搭建HBase HA分布式集群
在hadoop2.6.0分布式集群上搭建hbase ha分布式集群.搭建hadoop2.6.0分布式集群,请参考“基于hadoop2.6.0搭建5个节点的分布式集群”.下面我们开始啦 1.规划 1.主 ...
随机推荐
- iOS: 学习笔记, Swift与Objective-C混用简明教程(转载)
Swift与Objective-C混用简明教程 转载自:https://github.com/lifedim/SwiftCasts/tree/master/000_mix_swift_objc 我想很 ...
- 2016022610 - redis列表命令集合
参考网址:http://www.yiibai.com/redis/redis_lists.html Redis列表是简单的字符串列表,排序插入顺序.您可以在头部或列表的尾部Redis的列表添加元素.列 ...
- ARM920T系统总线时序分析
一.系统总线时序图 二.分析 第一个时钟周期开始,系统地址总线给出需要访问的存储空间地址. 经过Tacs时间后,片选信号也相应给出,并且锁存当前地址线上地址信息. 再经过Tcso时间后,处理器给出当前 ...
- classpath目录
WEB-INF/ 是资源目录, 客户端不能直接访问, 这话是没错,不过现在的IDE编译器在编译时会把src下的文件(是文件,不是.java)移到WEB-INF/classes下.不过值得注意的是,sp ...
- bzoj 1503: [NOI2004]郁闷的出纳员 Treap
1503: [NOI2004]郁闷的出纳员 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 6263 Solved: 2190[Submit][Statu ...
- css的定位机制
牛腩新闻发不系统中遇到了CSS(Cascading style sheets),第一次接触,比较陌生还!因为CSS很多关于元素定位的问题,并且很多情况下元素的位置以像素精度计.一个不小心就很头疼,为此 ...
- Bzoj 2241: [SDOI2011]打地鼠 暴力,枚举,贪心
2241: [SDOI2011]打地鼠 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1022 Solved: 651[Submit][Status ...
- ubuntu14.04 wps字体缺失问题
字体 下载安装字体即可
- [转]关于strtok和strtok_r函数的深度研究
在linux环境下,字符串分割的函数中,大家比较常用的是strtok函数,这个函数用处很大,但也有一些问题,以下将深度挖掘一下这个函数的用法,原理,实现,其次,该函数是不可再入函数,但是在linux ...
- JavaEE学习笔记---数据库操作篇
测试JDBC和SQLServer的插入操作,源码如下: import java.sql.Connection;import java.sql.DriverManager;import java.sql ...