HBase教程

HBase教程

(注:安装服务器和需连接hbase的服务器的hosts文件的配置 192.168.6  Demo01)

Hbase简介

HBase是建立在Hadoop文件系统之上的分布式面向列的数据库。是横向扩展的。可以提供快速随机访问海量结构化数据。它利用了Hadoop的文件系统(HDFS)提供的容错能力。可以直接或通过HBase的存储HDFS数据。使用HBase在HDFS读取消费/随机访问数据。 HBase在Hadoop的文件系统之上,并提供了读写访问。

HBase 和 HDFS

HDFS

HBase

HDFS是适于存储大容量文件的分布式文件系统。

HBase是建立在HDFS之上的数据库。

HDFS不支持快速单独记录查找。

HBase提供在较大的表快速查找

它提供了高延迟批量处理;没有批处理概念。

它提供了数十亿条记录低延迟访问单个行记录(随机存取)。

它提供的数据只能顺序访问。

HBase内部使用哈希表和提供随机接入,并且其存储索引,可将在HDFS文件中的数据进行快速查找。

HBase的存储机制

在一个HBase:

· 表是行的集合。

· 行是列族的集合。

· 列族是列的集合。

· 列是键值对的集合。

Rowide

Column Family

Column Family

Column Family

Column Family

 

col1

col2

col3

col1

col2

col3

col1

col2

col3

col1

col2

col3

1

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

HBase架构

HBase有三个主要组成部分:客户端库,主服务器和区域服务器。区域服务器可以按要求添加或删除。

主服务器:

· 分配区域给区域服务器并在Apache ZooKeeper的帮助下完成这个任务。

· 处理跨区域的服务器区域的负载均衡。它卸载繁忙的服务器和转移区域较少占用的服务器。

· 通过判定负载均衡以维护集群的状态。

· 负责模式变化和其他元数据操作,如创建表和列。

区域:只不过是表被拆分,并分布在区域服务器。

区域服务器:

· 与客户端进行通信并处理数据相关的操作。

· 句柄读写的所有地区的请求。

· 由以下的区域大小的阈值决定的区域的大小。

存储包含内存存储和HFiles。memstore就像一个高速缓存。在这里开始进入了HBase存储。数据被传送并保存在Hfiles作为块并且memstore刷新。

Hbase安装

 单机模式,模拟分布式模式,以及全分布式模式

全分布式模式安装

参考:http://blog.csdn.net/chabale/article/details/8808620

 hbase-env.sh 修改JAVA_HOME变量

hbase-site.xml

<property>

 <name>hbase.cluster.distributed</name>

  <value>true</value>

  </property>

  <property>

   <name>>hbase.rootdir</name>

    <value>hdfs://Demo01:9000/hbase</value>

   </property>

   <property>

     <name>hbase.master</name>

     <value>Demo01:60000</value>

   </property>

   <property>

      <name>>hbase.zookeeper.quorum</name>

      <value>Demo01</value>

    </property>

    <property>

      <name>>hbase.zookeeper.property.dataDir</name>

      <value>/home/slshop/data/zookeeper</value>

     </property>

修改conf下的regionservers文件

启动

到hbase的bin目录运行./hbase shell

Hive整合Hbase

作用:使hive可以读取Hbase中的数据

HBase开发

Windows开发的hosts里面设置hbase连接的zookeeper服务器的别名和ip

HBase数据结构设计

Saas平台

1) 交易订单 saas_trade_order

列族:order data、merchant data、pay data

创建shell:  create 'saas_trade_order','order data','merchant data','pay data'

列  :

所属列族

order data

order_no

订单号

trade_amt

交易金额

ip

Ip

trade_status

状态 0:创建,1:成功,2:失败,6:提交

log_date_time

日志记录时间

所属列族

merchant data

merch_no

商户号

merchant_name

商户名称

所属列族

pay data

pay_time

交易时间

pay_order_no

支付订单号

trade_summary

交易摘要

card_bank_name

支付渠道

pay_type

支付方式

trade_type

交易类别

notify_url

商户返回地址

2) 结算saas_sett_record

列族:sett data、merchant data、bank data

创建shell:  create 'saas_sett_record','sett data','merchant data','bank data'

列  :

所属列族

sett data

sett_order_no

订单号

ip

Ip

sett_status

结算状态 0:未处理  1:打款成功 2:打款失败  3:处理中

sett_type

结算类型 0提现,1直连代付 2 申请代付

acc_status

账务系统入账状态,0未入账,1已入账

sett_amt

结算金额

suc_time

成功时间

cr_time

创建时间

所属列族

merchant data

merchant_no

商户号

merchant_name

商户名称

merch_acc_date

商户交易日期

merch_sett_no

商户订单号

所属列族

bank data

bank_code

银行卡编码

bank_acc_no

银行卡号

bank_acc_name

银行卡户名

bank_name

银行卡开户行名称

猜你喜欢

转载自blog.csdn.net/u010313441/article/details/80820938