ElasticSearch那些事儿(一)

MySQL数据以全量和增量方式,同步到ES搜索引擎 知识的广度来自知识的深度,学习如果不成体系那是多可怕的一件事儿,希望我们在未来的学习道路上坚守初心,不要给自己留下遗憾,以自己喜欢的方式生活,做自己喜欢做的事,宠爱自己,做一个独一无二的自己! 对于文章中出现的任何错误请大家批评指出,会及时做出修改! 有任何想要讨论和学习的问题可联系我:cittaksana@qq.com MySQL数据以全量和增量方式,同步到ES搜索引擎一、配置详解1、下载内容2、核心配置3、启动进程二、ES客户端工具 一、配置详解 场景描述:MySQL数据表以全量和增量的方式向E. 阅读详情

目录

一、简介

二、下载并运行ElasticSearch

三、在Windows上运行ElasticSearch

四、在docker上运行ElasticSearch


Elasticsearch 是一个实时的分布式搜索分析引擎, 它能让你以一个之前从未有过的速度和规模,去探索你的数据。它可以快速地储存、搜索和分析海量数据,维基百科、Stack Overflow、Github 都采用它:

  • Wikipedia 使用 Elasticsearch 提供带有高亮片段的全文搜索,还有 search-as-you-type 和 did-you-mean 的建议;
  • 卫报 使用 Elasticsearch 将网络社交数据结合到访客日志中,实时的给它的编辑们提供公众对于新文章的反馈;
  • Stack Overflow 将地理位置查询融入全文检索中去,并且使用 more-like-this 接口去查找相关的问题与答案;
  • GitHub 使用 Elasticsearch 对1300亿行代码进行查询。

一、简介

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful Web接口,同时Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

  • Elastic能够解决的问题主要包括:
  • 数据库字段太多,查询太慢,索引没有办法再做优化;
  • 数据库一个count就拖死全表;
  • mysql的limit翻到几十几百万页后实在是太慢;
  • 数据库like实在太慢,每次like整个服务器cpu内存飙高,拖慢整个线上服务;
  • 想要对外/内提供db里的数据的全文检索服务;
  • 提供日志(程序运行)查询功能。

Elastic是基于java开发的语言,在ElasticSearch 6.5版本开始,支持了Java11的版本。在7.0开始,ElasticSaerch已经内置了java开发环境。

二、下载并运行ElasticSearch

可以从https://www.elastic.co/cn/downloads/上下载对应的ElasticSearch产品,包括:

  • Elasticsearch(分布式、RESTful 风格的搜索和分析)
  • Kibana(实现数据可视化)
  • Logstash(采集、转换、充实,然后输出)
  • 其他(APM、App Search等)

三、在Windows上运行ElasticSearch

1.在Windows环境部署ElasticSearch环境较为容易,下载对应的ElasticSearch压缩包,进行解压,对应的目录如下图所示:

2.进入bin环境运行ElasticSearch

3.ElasticSearch插件相关命令:

#查看ElasticSearch已安装的插件
bin\elasticsearch-plugin list
#ElasticSearch安装插件
bin\elasticsearch-plugin install <插件名称>
#移除ElasticSearch安装插件
bin\elasticsearch-plugin remove <插件名称>

4.创建多节点集群时,使用命令:

#创建一个所属集群为geektime,节点名称为node0,节点数据存储路径为data0_data的节点
.\bin\elasticsearch -E node.name=node0 -E cluster.name=geektime -E path.data=data0_data -d
#创建一个所属集群为geektime,节点名称为node1,节点数据存储路径为data1_data的节点
.\bin\elasticsearch -E node.name=node1 -E cluster.name=geektime -E path.data=data1_data -d
#创建一个所属集群为geektime,节点名称为node2,节点数据存储路径为data2_data的节点
.\bin\elasticsearch -E node.name=node2 -E cluster.name=geektime -E path.data=data2_data -d
#创建一个所属集群为geektime,节点名称为node3,节点数据存储路径为data3_data的节点
.\bin\elasticsearch -E node.name=node3 -E cluster.name=geektime -E path.data=data3_data -d

