文档章节

Spark2.x写入Elasticsearch的性能测试

openfea
 openfea
发布于 2017/10/27 13:51
字数 815
阅读 346
收藏 3

一、Spark集成ElasticSearch的设计动机

ElasticSearch 毫秒级的查询响应时间还是很惊艳的。其优点有:

1.    优秀的全文检索能力

2.    高效的列式存储与查询能力

3.    数据分布式存储(Shard 分片)

相应的也存在一些缺点:

1.    缺乏优秀的SQL支持

2.    缺乏水平扩展的Reduce(Merge)能力,现阶段的实现局限在单机

3.    JSON格式的查询语言,缺乏编程能力,难以实现非常复杂的数据加工,自定义函数(类似Hive的UDF等)

Spark 作为一个计算引擎,可以克服ES存在的这些缺点:

1.    良好的SQL支持

2.    强大的计算引擎,可以进行分布式Reduce

3.    支持自定义编程(采用原生API或者编写UDF等函数对SQL做增强)

所以在构建即席多维查询系统时,Spark 可以和ES取得良好的互补效果

二、Spark与ElasticSearch结合的架构和原理

ES-Hadoop无缝打通了ES和Hadoop两个非常优秀的框架,我们既可以把HDFS的数据导入到ES里面做分析,也可以将es数据导出到HDFS上做备份,归档,其中值得一提的是ES-Hadoop全面的支持了Spark框架,其中包括Spark,Spark Streaming,Spark SQL,此外也支持Hive,Pig,Storm,Cascading,当然还有标准的MapReduce,无论用那一个框架集成ES,都是非常简洁的。最后还可以使用Kibana提供的可视化的数据分析一条龙服务,非常棒的组合

整个数据流转图如下

而我们今天要介绍的,就是使用ES-Hadoop里面的ES-Spark插件,来完成使用spark向ES里面大批量插入数据和加载数据。

三、集群的硬件配置

Spark集群含有3个节点,FEA-spk和Spark集群的交互采用yarn-client。

主机

cpu

mem

disk

10.68.23.89

1200MHZ*8

50g

400g

10.68.23.90

1200MHZ*8

50g

400g

10.68.23.91

1200MHZ*8

50g

400g

四、写入elasticsearch的数据介绍

elasticsearch副本数量是2个,每一个副本的大小是216.4g

数据的条数为88762914,字段的个数73个

五、FEA-spk写入ElasticSearch的原语实现

(1)   创建spk的连接

(2)   创建ElasticSearch的连接

(3)   加载数据到es中

数据的格式如下表所示

(4)   查看一下df1表的前十行

(5)将df1表的数据写回到ES里面,其中spark是index,people是type

由于数据量比较大,所以我们选择后台运行

进入spark web界面,查看运行情况

我们可以看到花费了2.3小时,如果对集群的资源和参数优化,时间可能会更短

六、Spark写回数据到ES的性能计算

每秒处理的数据条数=总条数/总时间=88762914/(2.5*60*60)=9863条

每条记录的大小=总大小/总条数=216.4*1024*1024k/88762914=3K

每秒能写多少兆=每秒处理的数据条数*每条记录的大小/1024=9863*3/1024=29M

七、FEA-spk结合ES适用的场景

不会使用Spark,想使用Spark分析存放在ES中的数据,把结果写入到ES里面,FEA-spk是一个不错的选择。

© 著作权归作者所有

openfea
粉丝 18
博文 86
码字总数 95615
作品 1
杭州
其他
私信 提问
Logstash及Elasticsearch 压力测试说明书

1 整体环境说明 1.1 硬件环境 1、 磁盘:SATA磁盘2块,磁盘阵列为RAID1 2、 CPU:2个4核CPU。具体参数:Intel(R) Xeon(R) CPU E5405 @ 2.00GHz 3、 内存:8G(8*1G) 4、 网卡:1000Mb/s 1....

橡皮24
2018/11/09
0
0
ES(elasticsearch)搜索引擎

ES(elasticsearch)搜索引擎 0、授人以渔,少走半年弯路! 死磕 Elasticsearch 方法论:普通程序员高效精进的 10 大狠招! 一、Elasitcsearch基础篇 1.1 Elasitcsearch基础认知 1、Elasticse...

Ocean_K
2018/09/11
2.2K
6
Elastic 在年度用户大会 Elastic{ON} 2018 上发布众多新功能和技术预览

下载超过 2.25 亿次,Elastic 公开 X-Pack 源代码 旧金山 (Elastic{ON} 2018) – 2018 年 2 月 27 日 – Elastic,Elasticsearch 和 Elastic Stack背后的公司,今天宣布其产品累计下载次数达...

Medcl
2018/03/01
7
0
当Elasticsearch遇见Kafka

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由michelmu发表于云+社区专栏 Elasticsearch作为当前主流的全文检索引擎,除了强大的全文检索能力和高扩展性之外,对多种数据...

腾讯云加社区
2018/11/12
0
0
ElasticSearch+kibana+logstash集群部署

ELK原理与介绍   ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用...

若此生无缘
2018/08/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Hibernate 5 的模块/包(modules/artifacts)

Hibernate 的功能被拆分成一系列的模块/包(modules/artifacts),其目的是为了对依赖进行独立(模块化)。 模块名称 说明 hibernate-core 这个是 Hibernate 的主要(main (core))模块。定义...

honeymoose
36分钟前
3
0
CSS--属性

一、溢出 当内容多,元素区域小的时候,就会产生溢出效果,默认是纵向溢出 横向溢出:在内容和容器之间再套一层容器,并且内部容器要比外部容器宽 属性:overflow/overflow-x/overflow-y 取值...

wytao1995
54分钟前
4
0
精华帖

第一章 jQuery简介 jQuery是一个JavaScript库 jQuery具备简洁的语法和跨平台的兼容性 简化了JavaScript的操作。 在页面中引入jQuery jQuery是一个JavaScript脚本库,不需要特别的安装,只需要...

流川偑
今天
6
0
语音对话英语翻译在线翻译成中文哪个方法好用

想要进行将中文翻译成英文,或者将英文翻译成中文的操作,其实有一个非常简单的工具就能够帮助完成将语音进行翻译转换的软件。 在应用市场或者百度手机助手等各大应用渠道里面就能够找到一款...

401恶户
今天
3
0
jenkins 插件下载加速最终方案

推荐做法 1、告诉jenkins 我哪些插件需要更新 jenkins插件清华大学镜像地址 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 1.进入jenkins系统管理 2.进入插件管...

vasks
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部