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生态中的位置
    001.png-29.6kB
  • 和关系型数据库(rdbms)的区别
    001.png-17.3kB
    001.jpg-21.6kB
    001.jpg-28.6kB
    001.jpg-22.6kB

  • Hbase架构
    001.png-18.7kB

二,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包
001.jpg-26.7kB

001.jpg-2.9kB
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

001.jpg-13.4kB

001.jpg-29.7kB

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的物理模型:

001.jpg-24.9kB

001.jpg-22.3kB

001.jpg-32.3kB

001.jpg-24kB

001.jpg-29.5kB

001.jpg-49.7kB
*memstore:1,排

001.jpg-56kB

001.jpg-44kB

web监控界面:

http://xingyunfei001.com.cn:60010/master-status
0 0
原创粉丝点击