[关闭]
@tsing1226 2016-05-06T17:44:09.000000Z 字数 2156 阅读 2009

hbase

HBase基础认识

HBase是Hadoop数据库,是分布式、可扩展、大表存储。

项目需求功能描述

  • 海量数据(存储在HDFS)

  • 实时查询(准实时查询)

  • 场景

    • 交通数据

    • 账单数据(话费账单、银行交易账单)

    • 游戏数据

    • 电商交易数据

数据采集

  • sqoop(flume)

  • kettle

  • program(JDBC 与Java API)
    HBase在hadoop生态系统中的位置


HBase的运行依赖于Hadoop HDFS文件系统提供数据的持久化,依赖Zookeeper提供集群的同步和协调。
Zookeeper有以下具体作用:
保证任何时候,集群都只有一个HMaster
实时监控Region Server的状态,将Region Server的上线和下线信息实时通知给HMaster
存储HBase目录表的寻址入口
存储Hbase的schema,包括哪些表,每个表有哪些列簇等各种元信息

安装 解压
替换jar包

hadoop-annotations-2.5.0.jar
hadoop-auth-2.5.0.jar
hadoop-common-2.5.0.jar
hadoop-hdfs-2.5.0.jar
hadoop-mapreduce-client-app-2.5.0.jar
hadoop-mapreduce-client-common-2.5.0.jar
hadoop-mapreduce-client-core-2.5.0.jar
hadoop-mapreduce-client-jobclient-2.5.0.jar
hadoop-mapreduce-client-shuffle-2.5.0.jar
hadoop-yarn-api-2.5.0.jar
hadoop-yarn-client-2.5.0.jar
hadoop-yarn-common-2.5.0.jar
hadoop-yarn-server-common-2.5.0.jar
hadoop-yarn-server-nodemanager-2.5.0.jar
zookeeper-3.4.5.jar

hbase-env.sh

The java implementation to use. Java 1.6 required.

export JAVA_HOME=/opt/modules/jdk1.7.0_67

Tell HBase whether it should manage it's own instance of Zookeeper or not.

export HBASE_MANAGES_ZK=false

mkdir -p data/tmp

hbase-site.xml



hbase.tmp.dir
/opt/modules/hbase-0.98.6-hadoop2/data/tmp


hbase.rootdir
hdfs://hadoop-senior01.grc.com:8020/hbase


hbase.cluster.distributed
true


hbase.zookeeper.quorum
hadoop-senior01.grc.com


启动
bin/hbase-daemon.sh start master

bin/hbase-daemon.sh start regionserver

[master:hadoop-senior01:60000] Configuration.deprecation: fs.default.name
is deprecated. Instead, use fs.defaultFS
2015-12-26 00:03:44,561 WARN [Thread-12] hdfs.DFSClient: DataStreamer Exception
org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /hbase/.tmp/hbase.version could only be
replicated to 0 nodes instead of minReplication (=1). There are 1 datanode(s) running and no node(s) a
re excluded in this operation.

原因:空间不足,
解决方案:增加linux的硬盘空间。在虚拟机设置里选择扩展增加空间大小。


HBase的查询模式
HBase通过行关键字、列(列簇名:列名)和时间戳的三元确定一个存储单元(cell)。
创建表
连接数据库
./bin/hbase shell

创建表
create 'test','cf'
put数据
put 'test','roew1','cf:a','value1'
put 'test','roew2','cf:b','value2'
put 'test','roew3','cf:c','value3'
Scan表中的全部数据
scan 'test'


Get a single row of data

Disable a table.
disable 'test'
re-enable a table
enable 'test'
Drop the table
drop 'test'


HBase中对数据检索方式
1 全部扫描
2 依据rowkey进行查询
3 范围查询 scan range 只支持前缀查询
HBase物理模型


理解HBase在HDFS上存储目录下的各个子目录和文件的含义。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注