在我的hadoop映射器任务中,我通过扫描hbase表创建[key,value] = [sortKey,rowID] 在reduce任务中,当我执行Result = Htable.get(rowID)时,对于不同的rowIds,有些会随机返回null。但是在查询hbase shell时,我能够获取相同的rowId。对于输入hbase表行数为1000(映射器能够获取所有这些记录),大约100条记录将htable.get(rowID)返回为null(在reducer中),但所有这100条记录实际上都在表中可用。 / p>
任何想法为什么htable上的'get'会随机返回null?任何缓存或内存调整都可以解决这个问题吗?
我正在使用hadoop-1.0.3,hbase-0.92.1
答案 0 :(得分:0)
我使用hashmap存储那些Text rowid,并且cos的cos,它指的是循环内的相同位置。由于我在循环中进行了一些更新/删除,因此找不到某些行ID。将hashmap更改为string,或者创建一个新的Text对象,然后将其添加到hashmap中解决了这个问题。