验证集群是否启动

注:大家可以查看_cat下面包含哪些命令,你应该会发现新大陆哦!

现在,楼主在工作中经常接触到docker技术,接下来就看看怎么在docker上部署ElasticSearch集群吧!

四、在docker上运行ElasticSearch

1、ElasticSearch镜像的制作

楼主是在阿里云的服务器上自己搭建的docker工具,具体的搭建过程请参考    配置fabric(超级记账本)时docker安装教程,直接利用docker pull命令拉取docker镜像

注:如果想自己定制化镜像的话,那就得看看源码了,镜像制作的方式以后再写文章吧!

以单节点的形式部署是,命令如下:

docker run --name es-node0 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d  <镜像名称:tag>

以集群的方式启动时,创建docker-compose.yml:

version: '3'
services:
    es-node0:
        image: elasticsearch:7.6.2
        container_name: es-node0
        privileged: true
        environment:
            - cluster.name=elasticsearch-cluster
            - node.name=node0
            - node.master=true
            - node.data=true
              #- bootstrap.memory_lock=true
            - http.cors.enabled=true
            - http.cors.allow-origin=*
            - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
            - "discovery.zen.ping.unicast.hosts=es-node0,es-node1,es-node2"
            - "discovery.zen.minimum_master_nodes=2"
        ulimits:
            memlock:
                soft: -1
                hard: -1
        volumes:
            - ./node0/data:/usr/share/elasticsearch/data
            - ./node0/logs:/usr/share/elasticsearch/logs
        ports:
            - 9200:9200
    es-node1:
        image: elasticsearch:7.6.2
        container_name: es-node1
        privileged: true
        environment:
            - cluster.name=elasticsearch-cluster
            - node.name=node1
            - node.master=true
            - node.data=true
            - bootstrap.memory_lock=true
            - http.cors.enabled=true
            - http.cors.allow-origin=*
            - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
            - "discovery.zen.ping.unicast.hosts=es-node0,es-node1,es-node2"
            - "discovery.zen.minimum_master_nodes=2"
        ulimits:
            memlock:
                soft: -1
                hard: -1
        volumes:
            - ./node1/data:/usr/share/elasticsearch/data
            - ./node1/logs:/usr/share/elasticsearch/logs
        ports:
            - 9201:9200
    es-node2:
        image: elasticsearch:7.6.2
        container_name: es-node2
        privileged: true
        environment:
            - cluster.name=elasticsearch-cluster
            - node.name=node2
            - node.master=true
            - node.data=true
            - bootstrap.memory_lock=true
            - http.cors.enabled=true
            - http.cors.allow-origin=*
            - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
            - "discovery.zen.ping.unicast.hosts=es-node0,es-node1,es-node2"
            - "discovery.zen.minimum_master_nodes=2"
        ulimits:
            memlock:
                soft: -1
                hard: -1
        volumes:
            - ./node2/data:/usr/share/elasticsearch/data
            - ./node2/logs:/usr/share/elasticsearch/logs
        ports:
            - 9202:9200

注:在挂载的时候记得给宿主机挂载目录更改权限哦,chmod -R 777 XXX

访问http://ip:9200/_cat/nodes?v即可查看集群状态

Elasticsearch分布式搜索引擎的那些事儿 作者:禅与计算机程序设计艺术 1.背景介绍 Elasticsearch是一个基于Lucene的开源搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎,它的目的是为了解决目前已知的所有信息检索问题,尤其是实时数据处理、日志分析等应用领域。本文将以Elasticsearch为主要分析对象,来谈谈El 阅读详情

相关推荐

ES7~ES13那些事儿

ES7~ES12都可以统称为ES6+,ES6等价于ES2015,ES6是一个非常大的版本更迭,但是后面ES7、ES8等等增加的知识并不是很多,但是肯定也是有用的,存在即合理。所以这篇就总结一下ES6之后增加的一些常用的主要的知识

