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

一、环境说明

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

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

IP     角色
10.10.50.133 master
10.10.125.156 slave1
10.10.114.112 slave2

三个节点均使用CentOS 6.5系统,为了便于维护,集群环境配置项最好使用相同用户名、用户密码、相同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-8u111-linux-x64.rpm

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

二、准备工作

2.1 安装JDK

在三台机器上配置JDK环境,下载 jdk-8u111-linux-x64.rpm 文件直接安装:

# rpm -ivh jdk-8u111-linux-x64.rpm

修改配置文件 vim /etc/profile:

export JAVA_HOME=/usr/java/jdk1.8.0_111 # 不同的jdk路径需要修改此项
export PATH=$JAVA_HOME/bin:$PATH
export HADOOP_HOME=/data/yunva/hadoop-2.7.3
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_SSH_OPTS="-p 48490" # 非默认ssh的22号端口需要添加此项,表示端口为48490

因本次部署环境,jdk不同所以需要单独修改配置:
master
export JAVA_HOME=/usr/java/jdk1.8.0_111

slave1
export JAVA_HOME=/usr/java/jdk1.8.0_65

slave2
export JAVA_HOME=/usr/java/jdk1.8.0_102

然后重新加载配置文件使之生效:

# source /etc/profile

2.2 添加Hosts映射关系

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

# vim /etc/hosts

添加的内容如下:

10.10.50.133 master
10.10.125.156 slave1
10.10.114.112 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

对于 slave1 和 slave2,进行无密码自登陆设置,操作同上。

也有个快捷的操作方式,当所有的服务器都ssh-keygen -t rsa生成公钥后,在master上操作无密码登陆master/slave1/slave2成功后,直接拷贝给其他主机即可
然后,将证书文件复制到其他机器的用户主目录下
# scp -P 48490 authorized_keys master:/root/.ssh/
# scp -P 48490 authorized_keys slave1:/root/.ssh/
# scp -P 48490 authorized_keys slave2:/root/.ssh/

三、Hadoop集群安装配置

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

3.1 修改hadoop配置

配置文件都在/data/yunva/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>
</configuration>

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

3.1.3 hdfs-site.xml
# 创建hadoop的数据和用户目录
# mkdir -p /data/yunva/hadoop-2.7.3/hadoop/name
# mkdir -p /data/yunva/hadoop-2.7.3/hadoop/data

<configuration>
   <property>
        <name>dfs.name.dir</name>
        <value>/data/yunva/hadoop-2.7.3/hadoop/name</value>
    </property>
    <property>
        <name>dfs.data.dir</name>
        <value>/data/yunva/hadoop-2.7.3/hadoop/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
</configuration>

3.1.4 mapred-site.xml

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

<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value>master:9001</value>
    </property>
</configuration>

3.1.5 修改slaves文件,localhost改为
# cat /data/yunva/hadoop-2.7.3/etc/hadoop/slaves

slave1
slave2

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

scp -r /data/yunva/hadoop-2.7.3/     slave1:/data/yunva
scp -r /data/yunva/hadoop-2.7.3/     slave2:/data/yunva
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

hbase-env.sh(java路径不同需要修改)

master

export JAVA_HOME=/usr/java/jdk1.8.0_111
export HBASE_CLASSPATH=/data/yunva/hadoop-2.7.3/etc/hadoop/
export HBASE_MANAGES_ZK=false
export HBASE_SSH_OPTS="-p 48490"  # 非默认ssh的22端口需要添加此项表示ssh为48490

slave1
export JAVA_HOME=/usr/java/jdk1.8.0_65
export HBASE_CLASSPATH=/data/yunva/hadoop-2.7.3/etc/hadoop/
export HBASE_MANAGES_ZK=false
export HBASE_SSH_OPTS="-p 48490"

slave2

export JAVA_HOME=/usr/java/jdk1.8.0_102
export HBASE_CLASSPATH=/data/yunva/hadoop-2.7.3/etc/hadoop/
export HBASE_MANAGES_ZK=false
export HBASE_SSH_OPTS="-p 48490"

四、ZooKeeper集群安装配置

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

五、HBase集群安装配置

配置文件目录/data/yunva/hbase-1.2.5/conf

5.1 hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_111  # 如果jdk路径不同需要单独配置
export HBASE_CLASSPATH=/data/yunva/hadoop-2.7.3/etc/hadoop/
export HBASE_MANAGES_ZK=false
export HBASE_SSH_OPTS="-p 48490"  # ssh端口非默认22需要修改

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.property.clientPort</name>
        <value>2181</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>master,slave1,slave2</value>
    </property>
    <property>
        <name>zookeeper.session.timeout</name>
        <value>60000000</value>
    </property>
    <property>
        <name>dfs.support.append</name>
        <value>true</value>
    </property>
