我在猪脚本中使用HBaseStorage和-caching选项,如下所示
HBaseStorage('countDetails:ansCount countDetails:divCount countDetails:unansCount countDetails:engCount countDetails:ineffCount countDetails:totalCount', '-caching 1000');
我可以看到这反映在我的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/
以上博客说我必须在bootstrap脚本中设置hbase.client.scanner.caching 我不知道该怎么做 它是否足够如果我在Hbase-conf中设置它。 请帮我解决这个问题
答案 0 :(得分:1)
hbase.client.scanner.caching
指向在扫描程序上调用next时将获取的行数(如果它不是从(本地,客户端)内存提供的话)。
较高的缓存值将使扫描程序更快,但会占用更多内存,而缓存为空时,下一次调用可能会花费更长时间。请勿将此值设置为调用之间的时间大于扫描程序超时;
即hbase.regionserver.lease.period
此属性默认为1分钟。客户必须
在此期间报告,他们被视为死亡。
答案 1 :(得分:1)
根据我的经验,HBase与Pig表现不佳。它你没有随机查询的要求然后只使用HDFS其他HB HB工作将是更好的选择。此外,在Hadoop MR作业中,您可以连接到Hbase(此选项为我提供了最佳性能)。