java cdh hbase_在CDH集群中使用spark插入Hbase

需求

百亿级数据实时查询,数据有两列:电话MD5(rowkey CELLPHONE_MD5)、电话( CELLPHONE)

创建Hbase表

可以通过两种方式连接Hbase:phoenix 或者hbase shell

phoenix可以提供类sql的方式进行hbase的操作,容易接受一些

hbase shell 通过hbase相关命令操作,相对复杂

phoenix提供相对格式化的输出,比较美观(例如执行查看所有表操作,phoneix输出的结果以table形式展现,而hbase shell通过字符串形式展现)。

需要注意的是,在phoenix中执行建表命令时会将小写的表名、字段名转换为大写,所以如果在程序中或者Hbase shell中使用相关表是需要注意大小写问题。

phoenix

linux console执行以下命令,进入phoenix:

[root@mmbps1 ~]# /opt/cloudera/parcels/CLABS_PHOENIX/bin/phoenix-sqlline.py zookeeper地址:2181:/hbase

hbase shell

linux console执行以下命令,进入hbase shell:

[root@mmbps1 ~]# hbase shell

命令对比

操作

phoenix

hbase shell

查看表结构

!describe 表名

describe '表名'

查看表是否存在

!table 表名

exists '表名'

列出所有表

!tables

describe '表名'

查看表结构

!describe 表名

list

创建表

CREATE TABLE IF NOT EXISTS cellphone_md5_info(cellphone_md5 varchar PRIMARY KEY ,列簇.cellphone varchar);

create 'cellphone_md5_info_test','cellphone_md5','cellphone'

删除表

drop table 表名

disable '表名' 然后再 drop '表名'

查询数据总量

当单表数据小于百万行,可以通过select count(1) from table;当单表数据过大,不宜在phoenix中执行,请在hbase shell中查询

当单表数据小于百万,可以通过在hbase shell中执行count命令统计:count '表名';当单表数据过大,通过开启mapreduce 任务进行统计:在linux shell中执行(注意不是hbase shell中): hbase org.apache.hadoop.hbase.mapreduce.RowCounter 'CELLPHONE_MD5_INFO'

hbase通过mapreduce统计表总量

2cfae3b98850d0c21202d91a7365c413.png

spark-java插入hbase

pom.xml

通过maven-shade-plugin插件,让maven打jar包时包含导入的jar包,否则的话打jar包时不会将引用的jar包一并打包

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocati

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值