Hbase,
Hbase
标签(空格分隔): 大数据
- Hbase
- 一概述
- 二Zookeeper的安装和配置
- 三Hbase的安装和配置
- 四Hbase的使用
- 五Hbase的物理模型
一,概述
- 优点
充分的利用了hdfs的特性:分布式,可拓展,安全
1,能够存储海量
2,数据查询的速度很快 - 项目需求功能描述
1,海量数据
2,实时查询
3,场景
****1,交通数据
****2,账单数据(话费账单,银行交易账单)
****3,游戏数据
****4,电商交易数据 - 数据采集
1,sqoop(flume)
2,Kettle(etl工具)
3,program(JDBC与JAVA API) - Hbase在hadoop2.x生态中的位置
和关系型数据库(rdbms)的区别
Hbase架构
二,Zookeeper的安装和配置
1,解压安装包到指定目录下
tar -zxf zookeeper-3.4.5.tar.gz -C /opt/app
2,设置环境变量,在/etc/profile,添加如下ZOOKEEPER_HOME信息
export JAVA_HOME=/opt/app/jdk1.7.0_67
export MAVEN_HOME=/app/apache-maven-3.0.5
export ZOOKEEPER_HOME=/opt/app/zookeeper-3.4.5-cdh5.3.6
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$ZOOKEEPER_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$ZOOKEEPER_HOME/lib
3,配置zookeeper conf目录下的zoo.cfg文件
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/app/zookeeper-3.4.5-cdh5.3.6/data/zookper #Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里
clientPort=2181
4,启动zookeeper
当这些配置项配置好后,你现在就可以启动zookeeper了:
netstat -at|grep 2181 #查看zookeeper端口
netstat -nat #查看端口信息
bin/zkServer.sh start #启动服务
bin/zkServer.sh stop #关闭服务
三,Hbase的安装和配置
1,解压安装包到指定目录下
tar -zxf hbase-0.98.6-hadoop2-bin.tar.gz -C /opt/app
2,修改hbase-env.sh文件:
export JAVA_HOME=/opt/app/jdk1.7.0_67
3,在conf目录下修改regionservers文件
xingyunfei001.com.cn
4,修改hbase-site.xml文件:
<configuration>
<property >
<name>hbase.tmp.dir</name>
<value>/opt/app/hbase-0.98.6-hadoop2/data/tmp</value>
</property>
<property >
<name>hbase.rootdir</name>
<value>hdfs://xingyunfei001.com.cn:8020/hbase</value>
</property>
<property >
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>xingyunfei001.com.cn</value>
</property>
</configuration>
5,替换/opt/app/hbase-0.98.6-hadoop2/lib下正确的hadoop版本jar包
5,启动:
[hadoop001@xingyunfei001 zookeeper-3.4.5-cdh5.3.6]$ bin/zkServer.sh start
[hadoop001@xingyunfei001 hadoop_2.5.0_cdh]$ sbin/start-all.sh start
[hadoop001@xingyunfei001 hbase-0.98.6-hadoop2]$ bin/hbase-daemon.sh start master
[hadoop001@xingyunfei001 hbase-0.98.6-hadoop2]$ bin/hbase-daemon.sh start regionserver
自0.96版本之后,hbase 源码结构上做了很大的优化,目录结构也发生了变化,做了精简和优化,这里以0.98.8为例介绍,目录如下:
/hbase/.tmp
/hbase/WALs
/hbase/archive
/hbase/corrupt
/hbase/data
/hbase/hbase.id
/hbase/hbase.version
/hbase/oldWALs
1、/hbase/.tmp
当对表做创建或者删除操作的时候,会将表move 到该 tmp 目录下,然后再去做处理操作
2、/hbase/WALs
大家都知道 HBase 是支持 WAL(Write Ahead Log) 的,HBase 会在第一次启动之初会给每一台 RegionServer 在.log 下创建一个目录,若客户端如果开启WAL 模式,会先将数据写入一份到.log 下,当 RegionServer crash 或者目录达到一定大小,会开启 replay 模式,类似 MySQL 的 binlog。
3、/hbase/archive
HBase 在做 Split或者 compact 操作完成之后,会将 HFile 移到.archive 目录中,然后将之前的 hfile 删除掉,该目录由 HMaster 上的一个定时任务定期去清理。
4、/hbase/corrupt
存储HBase做损坏的日志文件,一般都是为空的。
5、/hbase/data
这个才是 hbase 的核心目录,0.98版本里支持 namespace 的概念模型,系统会预置两个 namespace 即:hbase和default
5.1 /hbase/data/default
这个默认的namespace即没有指定namespace 的表都将会flush 到该目录下面。
5.2 /hbase/data/hbase
这个namespace 下面存储了 HBase 的 namespace、meta 和acl 三个表,这里的 meta 表跟0.94版本的.META.是一样的,自0.96之后就已经将 ROOT 表去掉了,直接从Zookeeper 中找到meta 表的位置,然后通过 meta 表定位到 region。 namespace 中存储了 HBase 中的所有 namespace 信息,包括预置的hbase 和 default。acl 则是表的用户权限控制。
如果自定义一些 namespace 的话,就会再/hbase/data 目录下新建一个 namespace 文件夹,该 namespace 下的表都将 flush 到该目录下。
6、/hbase/hbase.id
它是一个文件,存储集群唯一的 cluster id 号,是一个 uuid。
7、/hbase/hbase.version
同样也是一个文件,存储集群的版本号,貌似是加密的,看不到,只能通过web-ui 才能正确显示出来。
8、/hbase/oldWALs
这里对应0.94的.oldlogs 目录,取名为 oldWALs 是不是更好了呢!
四,Hbase的使用:
- 基本命令
[hadoop001@xingyunfei001 hbase-0.98.6-hadoop2]$ bin/hbase shell
hbase(main):001:0> create 'student','info'
describe 'student'
help put
插入数据:
put 'student','1001','info:name','xingyunfei'
put 'student','1001','info:age','32'
put 'student','1001','info:address','shanghai'
put 'student','1002','info:name','xingyunfei'
put 'student','1002','info:age','32'
put 'student','1002','info:address','shanghai'
put 'student','1003','info:name','xingyunfei'
put 'student','1003','info:age','32'
put 'student','1004','info:address','shanghai'
查询数据:
get:依据rowkey查询某一行数据
scan:全局扫描,查询所有数据
scan range:依据rowkey进行范围查询
get 'student','1001'
scan 'student'
scan 'student',{STARTROW=>'1001',STOPROW=>'1004'}
delete 'student','1003','info:age'
五,Hbase的物理模型:
*memstore:1,排
web监控界面:
http://xingyunfei001.com.cn:60010/master-status
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。