</configuration>

5.3 更改 regionservers

在 regionservers 文件中添加slave列表:

slave1
slave2

5.4 分发并同步安装包

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

$ scp -P 48490 -r /data/yunva/hbase-1.2.5  slave1:/data/yunva/
$ scp -P 48490 -r /data/yunva/hbase-1.2.5  slave2:/data/yunva/

六、启动集群

1. 启动ZooKeeper

/data/yunva/zookeeper-3.4.6/bin/zkServer.sh start

2. 启动hadoop

/data/yunva/hadoop-2.7.3/sbin/start-all.sh

3. 启动hbase

/data/yunva/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进行验证
# cd /data/yunva/hbase-1.2.5/
[root@test6_vedio hbase-1.2.5]# bin/hbase shell
2017-04-28 09:51:51,479 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/data/yunva/hbase-1.2.5/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/data/yunva/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 2017

hbase(main):001:0> list
TABLE
0 row(s) in 0.2620 seconds

=> []

hbase(main):003:0> create 'scores', 'grade', 'course'
0 row(s) in 1.3300 seconds

=> Hbase::Table - scores
hbase(main):004:0> list
TABLE
scores
1 row(s) in 0.0100 seconds

=> ["scores"]

6. 进入zookeeper shell进行验证

[root@test6_vedio zookeeper-3.4.6]# bin/zkCli.sh -server