专注于技术,分享实战经验,探索技术边界,用代码构建更美的数字世界。 1494

Solr与Elasticsearch的区别

1.Solr 优点: (1)Solr有一个更大、更成熟的用户、开发和贡献者社区。 (2)支持添加多种格式的索引,如:HTML、PDF、微软 Office 系列软件格式以及 JSON、XML、CSV 等纯文本格式。 (3)Solr比较成熟、稳定。 (4)不考虑建索引的同时进行搜索,速度更快。 缺点: 建立索引时,搜索效率下降,实时索引搜索效率不高。 2.Elasticsearch ...

1 Byte 的博客 1432

全文搜索引擎 ElasticSearch 还是 Solr?

图片来自Pexels 最近项目组安排了一个任务,项目中用到了全文搜索,基于全文搜索 Solr,但是该 Solr 搜索云项目不稳定,经常查询不出来数据,需要手动全量同步,而且是其他团队在维护,依赖性太强,导致 Solr 服务一出问题,我们的项目也基本瘫痪,因为所有的依赖查询都无结果数据了。所以考虑开发一个适配层,如果 Solr 搜索出问题,自动切换到新的搜索–ES。 其实可以通过 Solr 集群或者服务容错等设计来解决该问题。但是先不考虑本身设计的合理性,领导需要开发,所以我开始踏上了搭建 ES 服务的道路,从零开始,因为之前完全没接触过 ES,所以通过本系列来记录下自己的开发过程。 什么是全

Solr和Elasticsearch的主要区别是什么?

Apache Solr 和 Elasticsearch 都是基于 Apache Lucene 构建的开源搜索引擎,它们都提供了分布式搜索、近实时分析等功能。尽管两者有很多相似之处,但它们在设计理念、易用性、社区支持等方面存在一些差异。

qq_33240556的博客 773

Solr 与 Elasticsearch 的对比与选型

一、Elasticsearch特性 1.1 安装管理方便 Elasticsearch没有其他依赖,下载后安装非常方便;只用修改几个参数就可以搭建起来一个集群。 1.2 大规模分布式 Elasticsearch允许你开始小规模使用,但是随着你使用数据的增长,它可以建立在横向扩展的开箱即用。当你需要更多的容量,只需添加更多的节点,并让集群重组,只需要增加额外的硬件,让集群自动利用额外的硬件。 可以在数以百计的服务器上处理PB级别的数据。 节点对外表现对等(每个节点都可以用来做入口);加入节点自动均衡,可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。 Elasticsearch致力于隐藏

使用再生龙还原镜像文件到硬盘

1. 把制作好的再生龙光盘插入需要的电脑,开机按F4使用再生龙启动2. 选择默认的:Clonezailla live(Default settings,VGA 800*600),然后等待几分钟 3. 选择语言:简体中文 4. 选择不修改键盘映射 5. 选择使用再生龙          6. 选择硬盘/分区(存到/来自)镜像文件,此选项既可以制作镜像,也可以恢复镜像。 7. 使用本机的分区     ...

weixin_42168893的博客 1万+

Elasticsearch与Solr 选型

搜索引擎选择: Elasticsearch与Solr 搜索引擎选型调研文档 Elasticsearch简介* Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。 它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。 Elasticsearch是一个建立在全文搜索引擎 Apache L...

weixin_30693683的博客 2382

UFS Host Controller工作流程

contentsUFS架构图HCI接口架构传输请求接口(Transfer Request Interface)UFS 主机控制器寄存器接口(host controller Interface)UTP 层数据传输Host Software与Host Controller的交互Host Controller初始化配置与控制CRYPTOCFG 配置过程 该文档描述了UFS Host Controller的主要运作流程以及在开源内核代码hisi平台中的host controller的接口函数设计 文档大部分内容参

Frank_sample的专栏 1万+

高可用的搜索引擎:Elasticsearch与Solr对比

