Hbase
来源:互联网 发布:微信天猫购物群软件 编辑:程序博客网 时间:2024/05/15 23:45
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_67export MAVEN_HOME=/app/apache-maven-3.0.5export ZOOKEEPER_HOME=/opt/app/zookeeper-3.4.5-cdh5.3.6export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$ZOOKEEPER_HOME/binexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$ZOOKEEPER_HOME/lib
3,配置zookeeper conf目录下的zoo.cfg文件
tickTime=2000initLimit=10syncLimit=5dataDir=/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/oldWALs1、/hbase/.tmp当对表做创建或者删除操作的时候,会将表move 到该 tmp 目录下,然后再去做处理操作2、/hbase/WALs大家都知道 HBase 是支持 WAL(Write Ahead Log) 的,HBase 会在第一次启动之初会给每一台 RegionServer 在.log 下创建一个目录,若客户端如果开启WAL 模式,会先将数据写入一份到.log 下,当 RegionServer crash 或者目录达到一定大小,会开启 replay 模式,类似 MySQL 的 binlog。3、/hbase/archiveHBase 在做 Split或者 compact 操作完成之后,会将 HFile 移到.archive 目录中,然后将之前的 hfile 删除掉,该目录由 HMaster 上的一个定时任务定期去清理。4、/hbase/corrupt存储HBase做损坏的日志文件,一般都是为空的。 5、/hbase/data这个才是 hbase 的核心目录,0.98版本里支持 namespace 的概念模型,系统会预置两个 namespace 即:hbase和default5.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
0 0
- Hbase
- HBase
- hbase
- HBase
- HBASE
- Hbase
- Hbase
- HBase
- hbase
- HBase
- HBase
- hbase
- hbase
- Hbase
- HBase
- hbase
- hbase
- HBase
- 谈谈JS的核心技术:原型对象和原型链
- JavaScript 中的 this
- 2016年 最火的 15 款 HTML5 游戏引擎
- POI操作Excel常用方法总结
- Linux kernel 3.10内核源码分析--TLB相关--TLB概念、flush、TLB lazy模式
- Hbase
- Lua 的 __index和__newindex的使用
- 一次完整的cstore请求日志(失败,已存在)
- 获取当前的spring容器ApplicationContext
- 解决数据库被其他程序访问,无法获取独占访问权问题
- Dialog无法创建后无法显示的问题
- Linux kernel 3.10内核源码分析--进程退出exit_code
- Struts 2 远程代码执行漏洞(CVE-2016-0785)解决方案
- 敌兵布阵