在java中使用Apache commom池进行对象池

时间:2015-07-09 05:31:00

标签: java object-pooling

这是我的java代码

     SparkConf sparkConf = new SparkConf().setAppName("Hive");
     JavaSparkContext ctx = new JavaSparkContext(sparkConf);
     HiveContext sqlContext = new HiveContext(ctx.sc());

     Row[] results = sqlContext.sql("Select * from tablename").collect();
     for (int i = 0; i < results.length; i++) {
       System.out.println(results[i]);
       }

这比我预期的运行需要很长时间,我注意到这是因为每个查询都创建了对象。所以我决定使用Apache公共池,但我陷入了困境。任何人都可以帮助我为HiveContext类型的对象创建一个池。但到目前为止我已经尝试了

 private org.apache.commons.pool.ObjectPool<HiveContext> pool;

    public HivePool(org.apache.commons.pool.ObjectPool<HiveContext> pool) {
        this.pool = pool;
    }

1 个答案:

答案 0 :(得分:0)

你是否使用GenericObjectPool来实例化你的HivePool。
试试这个例子
https://commons.apache.org/proper/commons-pool/examples.html