2017-04-28 10:04:33,083 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
2017-04-28 10:04:33,088 [myid:] - INFO [main:Environment@100] - Client environment:host.name=test6_vedio
2017-04-28 10:04:33,088 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.8.0_111
2017-04-28 10:04:33,091 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2017-04-28 10:04:33,091 [myid:] - INFO [main:Environment@100] - Client environment:java.home=/usr/java/jdk1.8.0_111/jre
2017-04-28 10:04:33,091 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=/data/yunva/zookeeper-3.4.6/bin/../build/classes:/data/yunva/zookeeper-3.4.6/bin/../build/lib/*.jar:/data/yunva/zookeeper-3.4.6/bin/../lib/slf4j-log4j12-1.6.1.jar:/data/yunva/zookeeper-3.4.6/bin/../lib/slf4j-api-1.6.1.jar:/data/yunva/zookeeper-3.4.6/bin/../lib/netty-3.7.0.Final.jar:/data/yunva/zookeeper-3.4.6/bin/../lib/log4j-1.2.16.jar:/data/yunva/zookeeper-3.4.6/bin/../lib/jline-0.9.94.jar:/data/yunva/zookeeper-3.4.6/bin/../zookeeper-3.4.6.jar:/data/yunva/zookeeper-3.4.6/bin/../src/java/lib/*.jar:/data/yunva/zookeeper-3.4.6/bin/../conf:
2017-04-28 10:04:33,091 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2017-04-28 10:04:33,091 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2017-04-28 10:04:33,091 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=<NA>
2017-04-28 10:04:33,092 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Linux
2017-04-28 10:04:33,092 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=amd64
2017-04-28 10:04:33,092 [myid:] - INFO [main:Environment@100] - Client environment:os.version=2.6.32-431.11.25.el6.ucloud.x86_64
2017-04-28 10:04:33,092 [myid:] - INFO [main:Environment@100] - Client environment:user.name=root
2017-04-28 10:04:33,092 [myid:] - INFO [main:Environment@100] - Client environment:user.home=/root
2017-04-28 10:04:33,092 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=/data/yunva/zookeeper-3.4.6
2017-04-28 10:04:33,094 [myid:] - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@446cdf90
Welcome to ZooKeeper!
2017-04-28 10:04:33,128 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@975] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2017-04-28 10:04:33,209 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@852] - Socket connection established to localhost/127.0.0.1:2181, initiating session
2017-04-28 10:04:33,218 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1235] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x35bb23d68ba0003, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] ls /

zookeeper hbase

[zk: localhost:2181(CONNECTED) 0] ls /hbase
[replication, meta-region-server, rs, splitWAL, backup-masters, table-lock, flush-table-proc, region-in-transition, online-snapshot, master, running, recovering-regions, draining, namespace, hbaseid, table]

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

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

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

---------------------
作者:郑子明
来源:CSDN
原文:https://blog.csdn.net/reblue520/article/details/70888850

Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境的更多相关文章

  1. Hadoop2.2.0--Hadoop Federation、Automatic HA、Yarn完全分布式集群结构

    Hadoop有很多的上场时间,与系统上线.手头的事情略少.So,抓紧时间去通过一遍Hadoop2在下面Hadoop联盟(Federation).Hadoop2可用性(HA)及Yarn的全然分布式配置. ...

  2. spark2.0.2基于hadoop2.4搭建分布式集群

    一.Scala安装 因为spark的版本原因,所以Scala我用的2.11.7. 下载目录http://www.scala-lang.org/download/ 拷贝到要安装的地址,我的地址是/usr ...

  3. hadoop2.7全然分布式集群搭建以及任务測试

    要想深入的学习hadoop数据分析技术,首要的任务是必需要将hadoop集群环境搭建起来,本文主要讲述怎样搭建一套hadoop全然分布式集群环境. 环境配置:2台64位的redhat6.5 +  1台 ...

  4. Hadoop2.8分布式集群安装与测试

    1.hadoop2.x 概述 个).每一个都有相同的职能.一个是active状态的,一个是standby状态的.当集群运行时,只有active状态的NameNode是正常工作的,standby状态的N ...

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

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

  6. hadoop-2.6.0-cdh5.4.5.tar.gz(CDH)的3节点集群搭建(含zookeeper集群安装)

    前言 本人呕心沥血所写,经过好一段时间反复锤炼和整理修改.感谢所参考的博友们!同时,欢迎前来查阅赏脸的博友们收藏和转载,附上本人的链接 http://www.cnblogs.com/zlslch/p/ ...

  7. hadoop-2.6.0.tar.gz + spark-1.5.2-bin-hadoop2.6.tgz的集群搭建(单节点)

    前言 本人呕心沥血所写,经过好一段时间反复锤炼和整理修改.感谢所参考的博友们!同时,欢迎前来查阅赏脸的博友们收藏和转载,附上本人的链接.http://www.cnblogs.com/zlslch/p/ ...

  8. 基于hadoop2.6.0搭建5个节点的分布式集群

    1.前言 我们使用hadoop2.6.0版本配置Hadoop集群,同时配置NameNode+HA.ResourceManager+HA,并使用zookeeper来管理Hadoop集群 2.规划 1.主 ...

  9. hadoop2集群环境搭建

    在查询了很多资料以后,发现国内外没有一篇关于hadoop2集群环境搭建的详细步骤的文章. 所以,我想把我知道的分享给大家,方便大家交流. 以下是本文的大纲: 1. 在windows7 下面安装虚拟机2 ...

随机推荐

  1. 内置系统账户:Local system/Network service/Local Service 区别

    参考文献: http://www.cnblogs.com/xianspace/archive/2009/04/05/1429835.html 前言 今天在安装sqlserver2008 r2的时候,在 ...

  2. IntelliJ_2017_安装Grep Console插件(console输出内容加颜色)

      官网下载:https://plugins.jetbrains.com/plugin/7125-grep-console   一.安装Grep Console插件     二.设置不同日志类型的不同 ...

  3. python实战--csdn博客专栏下载器

    打算利用业余时间好好研究Python的web框架--web.py,深入剖析其实现原理,体会web.py精巧之美.但在研究源码的基础上至少得会用web.py.思前想后,没有好的Idea,于是打算开发一个 ...

  4. Linux性能分析流程图

  5. Use Multiple log4net Outputs from One Application

    Introduction This is an article simply to demonstrate how to use several output log files depending ...

  6. JNI学习小结

    Java中类型与C/C++中对应关系   Java中的类的对应   Sign签名, 用来识别对应各个方法. JDK下的javap.exe能输出签名.用法javap -s -p 完整类名     下面是 ...

  7. slf4j-api、slf4j-log4j12、log4j之间关系

    1. slf4j-api slf4j:Simple Logging Facade for Java,为java提供的简单日志Facade.Facade门面,更底层一点说就是接口.它允许用户以自己的喜好 ...

  8. epoll的由来

    reference https://www.zhihu.com/question/20122137 感谢 @静海听风 @蓝形参 数据流有两个重要的参与者: 1.往流中写入数据者 2.从流中读取数据者 ...

  9. lua -- 生成协议

    这是爬塔的协议 <?xml version="1.0" encoding="utf-8" ?> <coder name="Tower ...

  10. T-Pot平台cowrie蜜罐暴力破解探测及实现自动化邮件告警

    前言:Cowrie是基于kippo更改的中交互ssh蜜罐, 可以对暴力攻击账号密码等记录,并提供伪造的文件系统环境记录黑客操作行为, 并保存通过wget/curl下载的文件以及通过SFTP.SCP上传 ...