spark频繁访问hbase问题。
与遇到一个问题,在一个rdd的flapmap转化里要查询hbase。每个元素转化时都要创建habse链接再查询,感觉这样性能肯定会低。有什么方法只创建一次链接,或者创建一定数量做个类似池的东西。在创建个rdd把相关数据都弄出来。
本帖最后由 a1212516 于 2015-11-25 17:56 编辑
用mappartition在每一个partition分区里面只创建一个hbase链接,然后使用foreachXXX的进行操作,
类似下面代码:
rdd =>
rdd.foreachPartition { partitionOfRecords => val connection = createNewConnection() partitionOfRecords.foreach(record => connection.send(record)) connection.close()}
只是一个思路,仅供参考
本帖最后由 邓立辉 于 2015-11-25 21:10 编辑
a1212516 发表于 2015-11-25 17:48
用mappartition在每一个partition分区里面只创建一个hbase链接,然后使用foreachXXX的进行操作,
类似 ...
谢谢,我先试试。
bioger_hit 发表于 2015-11-25 17:33
在创建个rdd把相关数据都弄出来。
我用的spark streaming。新的rdd怎么创建?我只知道这样把参数传进来 JavaReceiverInputDStream<String> lines = ssc.socketTextStream(args, Integer.parseInt(args), StorageLevels.MEMORY_ONLY);
页:
[1]