分享

HBase 扫描中出现数据重复

背景:
spark 通过newApiHadoopRdd扫描Hbase ,默认一个region起一个task,但是效率太低 就对regin内部分片再细分。经过再次细分的分片应该是没啥问题的  下面是打出的startkey endkey regionLocation,大致如下

分片前:
                        0400000000000000        bigdata-hbase-slave04.ys.diditaxi.com
0400000000000000        0800000000000000        bigdata-hbase-slave05.ys.diditaxi.com

分片后
                        0100000000000000        bigdata-hbase-slave04.ys.diditaxi.com
0100000000000000        0200000000000000        bigdata-hbase-slave04.ys.diditaxi.com
0200000000000000        0300000000000000        bigdata-hbase-slave04.ys.diditaxi.com
0300000000000000        0400000000000000        bigdata-hbase-slave04.ys.diditaxi.com
0400000000000000        0500000000000000        bigdata-hbase-slave05.ys.diditaxi.com
0500000000000000        0600000000000000        bigdata-hbase-slave05.ys.diditaxi.com
0600000000000000        0700000000000000        bigdata-hbase-slave05.ys.diditaxi.com

0700000000000000        0800000000000000        bigdata-hbase-slave05.ys.diditaxi.com



问题
扫描出的数据有不全和重复的问题。
重复:好多result中的rowkey是想多的,字段也是相同的。
缺失:部分rowkey对应的数据好像没有读取出来。hbase中有大约一亿条rowkey,但对读出来的数据rowkey做distinct后count发现只有不到100万。

求问各位大神有没有遇到过此类问题   求帮忙

已有(4)人评论

跳转到指定楼层
bioger_hit 发表于 2019-3-19 11:17:30
分片前:
                        0400000000000000        bigdata-hbase-slave04.ys.diditaxi.com
0400000000000000        0800000000000000        bigdata-hbase-slave05.ys.diditaxi.com

分片后
                        0100000000000000        bigdata-hbase-slave04.ys.diditaxi.com
0100000000000000        0200000000000000        bigdata-hbase-slave04.ys.diditaxi.com
0200000000000000        0300000000000000        bigdata-hbase-slave04.ys.diditaxi.com
0300000000000000        0400000000000000        bigdata-hbase-slave04.ys.diditaxi.com

楼主没有列01、02、03的。可以通过运行日志核实下,为何会出现01,02,03被替换了。
另外楼主为何要做distinct,rowkey本身是不能重复的。这个问题就很奇怪了。





回复

使用道具 举报

zcfightings 发表于 2019-3-19 14:25:47
bioger_hit 发表于 2019-3-19 11:17
分片前:
                        0400000000000000        bigdata-hbase-slave04.ys.diditaxi.com
040 ...

首先感谢您的关注及回复!
是我表述不太清楚  是这样
以前的一个分片
startkey为  null(或者理解为000000000000)       endkey 0400000000000000     region_location  bigdata-hbase-slave04.ys.diditaxi.com
被我拆分为四个分片
startkey     null(同理解为000000000000)          endkey  0100000000000000    region_location  bigdata-hbase-slave04.ys.diditaxi.com
startkey     010000000000                              endkey  0200000000000000    region_location  bigdata-hbase-slave04.ys.diditaxi.com
startkey     020000000000                              endkey  0300000000000000    region_location  bigdata-hbase-slave04.ys.diditaxi.com
startkey     030000000000                              endkey  0400000000000000    region_location  bigdata-hbase-slave04.ys.diditaxi.com


我感觉这是没有问题的

但实际的情况是 拆分后  读取的数据有重复
回复

使用道具 举报

bioger_hit 发表于 2019-3-19 22:22:37
zcfightings 发表于 2019-3-19 14:25
首先感谢您的关注及回复!
是我表述不太清楚  是这样
以前的一个分片

有重复肯定是异常了。看下运行日志,里面肯定有信息的。没问题过这个情况。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条