zcfightings 发表于 2019-3-19 10:40:03

HBase 扫描中出现数据重复

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

分片前:
                      0400000000000000        bigdata-hbase-slave04.ys.diditaxi.com0400000000000000        0800000000000000        bigdata-hbase-slave05.ys.diditaxi.com
分片后                      0100000000000000        bigdata-hbase-slave04.ys.diditaxi.com0100000000000000        0200000000000000        bigdata-hbase-slave04.ys.diditaxi.com0200000000000000        0300000000000000        bigdata-hbase-slave04.ys.diditaxi.com0300000000000000        0400000000000000        bigdata-hbase-slave04.ys.diditaxi.com0400000000000000        0500000000000000        bigdata-hbase-slave05.ys.diditaxi.com0500000000000000        0600000000000000        bigdata-hbase-slave05.ys.diditaxi.com0600000000000000        0700000000000000        bigdata-hbase-slave05.ys.diditaxi.com
0700000000000000        0800000000000000        bigdata-hbase-slave05.ys.diditaxi.com


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

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_locationbigdata-hbase-slave04.ys.diditaxi.com
被我拆分为四个分片
startkey   null(同理解为000000000000)          endkey0100000000000000    region_locationbigdata-hbase-slave04.ys.diditaxi.com
startkey   010000000000                              endkey0200000000000000    region_locationbigdata-hbase-slave04.ys.diditaxi.com
startkey   020000000000                              endkey0300000000000000    region_locationbigdata-hbase-slave04.ys.diditaxi.com
startkey   030000000000                              endkey0400000000000000    region_locationbigdata-hbase-slave04.ys.diditaxi.com


我感觉这是没有问题的

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

bioger_hit 发表于 2019-3-19 22:22:37

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


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

美丽天空 发表于 2019-3-20 22:58:34

来学习下
页: [1]
查看完整版本: HBase 扫描中出现数据重复