Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境

一、环境说明

个人理解:
zookeeper可以独立搭建集群,hbase本身不能独立搭建集群需要和hadoop和hdfs整合

集群环境至少需要3个节点(也就是3台服务器设备):1个Master,2个Slave,节点之间局域网连接,可以相互ping通,下面举例说明,配置节点IP分配如下:

IP     角色
192.168.152.39 master
192.168.152.29 slave
192.168.152.45 slave2

三个节点均使用CentOS 6.7系统,为了便于维护,集群环境配置项最好使用相同用户名、用户密码、相同Hadoop、Hbase、zookeeper目录结构。

注:
主机名和角色最好保持一致,如果不同也没关系,只需要在/etc/hosts中配置好对应关系即可
可以通过编辑/etc/sysconfig/network文件来修改 hostname

软件包下载准备:
hadoop-2.7.3.tar.gz
hbase-1.2.5-bin.tar.gz
zookeeper-3.4.6.tar.gz
jdk-8u101-linux-x64.tar.gz

因为是测试环境此次都使用root来操作,如果是生产环境建议使用其他用户如hadoop,需要给目录授权为hadoop
chown -R hadoop.hadoop /usr/hadoop-2.7.3

二、准备工作

2.1 安装JDK

在三台机器上配置JDK环境,下载jdk-8u101-linux-x64.tar.gz 文件解压:
tar -zxvf jdk-8u101-linux-x64.tar.gz
修改配置文件 vim /etc/profile:

#JAVA_HOME
JAVA_HOME=/usr/java/jdk1.8.0_101
JRE_HOME=/usr/java/jdk1.8.0_101/jre
#PATH=$JAVA_HOME/bin:$PATH
#export PATH=$PATH#hadoop
HADOOP_HOME=/usr/hadoop-2.7.3#zookeeper
ZOOKEEPER_HOME=/usr/zookeeper-3.4.6PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
export PATH=$PATH

在其他两台机器中同样安装java

然后重新加载配置文件使之生效:
# source /etc/profile

2.2 添加Hosts映射关系

分别在三个节点上添加hosts映射关系:

# vim /etc/hosts
添加的内容如下:

192.168.152.39 master
192.168.152.29 slave
192.168.152.45 slave2

2.3 集群之间SSH无密码登陆

CentOS默认安装了ssh,如果没有你需要先安装ssh 。

集群环境的使用必须通过ssh无密码登陆来执行,本机登陆本机必须无密码登陆,主机与从机之间必须可以双向无密码登陆,从机与从机之间无限制。

2.3.1 设置master无密码自动登陆slave1和slave2

主要有三步:
①生成公钥和私钥
②导入公钥到认证文件
③更改权限

# ssh-keygen -t rsa
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# chmod 700 ~/.ssh && chmod 600 ~/.ssh/*

测试,第一次登录可能需要yes确认,之后就可以直接登录了:

# ssh master
# ssh slave1
# ssh slave2

scp ~/.ssh/id_rsa.pub root@192.168.152.29:/root

在29的机器上执行:cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

对于 slave1 和 slave2,进行无密码自登陆设置,操作同上。
也有个快捷的操作方式,当所有的服务器都ssh-keygen -t rsa生成公钥后,在master上操作无密码登陆master/slave1/slave2成功后,直接拷贝给其他主机即可

三、Hadoop集群安装配置

这里会将hadoop、hbase、zookeeper的安装包都解压到/usr文件夹下,并重命名
安装目录如下:
/usr/hhadoop-2.7.3
/usr/hbase-1.2.5
/usr/zookeeper-3.4.6

3.1 修改hadoop配置

配置文件都在/usr/hadoop-2.7.3/etc/hadoop/目录下

3.1.1 core-site.xml

<configuration><property><name>fs.default.name</name><value>hdfs://master:9000</value></property><property><name>io.file.buffer.size</name><value>131072</value></property><!-- 指定hadoop临时目录,自行创建 --><property><name>hadoop.tmp.dir</name><value>/data/hadoop</value></property>
</configuration>

3.1.2 hadoop-env.sh

添加JDK路径,如果不同的服务器jdk路径不同需要单独修改:
export JAVA_HOME=/usr/java/jdk1.8.0_101

3.1.3 hdfs-site.xml

<configuration><property><name>dfs.replication</name><value>2</value></property><property><name>dfs.permissions</name><value>false</value></property>
</configuration>

3.1.4 mapred-site.xml

# mv mapred-site.xml.template mapred-site.xml

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>

3.1.6 yarn-site.xml

