HBase入门笔记(四)--完全分布式HBase集群安装配置

标签: Hadoop | 发表时间:2012-02-08 19:52 | 作者:jrckkyy
出处:http://hi.baidu.com/jrckkyy

http://www.cnblogs.com/ventlam/archive/2011/01/22/HBaseCluster.html

HBase 是一个开源的非关系(NoSQL)的可伸缩性分布式数据库。它是面向列的,并适合于存储超大型松散数据。HBase适合于实时,随机对Big数据进行读写操作的业务环境。关于HBase的更多介绍请参见 HBase项目官网

    本文环境与上一讲-- 完全分布式Hadoop集群配置一致。OS是Ubuntu Server 10.04,HBase版本是0.20.6。

         HRegionServer&HQuorumPeer:dm1,IP:192.168.0.17;

         HRegionServer&HQuorumPeer:dm2,IP:192.168.0.18;

         HRegionServer&HQuorumPeer:dm3,IP:192.168.0.9;

                  HMaster&NameNode:dm4,IP:192.168.0.10;(SecondaryNameNode)

  虽然secondarynamenode和namenode放在同一台机器上比较不合理。但是考虑到这只是个实验的小集群(硬件环境不允许),再者有xenserver的时序快照的保障,就不将SecondaryNameNode部署在其他机器上了。

 

     主要的还是配置工作,依然将HBase放在/home下,编辑/home/hbase/conf下的hbase-site.xml,hbase-default.xml,hbase-env.sh 这几个文件。具体步骤如下:

     一.编辑 所有机器上的hbase-site文件,命令如下:

 

?
1
vi /home/hbase/conf/hbase-site.xml

      编辑文件如下列代码所示。注意项有2:

    1.其中首先需要注意hdfs://dm4:9000/hbase这里, 必须与你的Hadoop集群的 core-site.xml文件配置保持完全一致才行,如果你Hadoop的hdfs使用了其它端口,请在这里也修改。再者就是Hbase该项并 不识别机器IP,只能使用机器hostname才可行,即若使用dm4的IP(192.168.0.10)是会抛出java错误,至于具体的错误由于时间久远,我就懒得去翻查那大量的log了。

      2. hbase.zookeeper.quorum 的个数必须是奇数

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<configuration>
<property>
 <name>hbase.rootdir</name>
 <value>hdfs://dm4:9000/hbase</value>
</property>
<property>
 <name>hbase.cluster.distributed</name>
 <value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>192.168.0.10:60000</value>
</property>
<property>
 <name>hbase.zookeeper.quorum</name>
 <value>192.168.0.9,192.168.0.17,192.168.0.18</value>
</property>
</configuration>

   二.编辑所有机器的 hbase-default.xml,命令如下:

 

?
1
vi /home/hbase/conf/hbase-default.xml

    只需修改前面hbase.rootdir 与hbase.cluster.distributed 这两项。修改如下面代码所示:

HBase的数据重启就被擦掉,如果需要数据持久化的,就修改rootdir项,写定你的HDFS目录。

至于default内其它的项的含义与修改,再请参考官网。 

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<configuration>
 <property>
 <name>hbase.rootdir</name>
<value>hdfs://dm4:9000/hbase_rootdir</value>
 <description>The directory shared by region servers.
 Should be fully-qualified to include the filesystem to use.
 E.g: hdfs://NAMENODE_SERVER:PORT/HBASE_ROOTDIR
 </description>
 </property>
 <property>
 <name>hbase.master.port</name>
 <value>60000</value>
 <description>The port master should bind to.</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>

   三. 编辑 所有机器的hbase-env.sh,命令如下:

 

?
1
vi /home/hbase/conf/hbase-env.sh

     修改代码如下所示:

?
1
2
3
4
5
6
export HBASE_OPTS="$HBASE_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkS
weepGC -XX:+CMSIncrementalMode"
 export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.22
export HBASE_MANAGES_ZK=true
export HBASE_HOME=/home/hbase
export HADOOP_HOME=/home/hadoop

     四.编辑所有机器的HBase的HMasters和HRegionServers。修改/home/hbase/conf 文件夹下的regionservers文

件。添加DataNode的IP即可。代码如下:

 

?
1
2
3
192.168.0.9
192.168.0.17
192.168.0.18

    行文至此,HBase集群的配置已然完成。以下便是启动和测试。

    五.启动.测试HBase数据库。

     在HMaster即Namenode (dm4)启动HBase数据库(Hadoop集群必须已经启动)。 启动命令:

 

?
1
/home/hbase/bin/start-hbase.sh

  Hbase启动如下图所示:

    最好输入JPS命令测试一下你当前Hbase集群进程。如下图:

 

 

 

