spark 写 ElasticSearch 提升性能解决方案
来源:互联网 发布:facebook 聊天软件 编辑:程序博客网 时间:2024/06/01 08:22
ES 官网提供了一套Spark写ES接口
参见 : https://www.elastic.co/guide/en/elasticsearch/hadoop/current/spark.html
在工作实践中使用 Spark Streaming 写 ES 发现性能太差了,经研究发现,这套接口基于es底层http的restful接口而实现,
我另辟蹊径,采用TCP通信方式,写ES,性能获得了极大提升。
经验分享给大家,
写ES 代码片段如下
resDF.foreachPartition { (iterRecords: Iterator[Row]) => val settings = Settings.settingsBuilder.put("cluster.name", "myES").build val client = TransportClient.builder.settings(settings).build client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("10.200.8.187"), 9300)) val bulkRequest = client.prepareBulk iterRecords.foreach((row: Row) => { val jsonMap = new util.HashMap[String, String] index_field.foreach { case (index, field) => { if (row.isNullAt(index)) jsonMap.put(field, null) else { jsonMap.put(field, row.get(index).toString) }// jsonMap.put(field, row.get(index).toString)// (index, field) } } bulkRequest.add(client.prepareIndex(row.get(esIndex_index).toString, row.get(esType_index).toString, row.get(esID_index).toString).setSource(JSONObject.toJSONString(jsonMap))) } ) println("bulkRequest.numberOfActions():" + bulkRequest.numberOfActions) if (bulkRequest.numberOfActions > 0) { val bulkResponse: BulkResponse = bulkRequest.execute.actionGet if (bulkResponse.hasFailures) { println("failed processing bulk index requests " + bulkResponse.buildFailureMessage) } } client.close() // connection.close() }
阅读全文
0 0
- spark 写 ElasticSearch 提升性能解决方案
- 提升HBase写性能
- 提升HBase写性能
- 提升HBase写性能
- 提升HBase写性能
- 提升HBase写性能
- 提升HBase写性能
- 【HBase】提升HBase写性能
- 【HBase】提升HBase写性能
- paip.提升性能---首页性能加快解决方案
- 双倍提升Apache Spark排序性能
- 双倍提升Apache Spark排序性能
- AMD Torrenza解决方案 提升密集运算性能
- Jquery优化效率 提升性能解决方案
- Jquery优化效率 提升性能解决方案
- Jquery优化效率 提升性能解决方案
- Jquery优化效率 提升性能解决方案
- Jquery优化效率 提升性能解决方案
- maven四
- Adaboost算法
- 北京现共享男友 盘点那些奇葩的共享物品---众智云
- 两个单链表相交,求开始相交的点
- yum 安装Java8
- spark 写 ElasticSearch 提升性能解决方案
- Html 类选择器
- <数据结构与算法>顺序查找
- 关于IDEA idea .java文件 右下角有个红色j,解决方法
- Android使用Gson解析JSON数据
- java 判断日期是否是节假日
- 自勉
- python 连接数据库执行sql 查询
- 647. Palindromic Substrings 回文子串