Hadoop集群之 ZooKeeper和Hbase环境搭建

原创 2016年05月07日 09:52:14

前面讲解了Hadoop完全分布式的搭建,本章主要讲解一下在Hadoop完全分布式已经搭建成功的情况下搭建ZooKeeper和Hbase环境

所有软件下载百度云 密码:uup8

讲在开头:对于笔者的完全分布式环境请见该文:Hadoop完全分布式安装

1.ZooKeeper和Hbase的简答介绍:

  1. ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
  2. HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。
  3. 两者联系:Hbase的运行依赖ZooKeeper。Hbase自身带有一个默认的ZooKeeper,本文讲解的是自己搭建ZooKeeper环境。

2.ZooKeeper环境搭建:

2.1软件下载:

我使用的是zookeeper-3.4.5.tar.gz。下载改文件后,将文件解压到/usr/local目录下:

sudo mv zookeeper-3.4.5.tar.gz /usr/local
tar -xvzf  zookeeper-3.4.5.tar.gz

2.2配置

进入zookeeper-3.4.5/conf/目录:,拷贝zoo_sample.cfg生成一个新文件zoo.cfg(zk默认读取的文件)。然后修改zoo.cfg中dataDir目录地址,增加访问地址和端口

cd zookeeper-3.4.6/conf/
cp zoo_sample.cfg zoo.cfg  
vim zoo.cfg 
###修改如下
dataDir=/usr/local/zookeeper-3.4.6/data    ----修改此目录,可以任意
##添加如下内容
server.1=192.168.1.127:2887:3887  
server.2=192.168.1.1128:2888:3888 
server.3=192.168.1.129:2889:3889

进入zookeeper-3.4.5目录,创建刚才配置中增加的data目录, 然后进入data目录,创建myid文件,输入服务器编号,比如在192.168.1.127上,myid文件就存储数字1,192.168.1.128上就存储数字2,192.168.1.129上就存储数字3.

mkdir data
cd data  
vim myid
1

2.3拷贝数据到其他服务器

1.复制zookeeper-3.4.5目录到其他从服务器

scp -r zookeeper-3.4.5 hadoop@192.168.1.128:~ 
scp -r zookeeper-3.4.5 hadoop@192.168.1.129:~ 
##注意在从服务器将zookeeper-3.4.5移动到/usr/local  不要这部也是没事的,只是为了保证集群环境一致
mv zookeeper-3.4.5 /usr/local

2.复制完成,登录到其他服务器,修改zookeeper-3.4.5/data/myid 文件的内容,slave1服务器就改成2,slave2服务器就改成3

2.4启动验证:

在从master,slave1,slave2依次执行zkServer.sh start 来启动 zookeeper,所有服务器启动完成后,就可以通过zkServer.sh status来查看服务器状态。没有报错说明都正常了。输入jps可以看到服务器中多了一个QuorumPeerMain服务。

cd /zookeeper-3.4.6
sh bin/zkServer.sh start 
jps
输出:
 QuorumPeerMain 
###状态查询
sh bin/zkServer.sh status  
leader---表示master
Mode: follower 表示是跟从

到这里zk环境搭建完毕

3.Hbase环境搭建

HBase集群需要依赖于一个Zookeeper ensemble。HBase集群中的所有节点以及要访问HBase的客户端都需要能够访问到该Zookeeper ensemble。HBase自带了Zookeeper,但为了方便其他应用程序使用Zookeeper,最好使用单独安装的Zookeeper ensemble。

此外,Zookeeper ensemble一般配置为奇数个节点,并且Hadoop集群、Zookeeper ensemble、

HBase集群是三个互相独立的集群,并不需要部署在相同的物理节点上,他们之间是通过网

络通信的。

3.1软件下载

我下载的是hbase-0.94.16.tar.gz,hbase的版本需要与hadoop对应,查看是否对应只需要看hbase-0.94.1/lib/hadoop-core后面的版本号是否与hadoop的版本对应,如果不对应,可以将hadoop下hadoop-core文件复制过来,但是不能保证不会有问题
解压到/usr/local下

3.2配置

1.配置hbase-env.sh

该文件在{HBASE_HOME}/conf目录下。

vim conf/hbase-env.sh
export JAVA_HOME=/usr/java/jdk

export HBASE_CLASSPATH=/usr/local/hadoop/conf

export HBASE_MANAGES_ZK=false

其中,HBASE_CLASSPATH指向存放有Hadoop配置文件的目录,这样HBase可以找到HDFS的配置信息,由于本文Hadoop和HBase部署在相同的物理节点,所以就指向了Hadoop安

