java - 从Java Spark到ElasticSearch的连接数

标签 java hadoop elasticsearch apache-spark

我们正在使用SparkPstreaming和Java通过JavaPairRDD(Spark 1.6.0)的saveAsNewAPIHadoopFile方法将数据写入ElasticSearch。所有这些在本地和群集上都可以很好地工作。但是,我们确实注意到与ElasticSearch的连接数量增长非常快(从http://localhost:9200/_nodes/stats/http/_all?pretty中可以看到,用于运行本地系统),最终导致ElasticSearch变得非常慢。似乎为每个RDD都建立了一个新连接,并且看起来好像也再次关闭了。是否可以打开连接并使其保持尽可能长的打开时间,或者至少保持相当长的时间?我们使用提到的Spark 1.6.0和ElasticSearch 2.0.0。

最佳答案

是的,如果要在foreachRDD中创建连接,则会在每个RDD上创建一个连接。您应该使用连接池。在文档中对此进行了详细介绍:

https://spark.apache.org/docs/latest/streaming-programming-guide.html#design-patterns-for-using-foreachrdd

spark-streaming and connection pool implementation

关于java - 从Java Spark到ElasticSearch的连接数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39509653/

相关文章:

sql - 失败:执行错误,在访问Hive View 时从org.apache.hadoop.hive.ql.exec.mr.MapRedTask异常返回代码2

java - MapReduce - reducer 不组合键

elasticsearch - Elasticsearch长短语搜索

java - 如何从JSP页面另存为pdf?

spring - 由 : java. lang.ClassNotFoundException : org. apache.ignite.internal.util.spring.IgniteSpringHelperImpl 引起

json - ElasticSearch将条件语句 'and'与 'or'组合

elasticsearch - 在Elasticsearch中需要对具有数字和字母数字值的字段进行排序

java - 实例变量和构造函数?

java - 使用 MVVM 进行 Android UI 测试

JAVA - 如何编码网格中的节点邻居?