社区日报 第478期 (2018-12-14)
社区日报 • laoyang360 发表了文章 • 0 个评论 • 1654 次浏览 • 2018-12-14 11:12
http://t.cn/EyOugcQ
2、Elasticsearch最佳实践之核心概念与原理
http://t.cn/EUJa22D
3、Elasticsearch和Hive比较
http://t.cn/EUJaPGa
编辑:铭毅天下
归档:https://elasticsearch.cn/article/6196
订阅:https://tinyletter.com/elastic-daily
elasticsearch id
Elasticsearch • rochy 回复了问题 • 2 人关注 • 1 个回复 • 4642 次浏览 • 2018-12-14 13:02
elasticsearch单值桶
回复Elasticsearch • hnj1575565068 发起了问题 • 1 人关注 • 0 个回复 • 1537 次浏览 • 2018-12-14 09:46
写入压测导致cpu context switch 过高,cpu sys 过高,系统卡住
Elasticsearch • zqc0512 回复了问题 • 5 人关注 • 3 个回复 • 3700 次浏览 • 2019-01-07 10:58
filebeat收集日志时多条件创建索引
Beats • xuebin 回复了问题 • 2 人关注 • 2 个回复 • 5632 次浏览 • 2018-12-14 11:04
spring boot 2.0可以整合elasticsearch 5.4.0吗
Elasticsearch • qqq1234567 回复了问题 • 2 人关注 • 2 个回复 • 1510 次浏览 • 2018-12-13 18:20
kibana可视化 中怎么 截取keyword 信息
Kibana • zqc0512 回复了问题 • 5 人关注 • 4 个回复 • 4851 次浏览 • 2018-12-24 08:51
关于使用filebeat 收集日志的问题
默认分类 • rochy 回复了问题 • 2 人关注 • 1 个回复 • 3031 次浏览 • 2018-12-13 17:15
query cache和filter cache的区别和联系?
Elasticsearch • rochy 回复了问题 • 3 人关注 • 1 个回复 • 2804 次浏览 • 2018-12-13 17:13
es没有写入,监控发现有bulk的任务?
Elasticsearch • fanmo3yuan 回复了问题 • 3 人关注 • 2 个回复 • 2152 次浏览 • 2018-12-17 11:03
社区日报 第477期 (2018-12-13)
社区日报 • 白衬衣 发表了文章 • 0 个评论 • 1641 次浏览 • 2018-12-13 14:44
http://t.cn/EUxkESo
2.Elasticsearch线程池分析
http://t.cn/EUxkDNg
3.Elasticsearch Pipeline Aggregations指南
http://t.cn/EUxFzZX
编辑:金桥
归档:https://elasticsearch.cn/article/6195
订阅:https://tinyletter.com/elastic-daily
ES中如何实现以下等价的solr搜索意图?
Elasticsearch • Memento 回复了问题 • 2 人关注 • 1 个回复 • 1729 次浏览 • 2019-11-07 14:53
请教:日志已导入es,但因为一个空格没匹配到,导至无法分词,那么我能在es中修改该条日志,重新匹配吗?
Elasticsearch • rochy 回复了问题 • 2 人关注 • 1 个回复 • 2219 次浏览 • 2018-12-13 11:18
Day 13 - Elasticsearch-Hadoop打通Elasticsearch和Hadoop
Advent • Jasonbian 发表了文章 • 3 个评论 • 10522 次浏览 • 2018-12-13 09:34
ES-Hadoop打通Elasticsearch和Hadoop
介绍
Elasticsearch作为强大的搜索引擎,Hadoop HDFS是分布式文件系统。
ES-Hadoop是一个深度集成Hadoop和ElasticSearch的项目,也是ES官方来维护的一个子项目。Elasticsearch可以将自身的Document导入到HDFS中用作备份;同时也可以将存储在HDFS上的结构化文件导入为ES中的Document,通过实现Hadoop和ES之间的输入输出,可以在Hadoop里面对ES集群的数据进行读取和写入,充分发挥Map-Reduce并行处理的优势,为Hadoop数据带来实时搜索的可能。
ES-Hadoop插件支持Map-Reduce、Cascading、Hive、Pig、Spark、Storm、yarn等组件。
ES-Hadoop整个数据流转图如下:
环境配置
- Elasticsearch 5.0.2
- Centos 7
- elasticsearch-hadoop 5.0.2
- repository-hdfs-5.0.2
Elasticsearch备份数据到HDFS
介绍
Elasticsearch副本提供了数据高可靠性,在部分节点丢失的情况下不中断服务;但是副本并不提供对灾难性故障的保护,同时在运维人员误操作情况下也不能保障数据的可恢复性。对于这种情况,我们需要对Elasticsearch集群数据的真正备份。
通过快照的方式,将Elasticsearch集群中的数据备份到HDFS上,这样数据既存在于Elasticsearch集群中,有存在于HDFS上。当ES集群出现不可恢复的故障时,可以将数据从HDFS上快速恢复。
操作步骤
- 下载插件 <https://artifacts.elastic.co/d ... gt%3B 保存在/usr/local下
- 安装插件
<br /> cd /usr/local/es/elasticsearch-5.0.2/bin<br /> ./elasticsearch-plugin install file:///usr/local/repository-hdfs-5.0.2.zip<br />
- 安装成功后需要重启Elasticsearch
备份与恢复
- 构建一个仓库
<br /> PUT <a href="http://192.168.10.74:9200/_snapshot/backup" rel="nofollow" target="_blank">http://192.168.10.74:9200/_snapshot/backup</a><br /> { <br /> "type": "hdfs", <br /> "settings": { <br /> "uri": "hdfs://192.168.10.170:9000", <br /> "path": "/es", <br /> "conf_location": "/usr/local/hadoop/etc/hadoop/hdfs-site.xml" <br /> }<br /> }<br />
- 备份快照
<br /> PUT <a href="http://192.168.10.74:9200/_snapshot/backup/snapshot_users?wait_for_completion=true" rel="nofollow" target="_blank">http://192.168.10.74:9200/_sna ... Dtrue</a><br /> {<br /> "indices": "users", //备份users的index,注意不设置这个属性,默认是备份所有index<br /> "ignore_unavailable": true,<br /> "include_global_state": false<br /> }<br />
- 恢复快照
<br /> POST <a href="http://192.168.10.74:9200/_snapshot/backup/snapshot_users/_restore" rel="nofollow" target="_blank">http://192.168.10.74:9200/_sna ... store</a><br /> {<br /> "indices": "users", //指定索引恢复,不指定就是所有<br /> "ignore_unavailable": true, //忽略恢复时异常索引<br /> "include_global_state": false //是否存储全局转态信息,fasle代表有一个或几个失败,不会导致整个任务失败<br /> }<br />
整合Spark与Elasticsearch
整体思路
- 数据首先存储在HDFS上,可以通过Spark SQL直接导入到ES中
- Spark SQL可以直接通过建立Dataframe或者临时表连接ES,达到搜索优化、减少数据量和数据筛选的目的,此时数据只在ES内存中而不再Spark SQL中
- 筛选后的数据重新导入到Spark SQL中进行查询
引入依赖
```java
org.elasticsearch
elasticsearch-hadoop
5.0.2
```
### 具体流程
- 数据在HDFS上,数据存储在HDFS的每个DataNode的block上
- 数据加载到Spark SQL
- 数据从HDFS加载到Spark SQL中,以RDD形式存储
java<br /> JavaRDD<String> textFile = spark.read().textFile("hdfs://192.168.10.170:9000/csv/user.csv")<br />
- 添加数据结构信息转换为新的RDD
java<br /> JavaRDD<UserItem> dataSplits = textFile.map(line -> {<br /> String records = line.toString().trim();<br /> String record = records.substring(0,records.length() - 1).trim();<br /> String[] parts = record.split("\\|");<br /> UserItem u = new UserItem();<br /> u.setName(parts[0]);<br /> u.setAge(parts[1]);<br /> u.setHeight(parts[2]);<br /> return u;<br /> });<br />
- 根据新的RDD创建DataFrame
java<br /> DataSet<Row> ds = spark.createDataFrame(dataSplits, UserItem.class);<br />
- 由Dataset
创建索引,并写入ES
<br /> JavaEsSparkSQL.saveToEs(ds, "es_spark/users");<br />
- 数据从HDFS加载到Spark SQL中,以RDD形式存储
- 数据在ES中建立索引
- Spark SQL通过索引对ES中的数据进行查询
java<br /> SparkSession spark = SparkSession.builder().appName("es-spark").master("local").config("es.index.auto.create", true).getOrCreate();<br /> Map<String, String> options = new HashMap<>();<br /> options.put("pushdown", "true");<br /> options.put("es.nodes","192.168.10.74:9200");<br /> <br /> Dataset<Row> df = spark.read().options(options).format("org.elasticsearch.spark.sql").load("es_spark/users");<br /> df.createOrReplaceTempView("users");<br /> <br /> Dataset<Row> userSet = spark.sql("SELECT name FORM users WHERE age >=10 AND age <= 20");<br /> userSet.show();<br />
结束
ES-Hadoop无缝打通了ES和Hadoop两个非常优秀的框架,从而让ES的强大检索性能帮助我们快速分析海量数据。
社区日报 第476期 (2018-12-12)
社区日报 • rockybean 发表了文章 • 0 个评论 • 1607 次浏览 • 2018-12-12 22:52
http://t.cn/EUfESt7
2. 6.5.3发布了,还没升级到6的同学又多了一个新的选择!
http://t.cn/EUfEHvA
3. (自备梯子)如何不停机修改索引的 mapping?
http://t.cn/EUfErLr
编辑:rockybean
归档:https://elasticsearch.cn/article/6193
订阅:https://tinyletter.com/elastic-daily