spark写入ES(动态模板)
使用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(动态模板)的更多相关文章
- 关闭ES动态创建mapping
使用ES的默认配置会使我们在索引不存在于mapping中的字段时,会自动创建. 这无疑会给我们带来困扰. 在我们不想要某个字段被搜索的时候,我们可以在开始关闭动态创建mapping. 执行如下操作: ...
- elasticsearch 动态模板设置
自定义动态映射 如果你想在运行时增加新的字段,你可能会启用动态映射.然而,有时候,动态映射 规则 可能不太智能.幸运的是,我们可以通过设置去自定义这些规则,以便更好的适用于你的数据. 日期检测 当 E ...
- elasticsearch 动态模板
在elasticsearch中,如果你有一类相似的数据字段,想要统一设置其映射,就可以用到一项功能:动态模板映射(dynamic_templates). 每个模板都有一个名字用于描述这个模板的用途,一 ...
- Logstash动态模板映射收集Nginx的Json格式日志
Logstash传输给ES的数据会自动映射为5索引,5备份,字段都为text的的索引.这样基本上无法进行数据分析.所以必须将Logstash的数据按照既定的格式存储在ES中,这时候就要使用到ES模板技 ...
- Spark读写ES
本文主要介绍spark sql读写es.structured streaming写入es以及一些参数的配置 ES官方提供了对spark的支持,可以直接通过spark读写es,具体可以参考ES Spar ...
- MapReduce和Spark写入Hbase多表总结
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 大家都知道用mapreduce或者spark写入已知的hbase中的表时,直接在mapreduc ...
- vert.x学习(六),动态模板与静态文件的结合
这篇学习在动态模板里面引入css,把动态模板与静态文件结合起来使用. 编写DynamicReference.java package com.javafm.vertx.helloworld; impo ...
- Python-将json文件写入ES数据库
1.安装Elasticsearch数据库 PS:在此之前需首先安装Java SE环境 下载elasticsearch-6.5.2版本,进入/elasticsearch-6.5.2/bin目录,双击执行 ...
- 迷你MVVM框架 avalonjs 沉思录 第3节 动态模板
模板的发明是编程史上的一大里程碑,让我们摆脱了烦锁且易出错的字符串拼接,维护性大大提高. 都在JSP,ASP时代,人们已经学会使用include等语句,将多个页面片断拼接成一个页面. 此外,为了将数据 ...
随机推荐
- careercup-扩展性和存储限制10.6
题目 你有10亿个url,每个url对应一个非常大的网页.你怎么检测重复的网页? 解答 网页大,数量多,要把它们载入内存是不现实的. 因此我们需要一个更简短的方式来表示这些网页.而hash表正是干这事 ...
- Swift_函数
Swift_函数 点击查看源码 定义和调用函数 //定义和调用函数 func testDefiningAndCallingFunctions() { func sayHello(_ personNam ...
- CodeChef March Lunchtime 2018 div2
地址https://www.codechef.com/LTIME58B?order=desc&sortBy=successful_submissions 简单做了一下,前三题比较水,第四题应该 ...
- Apache httpd Server Notes
1. httpd启动.停止以及重启 启动: apachectl –f $PATH_TO_CONF/httpd.conf 停止及重启 apachectl –k stop/restart/graceful ...
- 用Head方法获得百度搜索结果的真实地址
用Head方法获得百度搜索结果的真实地址 在百度中搜索"Java",第一条结果的链接为: https://www.baidu.com/link?url=HBOOMbhPKH4SfI ...
- 配置一个nginx反向代理&负载均衡服务器
一.基本信息 系统(L):CentOS 6.9 #下载地址:http://mirrors.sohu.com 反代&负载均衡(N):NGINX 1.14.0 #下载地址:http://nginx ...
- 关于instanceof的使用
测试单独一个类: <?php class A { } $a = new A(); if($a instanceof A){ echo "对象\$a实现了A类"; } 当一个子 ...
- centos7安装mysql5.7.18笔记
重装了一下系统,装了centos7,但是centos7下默认没有安装mysql,有MariaDB数据库,网上的解释是: “MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用 ...
- python应用:爬虫框架Scrapy系统学习第四篇——scrapy爬取笔趣阁小说
使用cmd创建一个scrapy项目: scrapy startproject project_name (project_name 必须以字母开头,只能包含字母.数字以及下划线<undersco ...
- python应用:爬虫框架Scrapy系统学习第二篇——windows下安装scrapy
windows下安装scrapy 依次执行下列操作: pip install wheel pip install lxml pip install PyOpenssl 安装Microsoft visu ...