使用es-hadoop插件,主要使用elasticsearch-spark-20_2.11-6.2.x.jar

官网:https://www.elastic.co/guide/en/elasticsearch/hadoop/current/reference.html

关于ES详细的配置参数 大家可以看下面的这个类:

org.elasticsearch.hadoop.cfg.ConfigurationOptions

sparkstreaming写入ES:
      
 
        SparkConf conf = new SparkConf();
conf.set("es.index.auto.create", "true");
conf.set("es.nodes", "10.8.18.16,10.8.18.45,10.8.18.76");
conf.set("es.port", "9200");
JavaStreamingContext ssc= null;
try {
ssc= new JavaStreamingContext(conf, new Duration(5000L));
JavaSparkContext jsc =ssc.sparkContext();
String json1 = "{\"reason\" : \"business\",\"airport\" : \"sfo\"}";
String json2 = "{\"participants\" : 5,\"airport\" : \"otp\"}"; JavaRDD<String> stringRDD = jsc.parallelize(ImmutableList.of(json1, json2));
Queue<JavaRDD<String>> microbatches = new LinkedList<JavaRDD<String>>();
microbatches.add(stringRDD);
JavaDStream<String> stringDStream = ssc.queueStream(microbatches); //接口1:es的配置通过SparkConf配置
//使用动态模板,用{}将动态生成的字段名括起来,注意是作用于index
//而不是type
//JavaEsSparkStreaming.saveJsonToEs(stringDStream, "spark-{airport}/doc"); Map<String,String> map = new HashMap<String,String>();
map.put("es.index.auto.create", "true");
map.put("es.nodes", "ip1,ip2,ip3");
map.put("es.resource.write", "spark-{airport}/doc");
map.put("es.port", "9200");
//接口2:es的配置通过HashMap配置,其中读取es是index的key为es.resource.read
//写入的key为es.resource.write
//JavaEsSparkStreaming.saveJsonToEs(stringDStream, map);
//接口3:与接口2类似,只是该接口支持直接填写index参数
JavaEsSparkStreaming.saveJsonToEs(stringDStream,"spark-{airport}/doc", map);
ssc.start();
ssc.awaitTermination();
} catch (Throwable e) {
// TODO 自动生成的 catch 块
ssc.close();
e.printStackTrace();
}
//使用动态模板,用{}将动态生成的字段名括起来,注意是作用于index

spark写入ES(动态模板)的更多相关文章

  1. 关闭ES动态创建mapping

    使用ES的默认配置会使我们在索引不存在于mapping中的字段时,会自动创建. 这无疑会给我们带来困扰. 在我们不想要某个字段被搜索的时候,我们可以在开始关闭动态创建mapping. 执行如下操作: ...

  2. elasticsearch 动态模板设置

    自定义动态映射 如果你想在运行时增加新的字段,你可能会启用动态映射.然而,有时候,动态映射 规则 可能不太智能.幸运的是,我们可以通过设置去自定义这些规则,以便更好的适用于你的数据. 日期检测 当 E ...

  3. elasticsearch 动态模板

    在elasticsearch中,如果你有一类相似的数据字段,想要统一设置其映射,就可以用到一项功能:动态模板映射(dynamic_templates). 每个模板都有一个名字用于描述这个模板的用途,一 ...

  4. Logstash动态模板映射收集Nginx的Json格式日志

    Logstash传输给ES的数据会自动映射为5索引,5备份,字段都为text的的索引.这样基本上无法进行数据分析.所以必须将Logstash的数据按照既定的格式存储在ES中,这时候就要使用到ES模板技 ...

  5. Spark读写ES

    本文主要介绍spark sql读写es.structured streaming写入es以及一些参数的配置 ES官方提供了对spark的支持,可以直接通过spark读写es,具体可以参考ES Spar ...

  6. MapReduce和Spark写入Hbase多表总结

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 大家都知道用mapreduce或者spark写入已知的hbase中的表时,直接在mapreduc ...

  7. vert.x学习(六),动态模板与静态文件的结合

    这篇学习在动态模板里面引入css,把动态模板与静态文件结合起来使用. 编写DynamicReference.java package com.javafm.vertx.helloworld; impo ...

  8. Python-将json文件写入ES数据库

    1.安装Elasticsearch数据库 PS:在此之前需首先安装Java SE环境 下载elasticsearch-6.5.2版本,进入/elasticsearch-6.5.2/bin目录,双击执行 ...

  9. 迷你MVVM框架 avalonjs 沉思录 第3节 动态模板

    模板的发明是编程史上的一大里程碑,让我们摆脱了烦锁且易出错的字符串拼接,维护性大大提高. 都在JSP,ASP时代,人们已经学会使用include等语句,将多个页面片断拼接成一个页面. 此外,为了将数据 ...

随机推荐

  1. Flex入坑指南

    弹性布局flex是一个几年前的CSS属性了,说它解放了一部分生产力不为过.至少解放了不少CSS布局相关的面试题 :) 之前网上流行的各种XX布局,什么postion: absolute+margin, ...

  2. linux 内存操作相关命令

    清理内存 echo 1 > /proc/sys/vm/drop_caches 查看内存使用情况 free –m 查看内存条数命令: dmidecode |grep -A16 "Memo ...

  3. js内部事件机制--单线程原理

    原文地址:https://www.xingkongbj.com/blog/js/event-loop.html http://www.haorooms.com/post/js_xiancheng ht ...

  4. mysql主从延迟复制

    需求描述 正常情况下我们是不会有刻意延迟从库的需求的,因为正常的线上业务自然是延迟越低越好.但是针对测试场景,业务上偶尔需要测试延迟场景下业务是否能正常运行. 解决方案 针对这种场景mysql有一个叫 ...

  5. dmesg功能介绍

    dmesg 命令的使用范例 ‘dmesg’命令设备故障的诊断是非常重要的.在‘dmesg’命令的帮助下进行硬件的连接或断开连接操作时,我们可以看到硬件的检测或者断开连接的信息.‘dmesg’命令在多数 ...

  6. 创建jq插件步骤

    无意看了这篇<jQuery插件开发精品教程,让你的jQuery提升一个台阶>文章,现在做一下总结. 一.jQuery插件的创建可以有三种方法 1.通过$.extend()来扩展jQuery ...

  7. PHP实现全自动化邮件发送 phpmailer

    PHPmailer           composer地址 function SendMail($msg,$theme,$content) { $mail = new \PHPMailer\PHPM ...

  8. .net第三方数据库物理卡号同步功能实现

    本地数据库用的是Oracle,第三方数据库是SQL Server,连接字符串保存在web.config里面. 第三方数据库为增量,每次读取要记录读取的最大位置.我是保存在本地txt文件里面. //保存 ...

  9. I2C驱动

    在I2C总线驱动下,也是硬件设备和驱动分离,使以就需要通过它们的名字来匹配,这样驱动的probe函数才能被调用 查看linux内核的Documents目录下的说明文件,可知构造i2c设备有4种方法: ...

  10. [OpenCV][关于OpenCV3.2.0+VS2015+Win10环境搭建]

    在VS2015上搭建OpenCV3.2.0+Win10 1.OpenCV3.2.0在VS2015上的配置 1).下载.解压OPENCV 登陆OpenCV官方网站下载相应版本的OpenCV-SDK 这里 ...