Elasticsearch从单体到分布式环境搭建和介绍(Windows)

                                            整体搭建教程视频链接(点击)

1 Elasticsearch介绍和安装

  1. ElasticSearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用ElasticSearch的水平伸缩性,能使数据在生产环境变得更有价值。ElasticSearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elastic Search 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
  2. Elasticsearch是与名为Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的。这三个产品被设计成一个集成解决方案,称为“Elastic Stack”(以前称为“ELK stack”)。
  3. Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。”Elasticsearch是分布式的,这意味着索引可以被分成分片,每个分片可以有0个或多个副本。每个节点托管一个或多个分片,并充当协调器将操作委托给正确的分片。再平衡和路由是自动完成的。“相关数据通常存储在同一个索引中,该索引由一个或多个主分片和零个或多个复制分片组成。一旦创建了索引,就不能更改主分片的数量。

 1.1 简介

Elastic官网(点击)

 Elastic有一条完整的产品线:Elasticsearch、Kibana、Logstash等,前面说的三个就是大家常说的ELK技术栈。

 1.1.2 Elasticsearch

Elasticsearch官网

Elasticsearch具备以下特点:

  • 分布式,无需人工搭建集群(solr就需要人为配置,使用Zookeeper作为注册中心)
  • Restful风格,一切API都遵循Rest原则,容易上手
  • 近实时搜索,数据更新在Elasticsearch中几乎是完全同步的。

1.1.3 版本

目前Elasticsearch最新的版本是6.4.2,我这里使用的版本是6.2.4

安装Elasticsearch前提条件:JDK1.8及以上

1.2 安装和配置

1.2.1 下载:https://www.elastic.co/cn/downloads/elasticsearch

下载地址

下载zip:

1.2.2 安装

Elasticsearch无需安装,解压即用。

1.3 运行

进入elasticsearch/bin目录,可以看到下面的执行文件:

双击运行

可以看到绑定了两个端口:

  • 9300:Java程序访问的端口
  • 9200:浏览器、postman访问的端口

我们在浏览器中访问:http://127.0.0.1:9200

我们可以在浏览器上安装了一个插件所显示的效果

看到了上面的信息,说明你的Elasticsearch已经安装成功了,但是为了方便我们开发的时候查看数据,我推荐安装一个Elasticsearch的客户端工具。下面我讲述的是如何安装Head插件。

 

1.4 安装Head插件
1.4.1 什么是Head


Ealsticsearch只是后端提供各种API,那么怎么直观的使用它呢?Elasticsearch-head将是一款专门针对于Elasticsearch的客户端工具

Elasticsearch-head配置包,下载地址

1.4.2 安装
注意:es5以上版本安装head需要安装node和grunt


第一步:从下载地址 下载相应系统的msi,双击安装。

 第二步:安装完成用cmd进入安装目录执行 node -v可查看版本号

能看到版本号说明node安装成功

第三步:执行 npm install -g grunt-cli 安装grunt ,安装完成后执行grunt -version查看是否安装成功,会显示安装的版本号

 

刚刚下载好的head插件:现在需要用到了,进入head插件的目录:执行 npm install

现在启动 

 

 

重新刷新页面

1.4.3 配置运行(注意空格不能少)

  1. 第一步:进入Elasticsearch安装目录下的config目录,修改elasticsearch.yml文件.在文件的末尾加入以下代码
    http.cors.enabled: true 
    http.cors.allow-origin: "*"
    node.master: true
    node.data: true
    
  2. 然后去掉network.host: 192.168.0.1的注释并改为network.host: 0.0.0.0,去掉cluster.name;node.name;http.port的注释(也就是去掉#)
  3. 第二步:双击elasticsearch.bat重启Elasticsearch
  4. 第三步:在https://github.com/mobz/elasticsearch-head中下载head插件,选择下载zip
  5. 第四步:解压到指定文件夹下,D:\environment\elasticsearch-head-master 进入该文件夹,修改D:\environment\elasticsearch-head-master\Gruntfile.js 在对应的位置加上hostname:’*’、
     

第五步:打开cmd命令行窗口 ,在D:\environment\elasticsearch-head-master 下执行npm install 安装
,完成后执行grunt server 或者npm run start 运行head插件,如果运行不成功建议重新安装grunt。成功如下

1.4.4 成功(可以看到单个节点搭建完成)

打开浏览器访问:http://127.0.0.1:9100

 分布式安装 :

进入Elasticsearch安装目录下的config目录,修改elasticsearch.yml文件.在文件的末尾加入以下代码

http.cors.enabled: true 
http.cors.allow-origin: "*"
cluster.name: pengliang
node.name: master
node.master: true

在同级目录下,也就是和Elasticsearch的目录下再建一个文件夹存放子节点:

 

然后建立slave1和slave2的文件夹拷贝进去

 分别对slave1和slave2进行配置文件的修改:

cluster.name: pengliang
node.name: slave1
#network.host: 127.0.0.1
http.port: 8200
#discovery.zen.ping.unicast.host: ["127.0.0.1"]

 

cluster.name: pengliang
node.name: slave2
#network.host: 127.0.0.1
http.port: 7200
#discovery.zen.ping.unicast.host: ["127.0.0.1"]

 注意:这里面的绑定ip一定不要,至于为什么我也没弄清楚,反正写上就会出现闪退现象。

 然后再次去相应的bin的目录下的.bat进行双击,在主节点启动的情况下,启动其他两个子节点。

下图可以看到分布式搭建完成!!!

后面的介绍可以下载可以不下载!!!

1.5 安装Ik分词器

ElasticSearch 默认采用的分词器, 是单个字分词 ,效果很差 ,所以我们需要安装一个更实用的分词器,这里采用IK分词器

搜索【IK Analyzer 3.0】

http://www.oschina.net/news/2660

 

Lucene的IK分词器早在2012年已经没有维护了,现在我们要使用的是在其基础上维护升级的版本,并且开发为Elasticsearch的集成插件了,与Elasticsearch一起维护升级,版本也保持一致,最新版本:7.4.2

1.5.1 下载
注意:你的Elasticsearch和IK分词器必须版本统一
源码下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v6.2.4

jar包下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
 

 

 

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值