分享

spark频繁访问hbase问题。

邓立辉 发表于 2015-11-25 15:33:48 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 4 10131
与遇到一个问题,在一个rdd的flapmap转化里要查询hbase。每个元素转化时都要创建habse链接再查询,感觉这样性能肯定会低。有什么方法只创建一次链接,或者创建一定数量做个类似池的东西。

已有(4)人评论

跳转到指定楼层
bioger_hit 发表于 2015-11-25 17:33:59
在创建个rdd把相关数据都弄出来。
回复

使用道具 举报

a1212516 发表于 2015-11-25 17:48:53
本帖最后由 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:09:02
本帖最后由 邓立辉 于 2015-11-25 21:10 编辑
a1212516 发表于 2015-11-25 17:48
用mappartition  在每一个partition分区里面只创建一个hbase链接,然后使用foreachXXX的进行操作,   
类似 ...

谢谢,我先试试。
回复

使用道具 举报

邓立辉 发表于 2015-11-25 21:55:11
bioger_hit 发表于 2015-11-25 17:33
在创建个rdd把相关数据都弄出来。

我用的spark streaming。新的rdd怎么创建?我只知道这样把参数传进来 JavaReceiverInputDStream<String> lines = ssc.socketTextStream(args[0], Integer.parseInt(args[1]), StorageLevels.MEMORY_ONLY);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条