设为首页 收藏本站
查看: 384|回复: 0

[经验分享] The Apache HBase Book学习篇(一)

[复制链接]

尚未签到

发表于 2017-1-5 10:52:32 | 显示全部楼层 |阅读模式
  一段时间以来一直在使用Hadoop和Hive进行数据仓库的开发,最近感觉HBase逐渐在实时处理方面能力显示出来,这也是数据开发人员梦寐以求的一件事情,看到Apache上有关于HBase的学习书籍,故想不自量力翻译一番,呵呵~

   Apache HBase是一种分布式的,基于列模式的架构在Apache Hadoop和Apache Zookeeper上的数据库,这个手册是基于HBase 0.90.0版本的,这本手册会介绍包括了HBase的部分内容,更多的内容可以从以上网站上获取:

  https://issues.apache.org/jira/browse/HBASE

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

  http://zookeeper.apache.org/

  http://hadoop.apache.org/

  


  Chapter 1. Getting Started

  1.1、介绍

      quick start主要帮助你搭建和运行一个单机的HBase并且使用本地文件系统,No-so-quick-start主要描述如何在分布式模式下让HBase运行在HDFS上。

  1.2、quick start

       本篇将描述如何在单机上使用本地文件系统运行分布式的HBase实例,它将让你通过HBase提供的HBase Shell工具完成创建一张表、插入一列,然后清除以及关闭HBase实例,这些操作可以在10分钟以内完成。

  1.2.1.下载以及解压最新的稳定版本

       选择下载的网址,http://www.apache.org/dyn/closer.cgi/hbase/  ,建议国内用户可以通过人人或者北交大的apache镜像进行下载,打开相关的链接,进入到Hbase的下载页面,点击stable,选择以.tar.gz为后缀的文件,比如hbase-0.90.0.tar.gz
下载到本地,最好是在liunx环境中安装HBase或者使用虚拟机。

  解压相关文件到指定的目录下面


$ tar xfz hbase-0.90.0.tar.gz
$ cd hbase-0.90.0

    现在我们可以开始准备运行HBase了,不过在运行HBase之前,需要现在conf/hbase-site.xml设置你想要将HBase写入什么位置,具体的参数是hbase.rootdir


<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///DIRECTORY/hbase</value>
</property>
</configuration>

  
  替换掉上面的DIRECTORY使用一个你想要HBase用来存放数据的目录,默认情况下,hbase.rootdir会设置在/tmp/hbase-${user.name}下面,这么意味着如果任何时候你重启你的服务,你将丢失掉你全部的数据(大多数的系统在重启后将会清除掉/tmp下的数据)

  1.2.2 Start Hbase

  好了,现在可以开始运行HBase了


$ ./bin/start-hbase.sh
starting Master, logging to logs/hbase-user-master-example.org.out
  你现在已经运行了Hbase的单机模式,在单机模式下面,HBase运行所有的守护程序在一个JVM下面,包括HBase和Zookeeper的daemons,HBase的日志信息可以logs的子目录下面找到,如果HBase遇到异常情况可以先查看他们。

   提示:确定Java是否已经按照好了?

           前面所有的叙述都是建立在你的机器已经安装好了Java 1.6及其以上版本,并且已经配置了正确的路径,可以直接键入java进行操作,如果不满足这些要求,HBase就不能正常运行,在安装Java的过程中,需要先对conf/hbase-env.sh进行配置,需要对已经注释了JAVA_HOME变量进行反注释,并将它设置成为指向你安装的目录,然后重新尝试以上步骤。

  1.2.3 Shell Exercises

  通过Hbase Shell连接到你使用的HBase


$ ./bin/hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version: 0.89.20100924, r1001068, Fri Sep 24 13:55:42 PDT 2010
hbase(main):001:0>
  键入help,然后回车可以将显示shell相关的命令和选项,浏览到help最新的版本描述信息后面,可以看到关于各种命令和变量如何在HBase Shell中输入,特别注意的是表名、列、行等必须加引号表示。

  创建一个test表有唯一的column family 为cf,然后通过list命令验证它的存在,并且插入一些值:


hbase(main):003:0> create 'test', 'cf'
0 row(s) in 1.2200 seconds
hbase(main):003:0> list 'table'
test
1 row(s) in 0.0550 seconds
hbase(main):004:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.0560 seconds
hbase(main):005:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0370 seconds
hbase(main):006:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0450 seconds
      上面我们插入了3个值,一次一个,第一个插入在row1,列cf:a  值为value1,列在HBase中由Column family的前缀构成,这里cf为例子,后面跟着一个冒号,然后列值为后缀(a在这里)

      验证数据插入情况,

      运行scan命令,得到如下结果:


hbase(main):007:0> scan 'test'
ROW        COLUMN+CELL
row1       column=cf:a, timestamp=1288380727188, value=value1
row2       column=cf:b, timestamp=1288380738440, value=value2
row3       column=cf:c, timestamp=1288380747365, value=value3
3 row(s) in 0.0590 seconds
   获取某一列:


hbase(main):008:0> get 'test', 'row1'
COLUMN      CELL
$ ./bin/stop-hbase.sh
stopping hbase............... cf:a        timestamp=1288380727188, value=value1
1 row(s) in 0.0400 seconds
   disable和drop某张表,这将清除以上做的:


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


hbase(main):014:0> exit
    1.2.4 Stop Hbase

  停止HBase的实例:


$ ./bin/stop-hbase.sh
stopping hbase...............

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-324195-1-1.html 上篇帖子: Apache+Tomcat+JK配置负载均衡 下篇帖子: 集成Apache Tomcat JDBC 或 Commons-DBCP
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表