欢迎投稿

今日深度:

Hbase,

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

www.htsjk.Com true http://www.htsjk.com/hbase/37668.html NewsArticle Hbase, Hbase 标签(空格分隔): 大数据 Hbase 一概述 二Zookeeper的安装和配置 三Hbase的安装和配置 四Hbase的使用 五Hbase的物理模型 一,概述 优点 充分的利用了hdfs的特性:分布式,可拓展...
相关文章
    暂无相关文章
评论暂时关闭