Elasticsearch windows系统配置

1.1 简介

1.1.1 Elastic

Elastic官网:https://www.elastic.co/cn/

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

1.1.2 Elasticsearch

Elasticsearch官网:https://www.elastic.co/cn/products/elasticsearch

Elasticsearch具备以下特点:

1.分布式,无需人工搭建集群(solr就需要人为配置,使用Zookeeper作为注册中心)

2.Restful风格,一切API都遵循Rest原则,容易上手

3.近实时搜索,数据更新在Elasticsearch中几乎是完全同步的。

1.1.3 版本

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

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

1.2 安装和配置

1.2.1 下载

下载

下载后的文件:

elasticsearch-7.13.0-windows

1.2.2 安装

Elasticsearch无需安装,解压即用。

1.3 运行

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

在这里插入图片描述

双击运行,默认绑定了两个端口:

1.9300:Java程序访问的端口
2.9200:浏览器、postman访问的端口

在浏览器中访问:http://127.0.0.1:9200
端口访问

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

1.4 安装Head插件

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

Elasticsearch-head配置包,下载地址:https://github.com/mobz/elasticsearch-head

1.4.2 安装

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

第一步:node从地址:https://nodejs.org/en/download/
下载相应系统的msi,双击安装。

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

1.4.3 配置运行

第一步:进入Elasticsearch安装目录下的config目录,修改elasticsearch.yml文件.在文件的末尾加入以下代码
http.cors.enabled: true 
http.cors.allow-origin: "*"
node.master: true
node.data: true

1.去掉 network.host: 192.168.0.1的注释并改为 network.host: 0.0.0.0,

2.去掉cluster.name;node.name;http.port的注释

elasticsearch.yml

第二步:双击elasticsearch.bat重启Elasticsearch
第三步:在 https://github.com/mobz/elasticsearch-head 中下载head插件,选择下载zip
第四步:解压到指定文件夹下,D:\es-environment\elasticsearch-head-master 进入该文件夹,修改D:\es-environment\elasticsearch-head-master\Gruntfile.js 在对应的位置加上hostname:’*’

在这里插入图片描述

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

1.4.4 成功

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

在这里插入图片描述

1.5 安装Ik分词器

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

在这里插入图片描述

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

源码下载地址: https://github.com/medcl/elasticsearch-analysis-ik

注意:你的Elasticsearch和IK分词器必须版本统一

在这里插入图片描述

1.5.2 安装

无需安装,解压即可使用。 我们将其改名为ik,并复制到Elasticsearch的解压目录,如下图所示

在这里插入图片描述

然后重启elasticsearch:

ik启动成功

Ik分词器安装成功。

启动异常

[2021-06-01T11:37:07,926][ERROR][o.e.b.Bootstrap          ] [node-1] node validation exception
[1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
[2021-06-01T11:37:07,930][INFO ][o.e.n.Node               ] [node-1] stopping ...
[2021-06-01T11:37:07,961][INFO ][o.e.n.Node               ] [node-1] stopped
[2021-06-01T11:37:07,961][INFO ][o.e.n.Node               ] [node-1] closing ...
[2021-06-01T11:37:07,972][INFO ][o.e.n.Node               ] [node-1] closed

修改es*/elasticsearch.yml的 cluster.initial_master_nodes: [“node-1”]
, node-1 是在1.4.3配置的 node.name

1.5.3 IK扩展词和停用词的简单介绍

扩展词和停用词文件:

在这里插入图片描述

1.6 下载 logstash (注意版本对应Elasticsearch7.13.0)

下载地址:https://www.elastic.co/fr/downloads/logstash

在这里插入图片描述

进入bin目录中创建:一个lib文件夹(任意命名),jdbc.sql,logstash.conf文件

在这里插入图片描述

lib 文件夹放入数据库连接包 mysql-connector-java-8.0.22.jar

在这里插入图片描述

  • jdbc.sql 文件放入下面sql语句:
select id,birthday,sex,address from user   
  • logstash.conf
input {
    file {
        path => "D:/es-environment/tmp/*_log"
     }
    stdin {
    
    }
    jdbc {
       # mysql 数据库链接,mybatis为数据库名
      jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/essql"
      # 用户名和密码
      jdbc_user => "root"
      jdbc_password => "123456"
      # 驱动 修改为mysql连接包位置
      jdbc_driver_library => "D:/es-environment/logstash-7.13.0/bin/lib/mysql-connector-java-8.0.22.jar"
      # 驱动类名
      jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      # 执行的sql 文件路径+名称 
      statement_filepath => "jdbc.sql"
      # 设置监听间隔  各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
      schedule => "* * * * *"
    }
}
output {
    elasticsearch {
        # ES的IP地址及端口
        hosts => ["localhost:9200"]
        # 索引名称 可自定义
        index => "test"
        # 需要关联的数据库中有有一个id字段,对应类型中的id
        document_id => "%{id}"
        document_type => "test"
    }
    stdout {
        # JSON格式输出
        codec => json_lines
    }
}

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `username` varchar(32) NOT NULL COMMENT '用户名称',
 `birthday` date DEFAULT NULL COMMENT '生日',
 `sex` char(1) DEFAULT NULL COMMENT '性别',
 `address` varchar(256) DEFAULT NULL COMMENT '地址',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8;

INSERT INTO `user` VALUES ('1', '王五', '2018-08-28', '2', '上海');
INSERT INTO `user` VALUES ('10', '张三', '2014-07-10', '1', '北京市');
INSERT INTO `user` VALUES ('16', '张小明', '2018-08-16', '1', '河南郑州');
INSERT INTO `user` VALUES ('22', '陈小明', '2018-08-17', '1', '河南郑州');
INSERT INTO `user` VALUES ('24', '张三丰', '2018-08-26', '1', '河南郑州');
INSERT INTO `user` VALUES ('25', '陈小明', '2018-08-14', '1', '河南郑州');
INSERT INTO `user` VALUES ('26', '王五', '2018-08-28', '1', '北京');
INSERT INTO `user` VALUES ('30', '马小跳', '2018-08-28', '1', '西安');

启动程序

之前都启动elasticsearch-7.13 和 elasticsearch-head-master 如果未启动,重新启动
上面两个启动之后启动logstash

在这里插入图片描述

logstash -f logstash.conf

看见这个证明配置成功了,数据已自动同步

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值