然后输入如下命令进入hbase的命令行管理界面:

 

?
1
/home/hbase/bin/hbase shell

   在hbase shell下 输入list,如下所示,列举你当前数据库的名称,如下图所示。如果你的Hbase没配置成功会抛出java错误。

 

   我们也可以通过WEB页面来管理查看HBase数据库。

  HMaster: http://192.168.0.10:60010/master.jsp

  我的HBase数据库截图:

 至于HBase的命令参见: Hadoop Wiki

 HBase数据库的开发应用,包括数据库读写和条件查询等,请参见我未来的文章……

  六.参考文献

   1.HBase: Bigtable-like structured storage for Hadoop HDFS

      http://wiki.apache.org/hadoop/Hbase

   2.HBase Testing Tutorial

         http://wiki.apache.org/hadoop/Hbase/HowToTest

 

阅读全文
类别: Hadoop  查看评论

相关 [hbase 笔记 完全] 推荐:

HBase入门笔记(四)--完全分布式HBase集群安装配置

- - 学着站在巨人的肩膀上
HBase 是一个开源的非关系(NoSQL)的可伸缩性分布式数据库. 它是面向列的,并适合于存储超大型松散数据. HBase适合于实时,随机对Big数据进行读写操作的业务环境. 关于HBase的更多介绍请参见 HBase项目官网.     本文环境与上一讲-- 完全分布式Hadoop集群配置一致.

hbase学习笔记(1)——hbase体系结构

- - CSDN博客推荐文章
HBase的服务器体系结构遵从简单的主从服务器架构,它由HRegion Server群和HBase Master Server构成. HBase Master Server负责管理所有的HRegion Server,而HBase中所有的服务器都是通过ZooKeeper来进行协调并处理HBase服务器运行期间可能遇到的错误.

HBase 学习笔记---守护进程及内存调优

- - CSDN博客云计算推荐文章
          HMaster的任务前面已经说过了,两个大方向:一、管理Hbase Table的 DDL操作 二、region的分配工作,任务不是很艰巨,但是如果采用默认自动split region的方式,     HMaster会稍微忙一些,负载不大,可适度对此进程做适量放大heap 的操作,但不可太大,因为更耗内存的是HRegionServer.

hbase完全分布式安装与配置

- - CSDN博客系统运维推荐文章
hbase 完全分布式安装,2个节点,分别为:. 192.168.1.67 MasterServer (作为hbase的master和regionserver节点[可选]). 192.168.1.241 SlaveServer  (作为hbase的regionserver节点). 安装hadoop,具体安装见: http://blog.csdn.net/hwwn2009/article/details/39889465.

hbase介绍

- AreYouOK? - 淘宝数据平台与产品部官方博客 tbdata.org
hbase是bigtable的开源山寨版本. 是建立的hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统. 它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作). 主要用来存储非结构化和半结构化的松散数据.

Riak对比HBase

- - NoSQLFan
文章来自 Riak官方wiki,是一篇Riak与HBase的对比文章. Riak官方的对比通常都做得很中肯,并不刻意偏向自家产品. 对比的Riak版本是1.1.x,HBase是0.94.x. Riak 与 HBase 都是基于 Apache 2.0 licensed 发布. Riak 的实现是基于 Amazon 的 Dynamo 论文,HBase 是基于 Google 的 BigTable.

[转]HBase简介

- - 小鸥的博客
   Hbase是一个分布式开源数据库,基于Hadoop分布式文件系统,模仿并提供了基于Google文件系统的Bigtable数据库的所有功能. 其目标是处理非常庞大的表,可以用普通的计算机处理超过10亿行数据,并且有数百万列元素组成的数据表. Hbase可以直接使用本地文件系统或者Hadoop作为数据存储方式,不过为了提高数据可靠性和系统的健壮性,发挥Hbase处理大数据量等功能,需要使用Hadoop作为文件系统.

HBase表设计

- - 互联网 - ITeye博客
默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据, 直到这 个region足够大了才进行切分. 一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入HBase时,会按 照 region分区情况,在集群内做数据的负载均衡.

HBase Memstore配置

- - 行业应用 - ITeye博客
HBase Memstore配置. 本文为翻译,原英文地址:http://blog.sematext.com/2012/07/16/hbase-memstore-what-you-should-know/.     当regionserver(以下简称RS)收到一个写请求,会将这个请求定位到某个特定的region.

hbase原理

- - CSDN博客云计算推荐文章
1.hbase利用hdfs作为其文件存储系统,利用mapreduce来处理数据,利用zookeeper作为协调工具. 2.行键(row key),类似于主键,但row key是表自带的. 3.列族(column family) ,列(也称作标签/修饰符)的集合,定义表的时候指定的,列是在插入记录的时候动态增加的.