1.背景介绍 搜索引擎是现代互联网的基石,它使得我们可以在海量数据中快速找到所需的信息。高可用性是搜索引擎的核心需求,因为用户对于搜索结果的实时性和准确性有很高的要求。Elasticsearch和Solr是两个流行的搜索引擎,它们各自具有独特的优势和特点。在本文中,我们将对比这两个搜索引擎的核心概念、算法原理、实例代码等方面,以帮助读者更好地理解它们的优缺点,并为选择合适的搜索引擎提供参考。 ...

AI天才研究院 2735

STC89C52RC单片机原理图详解

左侧A0和右侧B0为一 一对应的关系,左上角DIR为控制数据方向端口,如果DIR接高电平是将左侧数据A0~A8送到右侧B0~B8,如果DIR接低电平,是将右侧数据B0~B8送到左侧A0~A8,由于在电路板上LE始终与VCC连接,因此这里。74HC595是串行输入,并行输出的移位寄存器,可用3根线输入串行数据,8根线输出并行数据,多片级联后,可输出16位、24位、32位等,常用于I/O口扩展。由于数码管为共阴极,给数码管下面接口输入阳码时,LED才亮,但是直接将P0~P7的高电平输入到数码管时,

m0_50562428的博客 6万+

STM32 超声波模块输入捕获测距(标准库)

通道2设置为下降沿触发,触发瞬间会将CNT的记录到CCR2中,由于上升沿触发时已经将CNT置零所以此时的CNT的值就是高电平的持续时间。通道1设置为上升沿触发,触发的瞬间会将CNT的值记录到CCR1里面,同时设置通道1触发带有从模式,并把从模式设置为置零CNT。超声波传感器模块上面通常有两个超声波元器件,一个用于发射,一个用于接收。电路板上有四个引脚:VCC、GND、Trig(触发)、Echo(回应)。输入捕获原理可以看看这位大佬,感觉写的很清楚,工作电压与电流:5V,15mA。感测角度:不小于15度。

qq_62425900的博客 2083

Elasticsearch与Solr区别

Solr 2004年诞生(当时是Solar)。 ElasticSearch 2010年诞生。 ES更加新。 更详细原文 1.当单纯的对已有数据进行搜索时,Solr更快。 2.当实时建立索引时, Solr会产生io阻塞,查询性能较差, Elasticsearch具有明显的优势。 随着数据量的增加,Solr的搜索效率会变得更低,而Elasticsearch却没有明显的变化 综...

水逆呱的博客 576

开源有限元dealii学习——step-1

#简介 dealii是一款开源的求解偏微分方程的有限元软件,它优点: 1.多种单元类型 2.可以自适应网格 3.文档和范例齐全 4.与其它库有良好的接口 5.使用c++编写 #安装 dealii可以在官网上或者github上下载源码,解压后进入源文件目录安装。 mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/path/to/install...

weixin_42312251的博客 4386

ES5和ES6那些你必须知道的事儿(一)

ES5和ES6那些你必须知道的事儿 ES5新增的东西 一、数组方法   1、forEach    用途:遍历,循环     对于空数组不会执行回调函数 //用法 array.forEach( function(currentValue, index, arr), thisValue ) //currentValue 必需。当...

denggen20020210的博客 283

AutosarMCAL开发——基于EB MCU驱动

本文为博主个人学习总结记录,如有不正,欢迎指正。

qq_45583706的博客 923

世界模型(World Models)进展全景调研(截至 2025-08)

A5) 2019-07(待核验) | C-SWM:Contrastive Structured World Models(Kipf et al.)A6) 2019-07(待核验) | SLAC:Stochastic Latent Actor-Critic(Lee et al.)A3) 2015-12(背景注记,待核验) | Embed to Control(E2C,Watter et al.)Nature 2020)Repro/Code:werner-duvaud/muzero-general(社区)

u013250861的博客 489

【es6学习】let与const的那些事儿(一)