装路径下的conf目录。HBASE_MANAGES_ZK=false指示HBase使用已有的Zookeeper而不是自带的。

2.配置hbase-site.xml

<configuration>

 <property>
   <name>hbase.rootdir</name>
   <value>hdfs://192.168.1.127:9000/hbase</value>
   <description>The directory shared by region servers.</description>
 </property>

 <property>
   <name>hbase.hregion.max.filesize</name>
   <value>1073741824</value>
   <description>
   Maximum HStoreFile size. If any one of a column families' HStoreFiles has
   grown to exceed this value, the hosting HRegion is split in two.
   Default: 256M.
   </description>
 </property>

 <property>
   <name>hbase.hregion.memstore.flush.size</name>
   <value>1073741824</value>
   <description>
   Memstore will be flushed to disk if size of the memstore
   exceeds this number of bytes.  Value is checked by a thread that runs
   every hbase.server.thread.wakefrequency.
   </description>
 </property>

 <property>
   <name>hbase.cluster.distributed</name>
   <value>true</value>
   <description>The mode the cluster will be in. Possible values are
     false: standalone and pseudo-distributed setups with managed Zookeeper
     true: fully-distributed with unmanaged Zookeeper Quorum (see hbase-env.sh)
   </description>
 </property>

 <property>
     <name>hbase.zookeeper.property.clientPort</name>
     <value>2181</value>
     <description>Property from ZooKeeper's config zoo.cfg.
     The port at which the clients will connect.
     </description>
 </property>

 <property>
   <name>zookeeper.session.timeout</name>
   <value>120000</value>
 </property>

 <property>
   <name>hbase.zookeeper.property.tickTime</name>
   <value>6000</value>
 </property>
   <property>
     <name>hbase.zookeeper.quorum</name>
     <value>master,slave1,slave2</value>
     <description>Comma separated list of servers in the ZooKeeper Quorum.
     For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".
     By default this is set to localhost for local and pseudo-distributed modes of operation. For a fully-distributed setup, this should be set to a full list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh this is the list of servers which we will start/stop ZooKeeper on.
     </description>
</property>

<property>
       <name>hbase.tmp.dir</name>
       <value>/usr/local/hbase/tmp</value>
</property>

</configuration>

参数介绍:

1,hbase.rootdir:hbase所使用的文件系统为HDFS,根目录为hdfs://192.168.1.127:9000/hbase,该目录应该由HBase自动创建,只需要指定到正确的HDFS NameNode上即可。

2,hbase.hregion.max.filesize:设置HStoreFile的大小,当 大于这个数时,就会split 成两个文件

3,hbase.hregion.memstore.flush.size:设置memstore的大小,当大于这个值时,写入磁盘

4,hbase.cluster.distributed:指定hbase为分布式模式

5,hbase.zookeeper.property.clientPort:指定zk的连接端口

6,zookeeper.session.timeout:RegionServer与Zookeeper间的连接超时时间。当超时时间到后,ReigonServer会被Zookeeper从RS集群清单中移除,HMaster收到移除通知后,会对这台server负责的regions重新balance,让其他存活的RegionServer接管.

7,hbase.zookeeper.property.tickTime8,hbase.zookeeper.quorum:默认值是 localhost,列出zookeepr的master,slave1,slave2

9,hbase.tmp.dir:指定HBase将元数据存放路径

3.配置regionservers 相当于hadoop的slave

vim conf/regionservers 
192.168.1.127
192.168.1.128

3.3拷贝数据到其他服务器

1.复制hbase目录到其他从服务器

scp -r hbase hadoop@192.168.1.128:~ 
scp -r hbase hadoop@192.168.1.129:~ 
##注意在从服务器将hbase移动到/usr/local  不要这部也是没事的,只是为了保证集群环境一致
mv hbase /usr/local

3.4启动验证:

注意需要先启动Hadoop

##启动Hadoop
start-all.sh
##启动Hbase
cd hbase
bin/start-hbase.sh
jps
输出:HRegionServer 

通过浏览器查看:在浏览器中输入 : http://192.168.1.127:60010/

##停止

bin/stop-hbase.sh

3.5hbase简答测试:


bin/hbase shell

HBase Shell; enter 'help<RETURN>' for list of supported commands.

Type "exit<RETURN>" to leave the HBase Shell

Version 0.94.12, r1524863, Fri Sep 20 04:44:41 UTC 2013

hbase(main):001:0>

##创建一个名为 small的表,这个表只有一个 column family 为 cf。可以列出所有的表来检查创建情况,然后插入些值。

