zoukankan      html  css  js  c++  java
  • HBase-初看HBase


    0.95版本
    hbase 单机模式下所有的服务都运行在一个JVM上,包括HBase和zookeeper。使用的是本地文件系统

    日志默认放在目录下logs文件夹中

    基本命令:
     create 'table','cf'  //创建一个table名字的表,cloumn family为cf
     put 'table','row1','cf:a','value1' //插入table表中一条数据,row1为key值,a为列名,value1为值
     list ‘table’  //列出所有的表。table不是表名
     scan ‘table’  //查看表中所有数据
     get ‘table’,‘row1’ //取数据
     disable ‘table’ //?
     drop ‘table’;//删除表

    hbase 分默认配置文件和用户自定义配置文件


    hbase要求本地换回地址必须是127.0.0.1,不能是127.0.1.1等。Ubuntu默认是127.0.1.1

    常用的Linux最大文件句柄不能满足hbase的要求,默认1024,设置到10K

    sync 持久化同步

    hbase的hadoop.jar必须和hadoop的hadoop.jar保持一致

    hadoop hdfs有一个同时处理文件数的上限,这个上限至少要为4096,dfs.datanode.max.xcievers

    hbase 分单机、伪分布式、完全分布式。和hadoop相同

    hbase的数据目录hbase.rootdir要让它自己创建,不要自己创建

    使用完全分布式模式,要把hbase.cluster.distributed 设置为true

    hbase的conf/regionservers相当于hadoop的conf/slaves或者etc/slaves

    一个分布式的hbase依赖一个zookeeper集群

    hbase默认master端口 60000

    hbase判断宕机默认为失联3分钟

    hbase的表是按key排序的


    使用HBase的时候要让HBase的版本和hadoop的对应才行,不然会出很多问题。方法有两种,一种是用hadoop的jar包替换HBase里面的hadoop jar包,强迫它们对应起来;另一种就是找到原配,根据hadoop的版本去选择HBase的版本;

    我更倾向于第二种。查看方法是看HBase 的lib中hadoop相关的jar包的版本。

    在稳定版本中它们大概的对应关系为:

    可以看到,在一些过渡版本比如0.96.2、0.98.7有hadoop1.x和2.x的不同版本。


    至于HBase与hadoop其他组件之间的关系,我读到一个帖子,感觉非常受用(虽然它的题目是HBase简介,但是我觉得它的题目更适合叫HBase与其他hadoop子项目之间的关系)

    引用自:http://www.aboutyun.com/thread-6138-1-1.html

    其中HBase位于结构化存储层,Hadoop HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。
    此外,PigHive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。 Sqoop则为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。

    (才知道RDBMS是这么个东西)


    HBase通过row和column确定一份数据,这份数据的值可能有多个版本,为什么会存在多个版本?
    查询的时候会显示那个版本?
    保证数据不被修改,查询时总是显示最新版本 


     存储类型


    TableName 是字符串
    RowKey 和 ColumnName 是二进制值(Java 类型 byte[])
    Timestamp 是一个 64 位整数(Java 类型 long)
    value 是一个字节数组(Java类型 byte[])。


    可以简单的将HTable的存储结构理解为


     Hbase的优点
    1 列的可以动态增加,并且列为空就不存储数据,节省存储空间.

    2 Hbase自动切分数据,使得数据存储自动具有水平scalability.

    3 Hbase可以提供高并发读写操作的支持

    Hbase的缺点:

    1 不能支持条件查询,只支持按照Row key来查询.

    2 暂时不能支持Master server的故障切换,当Master宕机后,整个存储系统就会挂掉.


    HBase和传统型数据库的区别(http://www.aboutyun.com/thread-7804-1-1.html


    欲为大树,何与草争;心若不动,风又奈何。
  • 相关阅读:
    Lc5413_重新排列句子中的单词
    Lc5412._在既定时间做作业的学生人数
    Lc520_检测大写字母
    threadPoolExecutor的参数和拒绝策略
    coutdownlatch的使用
    volatile的个人理解
    Lc292_Nim 游戏
    Lc136_只出现一次的数字
    lc88_合并两个有序数组
    jdk源码_String(1)
  • 原文地址:https://www.cnblogs.com/admln/p/trivial-firstHBase.html
Copyright © 2011-2022 走看看