1.let命令 1.1基本用法 let 命令,用于声明变量。其用法类似于 var ,但是所声明的变量只在 let命令所在的代码块内有效。 { let a = 10; var b = 1; } a // ReferenceError: a is not defined. b // 1 上面的代码在代码块中分别用 let和 var 声明了两个变量。然后在代码块之外调用这两个变量,结果 let 声明的变量报错, var 声明的变量返回了正确的值。这表明, let 声明的变量只在其所在代码块内有效。 for

weixin_41884808的博客 290

R数据分析:广义估计方程式GEE的做法和解释

好久没有更新文章了,因为同学们咨询的问题有点多,另一个原因就是自己实在太懒。。。。 今天继续给大家写广义估计方程式GEE。 In statistics, a generalized estimating equation (GEE) is used to estimate the parameters of a generalized linear model with a possible unknown correlation between outcomes. 上面的英文解释告诉我们,当我们

Codewar的博客 1万+

elasticsearch入门篇(一)

本文旨在帮助没有使用过elasticsearch的开发人员达到快速上手的目的,文章并不是很难,但有些地方要注重理解和练习。 一.elasticsearch简介 以下摘自百度百科: Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快

withlw 361

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

[转]基于Elasticsearch分布式搜索引擎的架构原理

[转]基于Elasticsearch分布式搜索引擎的架构原理 http://www.mobabel.net/%E8%BD%AC%E5%9F%BA%E4%BA%8Eelasticsearch%E5%88%86%E5%B8%83%E5%BC%8F%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E%E7%9A%84%E6%9E%B6%E6%9E%84%E5%8E%9F%E7%90...

yb223731的博客 1014

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Elasticsearch内存那些事儿

Elasticsearch内存分配设置详解。 前言 「该给 ES 分配多少内存?」 「为什么是给 ES 分配服务器的一半内存?」 「为什么内存使用率不断升高,没有释放?」 「为何经常有某个 field 的数据量超出内存限制的异常?」 「为何感觉上没多少数据,也会经常 Out Of Memory?」 相信每个ES使用者或者运维人员都遇到过这些问题,也踩过不少坑。 这里根据我个人的学习和日...

东境物语 2735

ElasticSearch一:分布式搜索引擎的架构

es的分布式架构原理?es是如何实现分布式的啊)? 在搜索这块,lucene是最流行的搜索库。几年前业内一般都问,你了解lucene吗?你知道倒排索引的原理吗?现在早已经out了,因为现在很多项目都是直接用基于lucene的分布式搜索引擎——elasticsearch,简称为es。 而现在分布式搜索基本已经成为大部分互联网行业的java系统的标配,其中尤为流行的就是es,前几年es没火的...

qq_41864967的博客 587

ElasticSearch四:ES分布式怎么进行部署

es生产集群的部署架构是什么?每个索引的数据量大概有多少?每个索引大概有多少个分片? 这个问题,包括后面的redis什么的,谈到es、redis、mysql分库分表等等技术,面试必问!就是你生产环境咋部署的?说白了,这个问题没啥技术含量,就是看你有没有在真正的生产环境里干过这事儿! 有些同学可能是没在生产环境中干过的,没实际去拿线上机器部署过es集群,也没实际玩儿过,也没往es集群里面导...

qq_41864967的博客 1622

打比赛?《CTF那些事儿》你不能错过。

现如今,网络安全赛道不可谓不红火随着知识的指数式增长及政策扶持,安全行业也迎来了春天但随着这一领域的准入门槛逐渐降低,竞争愈发激烈我们更加呼吁专业化的就职人员与技能素质优秀的大学生而作为快速提升网安技能的重要途径、各个行业选拔网安人才的通用方法CTF比赛无疑提供了最优的解决办法。于是,《CTF那些事儿》应运而生,读懂它、读会它、读好它,零基础学安全,月薪10k不是梦!【文末免费送书!!!

等风来 8156
上一篇: 配置fabric(超级记账本)时docker-compose安装教程
下一篇: ElasticSearch那些事儿(二)
Computer_hello
博客等级 码龄10年 2粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值