使用ES-Hadoop插件结合spark向es插入数据

上篇文章简单介绍了ES-Hadoop插件的功能和使用场景,本篇就来看下如何使用ES-Hadoop里面的ES-Spark插件,来完成使用spark想es里面大批量插入数据。

这里说明下ES-Hadoop是一个fat的maven依赖,也就是引入这个包会导入许多额外的依赖,不建议这么搞,除非是测试为了方便用的,实际情况是ES也单独提供了每个不同框架的mini包,比如说只使用spark那么就可以单独引入es-spark的包,而不需要使用fat包因为它会附加引入其他的包依赖,如果使用Hive那就单独引入es-hive的包即可。这里面唯一需要注意的就是注意版本问题,不同的框架的版本和es-hadoop的组件都有对应的版本,使用不当会报异常,具体的情况,请参考官网文档:

https://www.elastic.co/guide/en/elasticsearch/hadoop/current/install.html

下面看下如何使用es-spark读写es的数据:

spark版本:2.1.0

Scala版本:2.11.8

es版本:2.3.4

索引要引入下面的依赖pom才行

这里为了快速体验,所以直接使用spark的local模式测试,如果要放到正式环境运行,切记把local模式的代码去掉。

先看下向es里面插入数据的代码,非常简单:

然后我们看下如何读取es里面的数据:

从上面的代码量我们可以看到非常少,这是由于es-spark底层已经帮我们封装好了相关的代码,所以用起来非常简单,围绕的核心还是rdd,无论是写入es,还是从es读取数据都是通过spark的rdd做中转的,我们只要把我们的目标数据给转成RDD或者DataFrame就能非常方便的与es对接了。

上面的代码使用spark的core来完成的,此外我门还可以使用spark sql或者spark streaming来与es对接,这个以后用到的时候再总结分享,最后使用spark操作es的时候我门还可以有非常多的配置参数设置,本例子中只使用了部分的参数,关于详细的配置参数 大家可以看下面的这个类:

官网文档:

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

原文发布于微信公众号 - 我是攻城师(woshigcs)

原文发表时间:2017-05-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

10g 一主多备的搭建技巧(r6笔记第13天)

在数据库环境中,一主一备是比较传统的使用方式,在灾难发生的时候,可以灵活的切换主备角色,依然可以保持服务的可访问性。但是一些核心系统来说还是会有更多的过滤,一主...

2956
来自专栏不止是前端

实用主义:Github同步fork的项目

38810
来自专栏步履前行

RabbitMQ学习 (二)---多消费者工作时的消息处理

ACK 在上一篇中,我们尝试安装并且运行了一个一对一的MQ,这一篇中,我们来看下多消费者和持久化相关的问题! 在我们的应用中,应用通常部署多个服务(当然,你部...

5526
来自专栏公有云大数据平台弹性 MapReduce

YARN之label调度在EMR中的应用

在腾讯云EMR的用户场景使用当中,有部分用户要求希望他们能在任务高峰期,对集群进行扩容,利用云端的弹性计算资源,为集群扩展计算能力,并且在集群相对空闲的情况下,...

3043
来自专栏有困难要上,没有困难创造困难也要上!

CentOS7安装Caffe

3167
来自专栏逻辑熊猫带你玩Python

“不可不学是编程,不可不用是git” | github篇

从Get一个github的账号开始,这里按照提示,走一走流程就好了,相信聪明的你可以的。

1942
来自专栏PPV课数据科学社区

工具 | 大数据系列(3)——Hadoop集群完全分布式坏境搭建

文|指尖流淌 前言 上一篇我们讲解了Hadoop单节点的安装,并且已经通过VMware安装了一台CentOS 6.8的Linux系统,咱们本篇的目标就是要配置一...

3546
来自专栏企鹅号快讯

Flume和Kafka

Flume+Kafka+Storm+Redis实时分析系统基本架构 1) 整个实时分析系统的架构是 2) 先由电商系统的订单服务器产生订单日志, 3...

6606
来自专栏散尽浮华

Mesos+Zookeeper+Marathon的Docker管理平台部署记录(1)

随着"互联网+"时代的业务增长、变化速度及大规模计算的需求,廉价的、高可扩展的分布式x86集群已成为标准解决方案,如Google已经在几千万台服务器上部署分布式...

3195
来自专栏散尽浮华

Netdata---Linux系统性能实时监控平台部署记录

通常来说,作为一个Linux的SA,很有必要掌握一个专门的系统监控工具,以便能随时了解系统资源的占用情况。下面就介绍下一款Linux性能实时监测工具-Netda...

8458

扫码关注云+社区

领取腾讯云代金券