MR中Hbase的Scan使用技巧
- - ITeye博客Hadoop的MR运算中,Hbase可以作为输入数据源参与运算,其中作为HTable的迭代器Scan有几个使用技巧. 为设置获取记录的列个数,默认无限制,也就是返回所有的列. 每次从服务器端读取的行数,默认为配置文件中设置的值. 为是否缓存块,默认缓存,我们分内存,缓存和磁盘,三种方式,一般数据的读取为内存->缓存->磁盘,当MR的时候为非热点数据,因此不需要缓存.
Hadoop的MR运算中,Hbase可以作为输入数据源参与运算,其中作为HTable的迭代器Scan有几个使用技巧
涉及的方法如下:
public void setBatch(int batch) public void setCaching(int caching) public void setCacheBlocks(boolean cacheBlocks)
public void setBatch(int batch) :
为设置获取记录的列个数,默认无限制,也就是返回所有的列
public void setCaching(int caching):
每次从服务器端读取的行数,默认为配置文件中设置的值
public void setCacheBlocks(boolean cacheBlocks):
为是否缓存块,默认缓存,我们分内存,缓存和磁盘,三种方式,一般数据的读取为内存->缓存->磁盘,当MR的时候为非热点数据,因此不需要缓存
因此在MR的时候最好设置如下:
scan.setCacheBlocks(false); scan.setCaching(200);//大了占内存,但是rpc少 scan.setBatch(6);//你需要的列