hbase(main):003:0> create 'small', 'cf'
0 row(s) in 1.2200 seconds
hbase(main):003:0> list
small
1 row(s) in 0.0550 seconds
hbase(main):004:0> put 'small', 'row1', 'cf:a', 'value1'
0 row(s) in 0.0560 seconds
hbase(main):005:0> put 'small', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0370 seconds
hbase(main):006:0> put 'small', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0450 seconds

##检查插入情况.Scan这个表

hbase(main):005:0> scan 'small'

Get一行,操作如下

hbase(main):008:0> get 'small', 'row1'

disable 再 drop 这张表,可以清除你刚刚的操作

hbase(main):012:0> disable 'small'
0 row(s) in 1.0930 seconds
hbase(main):013:0> drop 'small'
0 row(s) in 0.0770 seconds

##导出与导入

bin/hbase org.apache.hadoop.hbase.mapreduce.Driver export small small

导出的表,在hadoop文件系统的当前用户目录下,small文件夹中。例如,导出后在hadoop文件系统中的目录结构:

bin/hadoop dfs -ls

Found 1 items

drwxr-xr-x   - hadoop supergroup         /small

本章介绍到这里
来自伊豚(wpeace.cn)

版权声明:本文为博主原创文章,转载请注明站点:blog.wpeace.cn https://blog.csdn.net/peace1213/article/details/51336369

HBase+ZooKeeper配置

本文转自:http://edu.dataguru.cn/thread-241488-1-1.html,未作修改。 这里有hadoop hbase zookeeper主要关系: ...
  • daxiang12092205
  • daxiang12092205
  • 2016-08-06 11:21:31
  • 2669

Hbase,Zookeeper完全分布式安装

前段时间安装配置了hadoop集群,这两天想装个hbase然后用些数据学习学习。网上教程有点多也有点乱,摸索了很久,所以还是记录一下自己的配置经验。过程中看了些博客感觉还是不错的,分享一下: 安装配...
  • sb19931201
  • sb19931201
  • 2016-01-10 17:50:18
  • 2201

ZooKeeper在HBase中的运用

一个分布式HBase系统安装依赖于一个运行着的ZooKeeper集群,所有参与的节点和客户端必须能够正常访问运行着的ZooKeeper集群。HBase默认为你提供一个节点的ZooKeeper集群,它会...
  • Oozie123
  • Oozie123
  • 2015-11-21 16:24:16
  • 1113

配置Hbase Zookeeper 注意事项 配置hbase.zookeeper.quorum property.

To avoid any confusion during deployment it is highly recommended not to use a zoo.cfg with HBase b...
  • maixia24
  • maixia24
  • 2013-09-22 13:25:53
  • 5138

HBase安装配置,使用独立zookeeper,shell测试

前言 安装前需要的条件,使用过hadoop的,基本不需要改什么了: 1、java环境 2、hadoop(HBase基于HDFS) 3、zookeeper(我这里使用独立的zookeeper,因为之前用...
  • smile0198
  • smile0198
  • 2013-12-29 22:40:55
  • 12514

zookeeper client操作

原文地址“http://abloz.com/2012/09/04/zookeeper-client-operation.html” 独立的zookeeper 自带zkCli.sh,可以执行后查询...
  • lxf310
  • lxf310
  • 2013-11-07 15:32:13
  • 11981

Hadoop, HBase, Hive, ZooKeeper默认端口说明

Hadoop, HBase, Hive, ZooKeeper默认端口说明 组件 Daemon 端口 配置 说明 HDFS DataNode 50010 dfs.datanode.addre...
  • fengwuwer
  • fengwuwer
  • 2016-10-28 10:23:30
  • 1788

hbase+zookeeper集群搭建

(博客源址http://blog.chinaunix.net/uid-23916356-id-3255678.html) 继上一篇的hadoop集群搭建的基础上,再把hbase和zookee...
  • lxf310
  • lxf310
  • 2013-12-11 14:55:30
  • 12894

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

Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境 一、环境说明 集群环境至少需要3个节点(也就是3台服务器设备):1个Master,2个Slave,...
  • reblue520
  • reblue520
  • 2017-04-28 10:48:44
  • 5560

HBase配置时注意的几个问题

配置hbase需要注意的地方: 1.hosts文件里配置的必须是hadoop上全部节点的域名,包括没有用到的节点,原因就先不解释了 2.检查一下hbase服务端是否开启kerberos,如果没有开启则...
  • zerocc123apple
  • zerocc123apple
  • 2016-12-20 10:25:37
  • 791
收藏助手
不良信息举报
您举报文章:Hadoop集群之 ZooKeeper和Hbase环境搭建
举报原因:
原因补充:

(最多只允许输入30个字)