<configuration><!-- Site specific YARN configuration properties --><property><name>yarn.resourcemanager.hostname</name><value>master</value></property><!-- reducer获取数据的方式 --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>

3.1.5 修改slaves文件,localhost改为

# cat /data/yunva/hadoop-2.7.3/etc/hadoop/slaves
slave1
slave2

注意:三台机器上都进行相同的配置,都放在相同的路径下(如果jdk路径不同需要单独修改)
使用scp命令进行从本地到远程(或远程到本地)的轻松文件传输操作:

scp -r /usr/hadoop-2.7.3/     slave1:/usr
scp -r /usr/hadoop-2.7.3/     slave2:/usr

3.2 启动hadoop集群

进入master的/data/yunva/hadoop-2.7.3/目录,执行以下操作:
# bin/hadoop namenode -format
格式化namenode,第一次启动服务前执行的操作,以后不需要执行。
然后启动hadoop:
# sbin/start-all.sh
通过jps命令能看到除jps外有3个进程:
# jps

30613 NameNode
30807 SecondaryNameNode
887 Jps
30972 ResourceManager

四、ZooKeeper集群安装配置

可参考 centos6.5环境下zookeeper-3.4.6集群环境部署及单机部署详解http://blog.csdn.NET/reblue520/article/details/52279486

https://my.oschina.net/duanvincent/blog/914794

五、HBase集群安装配置

配置文件目录/usr/hbase-1.2.5/conf

5.1 hbase-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_101  # 如果jdk路径不同需要单独配置

export HBASE_MANAGES_ZK=false 不使用默认的zookeeper

5.2 hbase-site.xml(保持一致)

<configuration>
<property><name>hbase.rootdir</name><value>hdfs://master:9000/hbase</value>
</property>
<property><name>hbase.master</name><value>master</value>
</property>
<property><name>hbase.cluster.distributed</name><value>true</value>
</property>
<property><name>hbase.zookeeper.quorum</name><value>slave,slave2</value>
</property>
<property><name>hbase.zookeeper.property.dataDir</name><value>/usr/zookeeper-3.4.6/zookeeper-data</value>
</property>
</configuration>

5.3 更改 regionservers

master
slave
slave2

5.4 分发并同步安装包

将整个hbase安装目录都拷贝到所有slave服务器:

$ scp  -r /usr/hbase-1.2.5  root@192.168.152.29:/usr
$ scp  -r /usr/hbase-1.2.5  root@192.168.152.45:/usr

六、启动集群

1. 启动ZooKeeper

/usr/zookeeper-3.4.6/bin/zkServer.sh start

2. 启动hadoop

/usr/hadoop-2.7.3/sbin/start-all.sh

3. 启动hbase

/usr/hbase-1.2.5/bin/start-hbase.sh

4. 启动后,master上进程和slave进程列表

[root@master ~]# jps
Jps
SecondaryNameNode   # hadoop进程
NameNode            # hadoop master进程
ResourceManager     # hadoop进程
HMaster             # hbase master进程
ZooKeeperMain      # zookeeper进程[root@slave1 ~]# jps
Jps
ZooKeeperMain       # zookeeper进程
DataNode             # hadoop slave进程
HRegionServer        # hbase slave进程

5. 进入hbase shell进行验证

[root@master bin]# ./hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/hbase-1.2.5/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.5, rd7b05f79dee10e0ada614765bb354b93d615a157, Wed Mar  1 00:34:48 CST 2017hbase(main):001:0> status
1 active master, 0 backup masters, 3 servers, 0 dead, 1.0000 average loadhbase(main):002:0>

6. 进入zookeeper shell进行验证

如果访问默认的http管理端口页面可以看到集群的情况
hadoop:
http://IP:8088/

hbase:
http://IP:16010/master-status

hdfs:

http://IP:50070/dfshealth.html#tab-overview

org.apache.hadoop.ipc.Client: Retrying connect to server异常的解决

