我在pig脚本中使用带有-caching选项的HBaseStorage,如下所示
HBaseStorage('countDetails:ansCount countDetails:divCount countDetails:unansCount countDetails:engCount countDetails:ineffCount countDetails:totalCount', '-caching 1000');我可以看到这反映在我的job.xml中,但我可以看到没有时间差,我正在处理1000万条记录,并将大约160mb的数据存储到HBase中。当我将结果存储在hdfs中时,处理相同的作业需要3分钟,将结果存储到HBase中需要30分钟。
我甚至尝试通过设置
SET hbase.client.scanner.caching 1000;请告诉我怎样才能缩短时间。有没有HBaseStorage的替代品?http://apmblog.compuware.com/2013/02/19/speeding-up-a-pighbase-mapreduce-job-by-a-factor-of-15/
上面的博客说我必须在引导脚本中设置hbase.client.scanner.caching,我不知道怎么做,如果我在Hbase-conf中设置它就足够了吗?请帮我解决这个问题
发布于 2013-12-06 01:40:40
hbase.client.scanner.caching指向在扫描器上调用next时将获取的行数,如果它不是从(本地,客户端)内存中提供的。
较高的缓存值将启用更快的扫描器,但会消耗更多内存,当缓存为空时,next的一些调用可能会花费越来越长的时间。不要将此值设置为使调用之间的时间大于扫描仪超时;即hbase.regionserver.lease.period默认情况下,此属性为1分钟。客户必须在这段时间内报告,否则将被视为死亡。
发布于 2013-12-06 02:21:29
根据我的经验,HBase在Pig上的表现不是很好。如果你没有随机查找的需求,那么只使用HDFS,否则HBase MR作业将是更好的选择。另外,在Hadoop MR作业中,你可以连接到Hbase(这个选项给了我最好的性能)。
https://stackoverflow.com/questions/20119554
复制相似问题