我在 pig 脚本中将HBaseStorage与-caching选项一起使用,如下所示
HBaseStorage('countDetails:ansCount countDetails:divCount countDetails:unansCount countDetails:engCount countDetails:ineffCount countDetails:totalCount', '-caching 1000');
我可以看到这反射(reflect)在我的job.xml中
但是我可以看到它没有时差,我正在处理1000万条记录并将大约160mb的数据存储到HBase中。
当我将结果存储在hdfs中时,要花3分钟来处理同一作业就需要30分钟才能存储到HBase中。
我什至尝试设置
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中设置它就足够了。
请帮助我
最佳答案
hbase.client.scanner.caching
指向如果未从(本地,客户端)内存提供服务,则在扫描仪上调用next时将获取的行数。
较高的缓存值将启用更快的扫描程序,但会消耗更多的内存,并且当缓存为空时,对next的某些调用可能会花费越来越长的时间。请勿将该值设置为两次调用之间的时间大于扫描程序的超时时间;
即hbase.regionserver.lease.period
此属性默认为1分钟。客户必须
在此期间内报告,否则将被视为死亡。
关于hadoop - PIG中是否有HBaseStorage的替代方案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20119554/