您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 认识Elasticsearch
认识Elasticsearch学习目标12ES简介3安装&配置4集成Ikanalyzer学完本课题,你应达成如下目标:1.明白elasticsearch是什么,它可用于什么场景,为什么需要学习掌握它。2.了解elasticsearch的特性、架构、产品栈3.掌握ES的核心概念4.会集成IkAnalyzer学习目标12ES简介3安装&配置4集成IkanalyzerES是什么?Elasticsearch是一个开源的搜索引擎,建立在全文搜索引擎库ApacheLucene基础之上。用Java编写的,它的内部使用Lucene做索引与搜索,但是它的目的是使全文检索变得简单,通过隐藏Lucene的复杂性,取而代之的提供一套简单一致的RESTfulAPI。Elasticsearch不仅仅只是一个全文搜索引擎。它可以被下面这样准确的形容:一个分布式的实时文档存储,每个字段可以被索引与搜索一个分布式实时分析搜索引擎能胜任上百个服务节点的扩展,并支持PB级别的结构化或者非结构化数据ES的发展历程ElaticStackElasticsearch分布式搜索引擎Logstash日志采集与解析工具Kibana可视化分析平台Beats数据采集工具家族(替换Logstash)X-Pack功能包ES的流行度DB-Engines(一家收集和统计数据库管理系统信息的机构,网址:)上的搜索引擎排名:ES的流行度=se_1000002789ES的特性看官网的介绍:速度快、易扩展、弹性、灵活、操作简单、多语言客户端、X-Pack、hadoop/spark强强联手、开箱即用。分布式:横向扩展非常灵活全文检索:基于lucene的强大的全文检索能力;近实时搜索和分析:数据进入ES,可达到近实时搜索,还可进行聚合分析高可用:容错机制,自动发现新的或失败的节点,重组和重新平衡数据模式自由:ES的动态mapping机制可以自动检测数据的结构和类型,创建索引并使数据可搜索。RESTfulAPI:JSON+HTTPES的应用场景站内搜索NoSQL数据库日志分析数据分析ES架构介绍Gateway是ES用来存储索引的文件系统,支持多种类型。Gateway的上层是一个分布式的lucene框架。Lucene之上是ES的模块,包括:索引模块、搜索模块、映射解析模块等ES模块之上是Discovery、Scripting和第三方插件。Discovery是ES的节点发现模块,不同机器上的ES节点要组成集群需要进行消息通信,集群内部需要选举master节点,这些工作都是由Discovery模块完成。支持多种发现机制,如Zen、EC2、gce、Azure。Scripting用来支持在查询语句中插入javascript、python等脚本语言,scripting模块负责解析这些脚本,使用脚本语句性能稍低。ES也支持多种第三方插件。再上层是ES的传输模块和JMX.传输模块支持多种传输协议,如Thrift、memecached、http,默认使用http。JMX是java的管理框架,用来管理ES应用。最上层是ES提供给用户的接口,可以通过RESTful接口和ES集群进行交互。ES的核心概念NearRealtime(NRT)近实时。数据提交索引后,立马就可以搜索到。Cluster集群,一个集群由一个唯一的名字标识,默认为“elasticsearch”。集群名称非常重要,具体相同集群名的节点才会组成一个集群。集群名称可以在配置文件中指定。Node节点:存储集群的数据,参与集群的索引和搜索功能。像集群有名字,节点也有自己的名称,默认在启动时会以一个随机的UUID的前七个字符作为节点的名字,你可以为其指定任意的名字。通过集群名在网络中发现同伴组成集群。一个节点也可是集群。Index索引:一个索引是一个文档的集合(等同于solr中的集合)。每个索引有唯一的名字,通过这个名字来操作它。一个集群中可以有任意多个索引。索引作动词时,指索引数据、或对数据进行索引。ES的核心概念Type类型:指在一个索引中,可以索引不同类型的文档,如用户数据、博客数据。从6.0.0版本起已废弃,一个索引中只存放一类数据。Document文档:被索引的一条数据,索引的基本信息单元,以JSON格式来表示。Shard分片:在创建一个索引时可以指定分成多少个分片来存储。每个分片本身也是一个功能完善且独立的“索引”,可以被放置在集群的任意节点上。分片的好处:允许我们水平切分/扩展容量可在多个分片上进行分布式的、并行的操作,提高系统的性能和吞吐量。Replication备份:一个分片可以有多个备份(副本)。备份的好处:高可用扩展搜索的并发能力、吞吐量。搜索可以在所有的副本上并行运行。对比RDBMSRDBMSElasticsearch数据库(database)索引(index)表(table)类型(type)(6.0.0废弃)行(row)文档(document)列(column)字段(field)表结构(schema)映射(mapping)索引反向索引SQL查询DSLSELECT*FROMtableGEThttp://....UPDATEtableSETPUThttp://....DELETEDELETEhttp://...ES学习资源官网的文档是最好的学习资源,详细、全面,官网还提供有一些视频:官网中还提供一个中文的权威指南,可以学习,(版本稍老了点):学习目标12ES简介3安装&配置4集成IkanalyzerES安装包官网下载地址:教学所用版本:6.2.4JAVA要求Java版本:1.8java-versionecho$JAVA_HOME在linux上安装示例1.获取安装包2.解压到安装目录3.配置4.启动curl-L-O=my_cluster_name-Enode.name=my_node_namecd/opt/elasticsearch-6.2.4/bin./elasticsearch启动时指定参数:./elasticsearch-h了解启动脚本可用选项:ES安装20在linux虚拟机上运行可能的失败问题1.内存不够用,默认es配置使用1G堆内存,如果的你学习用的虚拟机没有这么大的内存,请在config/jvm.options中调整。2.可能会报如下的错误:解决办法:ES安装22ES端口说明1.9200对外服务的http端口2.9300节点间通信的tcp端口后台运行ES./elasticsearch-d关闭ES非后台运行的:ctrl+c后台运行的:killes进程在windows中启动elasticsearch.batES安装24ES端口说明1.9200对外服务的http端口2.9300节点间通信的tcp端口后台运行ES./elasticsearch-d关闭ES非后台运行的:ctrl+c后台运行的:killes进程在windows中启动elasticsearch.batES安装25ES软件目录说明可执行文件目录配置文件目录数据存储目录依赖库目录日志目录依赖模块目录第三方插件目录请查看各目录中都有些什么配置文件说明ES基本配置文件Jvm参数配置文件Log4j配置文件ES配置26ES配置说明配置文件目录默认为:$ES_HOME/config,如果需要配置文件与软件分离(方便升级),可以通过ES_PATH_CONF环境变量来指定。如你可以在命令行指定声明:也可以在命令行或环境变量文件中export.配置文件分离yml格式说明两种写法值引用环境变量值:变量值在启动时通过对话给入:${prompt.text}or${prompt.secret}27ES配置说明Jvm参数格式说明无JVM版本限制的参数应用到指定版本JVM的参数应用到指定版本及以上版本JVM的参数应用到指定版本到版本JVM的参数ES配置28ES重要的配置参数数据目录和日志目录,生成环境下应与软件分离数据目录可以有多个所属的集群名,默认为elasticsearch,可自定义节点名,默认为UUID前7个字符,可自定义以主机名作节点名ES配置默认绑定的是[127.0.0.1,[::1]]回环地址,集群下要服务间通信,需绑定一个ipv4或ipv6地址29ES重要的配置参数network.hostIP绑定对外服务的http端口,默认9200-9300。可以为它指定一个值或一个区间,当为区间时会取用区间第一个可用的端口。http.port:9200-9300节点间交互的端口,默认9300-9400。可以为它指定一个值或一个区间,当为区间时会取用区间第一个可用的端口。transport.tcp.port:9300-9400ES配置ES中默认采用的节点发现方式是zen(基于组播(多播)、单播)。在应用于生产前有两个重要参数需配置:30ES重要的配置参数DiscoveryConfig节点发现配置discovery.zen.ping.unicast.hosts:[host1,host2:port,host3[portX-portY]]单播模式下,设置具有master资格的节点列表,新加入的节点向这个列表中的节点发送请求来加入集群。discovery.zen.minimum_master_nodes:1这个参数控制的是,一个节点需要看到具有master资格的节点的最小数量,然后才能在集群中做操作。官方的推荐值是(N/2)+1,其中N是具有master资格的节点的数量。ES配置32ES重要的配置参数transport.tcp.compress:false是否压缩tcp传输的数据,默认falsehttp.cors.enabled:true是否使用http协议对外提供服务,默认truehttp.max_content_length:100mbhttp传输内容的最大容量,默认100mbnode.master:true指定该节点是否可以作为master节点,默认是true。ES集群默认是以第一个节点为master,如果该节点出故障就会重新选举master。node.data:true该节点是否存索引数据,默认true。discover.zen.ping.timeout:3s设置集群中自动发现其他节点时ping连接超时时长,默认为3秒。在网络环境较差的情况下,增加这个值,会增加节点等待响应的时间,从一定程度上会减少误判。discovery.zen.ping.multicast.enabled:false是否启用多播来发现节点。ES配置生产环境中一定要在jvm.options中调大它的jv
本文标题:认识Elasticsearch
链接地址:https://www.777doc.com/doc-1608098 .html