Alex 的 Hadoop 菜鸟教程: 第6课 Hbase 安装教程
2014-08-12 16:32
477 查看
原帖地址: 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的配置文件基本上是所有机器都一样的,所以如果有改到配置文件方面基本都是要同步修改所有机器
HMaster— HBase中仅有一个Master server。
HRegionServer—负责多个HRegion使之能向client端提供服务,在HBase cluster中会存在多个HRegionServer。
编辑 /etc/security/limits.conf file 增加下面两行
记得改完后重启hadoop的服务
Alex 的 Hadoop 菜鸟教程: 第4课 Hadoop 安装教程 - HA方式 (2台服务器) 我们有两台机器 host1 和 host2 )
如果没有yum源请参考 Alex 的 Hadoop 菜鸟教程: 第2课 hadoop 安装教程 (CentOS6 CDH分支 yum方式)
用
还是选择在 host1 上安装
在 host1 和 host2 两台机子上都修改 /etc/hbase/conf/hbase-site.xml 在 <configuration> 和 </configuration> 之间增加以下2个属性
这里的mycluster 是我自己的集群id,具体名称看你在 hdfs-site.xml 里面的 dfs.nameservices 属性配的是什么名字了。
在hdfs上建立 hbase 使用的文件夹
启动 hbase-master 。 hbase-master 是需要zookeeper的,所以确保你的zookeeper启动了。
安装好后修改两台机器的配置文件 /etc/hbase/conf/hbase-site.xml ,在 <configuration> 和 </configuration> 中增加以下属性
这里的 mymasternode 要替换成真实的地址。这个东西其实我们在 Alex 的 Hadoop 菜鸟教程: 第4课 Hadoop 安装教程 - HA方式 (2台服务器) 中见过,在hdfs的HA配置中有一个属性叫 ha.zookeeper.quorum 配置的是 zookeeper 集群的地址,同理的,这边也是配置了hbase
的 RegionServer 需要的 zookeeper 地址,所以在本例中我们配置成
注意: 确保两台机器的hbase-site.xml的配置是一样的,别某台机器漏掉了某项配置就麻烦了
启动服务
zookeeper
hbase-master
各个regionserver
如果没有报任何异常,输出像这样,那么恭喜你成功了!
如果出现任何异常就去 /var/log/hbase/ 下面看日志,这些日志对你解决问题的帮助非常大,可以说是唯一的线索!
声明:
本文基于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-regionserverservice 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
服务的启动顺序
官方说服务的启动顺序是这样的zookeeper
hbase-master
各个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相关文章推荐
- Alex 的 Hadoop 菜鸟教程: 第2课 hadoop 安装教程 (CentOS6 CDH分支 yum方式)
- Alex 的 Hadoop 菜鸟教程: 第5课 YARN 安装以及helloworld (基于centos的CDH)
- Alex 的 Hadoop 菜鸟教程: 第15课 Impala 安装使用教程
- Alex 的 Hadoop 菜鸟教程: 第14课 Sqoop1 从Hbase导出mysql
- Alex 的 Hadoop 菜鸟教程: 第4课 Hadoop 安装教程 - HA方式 (2台服务器)
- Alex 的 Hadoop 菜鸟教程: 第19课 华丽的控制台 HUE 安装以及使用教程
- Alex 的 Hadoop 菜鸟教程: 第12课 Sqoop1 安装/导入/导出教程
- Alex 的 Hadoop 菜鸟教程: 第3课 Hadoop 安装教程 - 非HA方式 (一台服务器)
- Alex 的 Hadoop 菜鸟教程: 第12课 Sqoop1 安装/导入/导出教程
- Alex 的 Hadoop 菜鸟教程: 第7课 Hbase 使用教程
- Alex 的 Hadoop 菜鸟教程: 第8课 Hbase 的 java调用方法
- Alex 的 Hadoop 菜鸟教程: 第10课 Hive 安装和使用教程
- Alex 的 Hadoop 菜鸟教程: 第13课 Sqoop1 导入 Hbase 以及 Hive
- Alex 的 Hadoop 菜鸟教程: 第2课 hadoop 安装教程 (CentOS6 CDH分支 yum方式)
- Alex 的 Hadoop 菜鸟教程: 第12课 Sqoop1 安装/导入/导出教程
- Alex 的 Hadoop 菜鸟教程: 第21课 不只是在HBase中用SQL:Phoenix
- Alex 的 Hadoop 菜鸟教程: 第16课 Pig 安装使用教程
- Alex 的 Hadoop 菜鸟教程: 第19课 华丽的控制台 HUE 安装以及使用教程
- 【Nutch2.3基础教程】集成Nutch/Hadoop/Hbase/Solr构建搜索引擎:安装及运行【集群环境】
- Alex 的 Hadoop 菜鸟教程: 第9课 zookeeper 介绍和使用