Mysql到HBase的迁移

Hive可是远重要于HBase

 

sqoop import 

--connect jdbc:mysql://localhost/retail_db

--username  root 

--password hadoop

--table products        // mysql的products表

--columns "customernum,customername"    //里面的两个原始数据列

--hbase-table customercontactinfo     新开关,hive可以自动创建表,但是hbase需要你提前创建好

--column-family CustomerName      //导入到我hbase这个表的这个column-family下面

--hbase-row-key  customernum   hbase是必须通过row-key来导入的

--m 1     

 

问题:我们可以更新HBase的一条记录吗?

HBase只能用put,如果原来有这个row-key的数据,那他只能替换成最新的版本。

多版本支持是基于column family的,比如说第一个CF我支持5个版本,第二个CF支持10个版本。

如何检查HBase表中有哪些列?

desc并不能查询出column,只能查出column family。

理论上同一条记录是可以在同一个CF下,有不同的列的,所以没有可以真正检查列的命令。

 

1. 首先我们创建hbase表

2. 导入

例子

3.进入Hbase查看下记录数目,果然导入了600多条

 

 

这次导入我们换--query,不用--table了

 

4.查下数据

scan 'products' , {LIMIT -->10}

也就是送到了data列族下面

 

区别:

往HBase里面放就不用太担心mapper数量了,比如给个15,但是必须让每个mapper有活儿干。

因为HBase是有compaction的,不怕产生很多小文件,而hive没有。

 

问题:重新导了一遍数据,为什么count一下Hbase的记录数还是1345?

第一次是填了第一个column family的记录,基于row-key

第二次我还是基于row-key插入,插入的是第二个column family。

所以记录数目不会增加,如果值插重复了,就产生多个版本。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值