检查发现是DataNode一直连接不到NameNode。
检查各个节点在etc/hosts中的配置是否有127.0.1.1 xxxxxx。如果有把其屏蔽或者删除,重启各节点即可。
原因:127.0.1.1是ubuntu中的本地回环。这个造成了hadoop解析出现问题。这个设置应该是在做伪分布式的hadoop集群的时候,留下来的。

Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境相关推荐

  1. Hadoop2.x部署之完全分布式集群环境搭建

    一.分布式部署概述 Hadoop环境的搭建有三种方式: 本地环境搭建伪分布式环境搭建完全分布式环境搭建集群 在前面的文章中,详细描述了如何搭建本地环境[https://blog.csdn.net/qq ...

  2. hadoop-2.7.1+zookeeper-3.4.8+hbase-1.2.1+apache-hive-2.0.0完全分布式集群

    一.环境准备 1.查看系统版本 cat /etc/issue CentOS release 6.8 (Final) 2.软件准备 软件自行官网下载,但自己要统一规划方便后面操作,本文软件源目录/usr ...

  3. Hadoop-2.7.1+Zookeeper-3.4.8+HBase-1.2.1+Hive-2.0.0完全分布式集群

    网上有的hadoop,zookeeper,hbase,apache-hive相关文档,具体大家可以百度具体了解,本文不多做介绍,本文从最基本的环境搭建入手,纯环境搭建. 搭建次环境唯一要考虑就是软件相 ...

  4. Zookeeper3.4.11+Hadoop2.7.6+Hbase2.0.0搭建分布式集群

    2019独角兽企业重金招聘Python工程师标准>>> 有段时间没更新博客了,趁着最近有点时间,来完成之前关于集群部署方面的知识.今天主要讲一讲Zookeeper+Hadoop+Hb ...

  5. hadoop1.2.1+zookeeper3.4.6+hbase0.94集群环境搭建

    hadoop集群环境搭建 参考前面的hadoop集群搭建文档,搭建了三个服务器的集群如下 feixu-master     namenode, secondaryNamenode, jobtracke ...

  6. 搭建hbase1.2.5完全分布式集群

    简介 有一段时间,没写博客了,因为公司开发分布式调用链追踪系统,用到hbase,在这里记录一下搭建过程 1.集群如下: ip 主机名 角色 192.168.6.130 node1.jacky.com ...

  7. # 从零開始搭建Hadoop2.7.1的分布式集群

    Hadoop 2.7.1 (2015-7-6更新),Hadoop的环境配置不是特别的复杂,可是确实有非常多细节须要注意.不然会造成很多配置错误的情况.尽量保证一次配置正确防止重复改动. 网上教程有非常 ...

  8. 【转】Hadoop分布式集群搭建hadoop2.6+Ubuntu16.04

    https://www.cnblogs.com/caiyisen/p/7373512.html 前段时间搭建Hadoop分布式集群,踩了不少坑,网上很多资料都写得不够详细,对于新手来说搭建起来会遇到很 ...

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

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

最新文章

  1. 7、 MySQL锁机制:数据库核心技术之一
  2. Python3 pickle模块的使用详解
  3. c语言形参指针 实参数组,《C语言程序设计》中的指针形参和函数体中数组实参问题的教学研究.pdf...
  4. java逻辑量_java – 增量逻辑
  5. 宽带和流量是分开的吗_为什么现在的手机套餐与宽带越来越贵,只是因为建设5G吗?...
  6. NB-IOT(5)---关于NB-IoT的十大问题和答案
  7. 【TensorFlow-windows】(四) CNN(卷积神经网络)进行手写数字识别(mnist)
  8. 23.备忘录模式(Memento Pattern)
  9. 【codeforces】【比赛题解】#937 CF Round #467 (Div. 2)
  10. 实习踩坑之路:日期计算错误,Java8API导致Unsupported unit: Seconds,计算当前时间到凌晨00:00的计算方法
  11. bzoj 1924 所驼门王的宝藏
  12. 软件天才都是训练出来的
  13. word参考文献后面空格太大
  14. 北科大计算机学院何杰,北京科技大学计算机科学与技术系硕士生导师何杰_计算机考研导师...
  15. 第九届蓝桥杯 b组 明码
  16. Android MPAndroidChart之柱状图BarChart
  17. 外卖cps项目的玩法淘宝客经验分享
  18. 物联网开发笔记(30)- 使用Micropython开发ESP32开发板之控制240x240的oled屏幕显示二维码(ST7789芯片)
  19. input的type属性整理
  20. android mma

热门文章

  1. ASP.NET Eval如何进行数据绑定
  2. Innodb隔离级别的实现原理
  3. Apache启动过程(PHP_MINIT_FUNCTION的调用)
  4. PHP性能追踪及分析工具xhprof的安装与使用
  5. Git多个commit合并成一个【中间提交合并 尾部提交合并】
  6. 通信原理包络是什么意思_罗茨鼓风机的应用及原理
  7. a7100换电池_动动手你也行 篇十四:冲动是魔鬼——单反电池换芯失败记
  8. 右键快捷VsCode
  9. centos mysql php tomcat_centos 一键部署安装nginx,mysql,php,apache,tomcat,redis等包合集
  10. fiddler设置中文版本_教你下载iOS老版本应用