Alex 的 Hadoop 菜鸟教程: 第6课 Hbase 安装教程

本文提供了一篇基于Centos 6.x和CDH 5.x的HBase分布式安装教程,涵盖从HBase概念、架构到安装、配置、启动和服务验证的详细步骤。教程特别强调了配置文件在所有机器上的同步修改,以及服务启动顺序的重要性。

原帖地址: http://blog.csdn.net/nsrainbow/article/details/38515007

声明:

  • 本文基于Centos 6.x + CDH 5.x 
  • 官方英文安装教程http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH5/latest/CDH5-Installation-Guide/cdh5ig_hbase_installation.html 。本文并不是简单翻译,而是再整理
  • 因为之前说过了HA模式的部署,所以这边不会说单机版的安装,直接说分布式的安装
  • 有一个基本常识需要知道,hadoop的配置文件基本上是所有机器都一样的,所以如果有改到配置文件方面基本都是要同步修改所有机器

介绍

Hbase是什么

Hbase 是基于google那篇 bigtable的论文的一个开源的实现,基于hdfs来存储表里面的数据。是一个NoSQL数据库。它是一个列式数据库。啥叫列式数据库呢?我们一般的数据库里面一行的数据就是存成一行,但是在hbase里面如果你这行有5个列,那就是5个独立的键值对,有可能都不是存在同一台机器上,这5个键值对之间的关联就是 rowkey,他们有共同的rowkey,除此之外他们之间么有关联,就像完全属于不同的表一样。

Hbase的架构


  • HMaster— HBase中仅有一个Master server。
  • HRegionServer—负责多个HRegion使之能向client端提供服务,在HBase cluster中会存在多个HRegionServer。

安装

配置最大文件数

centos 最大文件数

hbase 会打开很多文件,而centos的默认最大打开数是不够的,所以要调整
编辑 /etc/security/limits.conf file 增加下面两行
hdfs  -       nofile  32768
hbase -       nofile  32768

hdfs最大文件数

还要调整hdfs的最大文件数。编辑 /etc/hadoop/conf/hdfs-site.xml 增加以下属性 (所有机器)
<property>
  <name>dfs.datanode.max.xcievers</name>
  <value>4096</value>
</property>
如果不增加这个容易出现以下错误
10/12/08 20:10:31 INFO hdfs.DFSClient: Could not obtain block blk_XXXXXXXXXXXXXXXXXXXXXX_YYYYYYYY from any node: 
java.io.IOException: No live nodes contain current block. Will get new block locations from namenode and retry... 

记得改完后重启hadoop的服务

安装hbase

在随便一台你要运行hbase的机子上安装,这里就在  host1 上安装吧(根据之前的课程 Alex 的 Hadoop 菜鸟教程: 第4课 Hadoop 安装教程 - HA方式 (2台服务器) 我们有两台机器 host1 和 host2 )

$ sudo yum install hbase -y

如果没有yum源请参考   Alex 的 Hadoop 菜鸟教程: 第2课 hadoop 安装教程 (CentOS6 CDH分支 yum方式)

rpm -ql hbase
检验安装路径,会发现安装在 /usr/lib/hbase下


安装hbase-master

这边要说下hbase的 master 和 slave 概念。hbase 运行的时候有一个master 和多个 slave 。这边的 hbase-master 从命名上也能看出就是master机。

还是选择在 host1 上安装

yum install hbase-master -y


host1 host2 两台机子上都修改 /etc/hbase/conf/hbase-site.xml 在 <configuration> 和 </configuration> 之间增加以下2个属性

  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://mycluster/hbase</value>
  </property>

这里的mycluster 是我自己的集群id,具体名称看你在 hdfs-site.xml 里面的 dfs.nameservices 属性配的是什么名字了。

在hdfs上建立 hbase 使用的文件夹

sudo -u hdfs hdfs dfs -mkdir /hbase
sudo -u hdfs hdfs dfs -chown hbase /hbase

启动 hbase-master 。 hbase-master 是需要zookeeper的,所以确保你的zookeeper启动了。


安装 RegionServer

官方建议在所有的 datanode 机器上安装 RegionServer 。所以在host1 和  host2 都安装 RegionServer 。

yum install hbase-regionserver -y

安装好后修改 两台机器的配置文件 /etc/hbase/conf/hbase-site.xml ,在 <configuration> 和 </configuration> 中增加以下属性

    <property>
      <name>hbase.zookeeper.quorum</name>
      <value>mymasternode</value>
    </property>

这里的 mymasternode 要替换成真实的地址。 这个东西其实我们在 Alex 的 Hadoop 菜鸟教程: 第4课 Hadoop 安装教程 - HA方式 (2台服务器) 中见过,在hdfs的HA配置中有一个属性叫 ha.zookeeper.quorum 配置的是 zookeeper 集群的地址,同理的,这边也是配置了hbase 的 RegionServer 需要的 zookeeper 地址,所以在本例中我们配置成

    <property>
      <name>hbase.zookeeper.quorum</name>
      <value>host1:2181,host2:2181</value>
    </property>

启动Hbase

先启动hbase-master 再期待共 hbase-regionserver
service hbase-master start
service hbase-regionserver start

注意: 确保两台机器的hbase-site.xml的配置是一样的,别某台机器漏掉了某项配置就麻烦了

安装HBase Thrift Server

这个Thrift 是用来让其他程序跟Hbase连接用的,你可以看做是有了Thrift 之后Hbase才开放了程序调用的API,你才可以用不同的语言来调用hbase。我们选择hbase-master 所在的 host1进行安装
 yum install hbase-thrift -y

启动服务
service hbase-thrift start

服务的启动顺序

官方说服务的启动顺序是这样的
  1. zookeeper
  2. hbase-master
  3. 各个regionserver

检验

web界面

服务都启动完毕后,访问 http://host1:60010/ 会看到这样的界面


shell命令行工具

在 hbase-master 那台机子上进入 hbase shell 并运行  list 查询所有表试试看
$ hbase shell

......

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

=> []

如果没有报任何异常,输出像这样,那么恭喜你成功了!

如果出现任何异常就去 /var/log/hbase/ 下面看日志,这些日志对你解决问题的帮助非常大,可以说是唯一的线索!


参考资料

  • http://www.uml.org.cn/sjjm/201212141.asp 


分布式数据库 分布式数据库 分布式数据库 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 网上的 网上的 软件系统, 软件系统, 软件系统, 具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值