Windows环境利用Elasticsearch+Kibana+Logstash搭建搜索引擎并实现实时同步MySQL数据,超详细步骤

背景:博主在做的一个项目是wamp环境下的电商平台,其搜索方式为sql查询,效率低下,准确率也非常感人,所以就尝试着在Windows环境下搭建一套搜索引擎,经过多方查阅,发现Elasticsearch(简称ES)是一个比较好的搜索引擎,也支持JDBC与MYSQL对接,并可以利用RESTful API CURL方式提供搜索服务,独立性强,扩展性好,于是就决定用它来做开发了。

Step 1:Windows下的JAVA环境配置

首先:下载JDK。 然后,按照自己的系统环境安装JDK,网上很多教程,这里就略过了。顺便说一句Elasticsearch至少需要java8,官方建议高于1.8.0_131。这里也不建议安装java10,不然你有可能会遇到这样的bug。

Unrecognized VM option 'UseParNewGC' 
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

博主装的是jdk-8u181-windows-x64.exe。 安装的时候还有两个坑需要数一下,第一,不要安装JRE,不然它会覆盖掉tools.jar。第二,jdk不要一路点下去,要提前建立个文件夹,要求路径里不能有中文,不能有空格,如果你默认安装的话,它会安装到C:\Program Files下,这里是有空格的,后面的Logstash是无法启动的。

Step 2:下载安装Elasticsearch

下载Elasticsearch(选择WINDOWS sha版本)。这里提醒一下,ES至少需要2GB内存。 解压所有文件到一个文件夹下。

然后cmd运行cd /d 你的安装路径\bin,比如我我的是cd /d C:\elasticsearch\bin。 接着运行elasticsearch.bat即可。 运行之后可以看到这样的界面。

在浏览器输入localhost:9200,看到这样的显示,就是ES启动成功了。

PS:在cmd界面Ctrl+C即可退出服务,另外,在生产环境下,建议用elasticsearch-service.bat,运行elasticsearch-service.bat install,将其安装成系统服务。

Step 3:安装Kibana管理调试工具

我们现在已经安装和运行了ES核心,那么怎么样去查看,配置,以及调试学习呢,这里就需要Kibana来帮忙了。这里说句题外话,有很多朋友应该看过ES的官方手册,里面提到的调试工具是Head或者Sense,我也安装过这两个,踩过坑,实际上用Kibana就够了,官方手册因为写了太久,所以这里会给很多新手带来困扰。 所以,我们直接下载Kibana(WINDOWS sha),然后解压。 然后用编辑器打开config/kibana.yml文件,搜索elasticsearch.url,找到这一句,把前面的#号去掉,当然,如果你在前两步不太安分,配置了其他的端口,或者是用多台机器配置的话,也可以在这里配置成自己 的URL。

保存之后,打开cmd,输入cd -d C:\kibana\bin(这里是我的路径)。 再输入,kibana.bat,运行Kibana。出现这样的信息,就是成功了。

然后在浏览器,输入localhost:5601,就可以看到Kibana的可视化界面了。具体怎么用我就不多说了,Kibana有很详细的手册可以查,我只说新手最关心的一点:Dev Tools界面就是可以学习,调试ES请求的地方,ES手册里的示例,就是在这里运行的。

总结一下:很多人都是先学的数据库,所以我接下来的说法可能有点不对,但是目前可以这么去理解:ES相当于数据库服务,Kibana我们可以把它类比成数据库管理工具,比如SQLsever Manager Studio或者Navicat等等。 到这里为止,ES的应用,或者学习基本框架就搭建好了,现在你就可以很有效率的按照ES的官方文档一点一点看了。下面我们接着让它和传统数据库打通。

Step 4:安装部署Logstash

这一步,最好需要你通过之前搭建的学习框架,了解ES的基本架构,还有一些核心功能,比如这里要用到的输入输出插件等等。 首先,我们下载Logstash(ZIP sha),解压。 然后这里有用的是JDBC型输入,ES型输出,所有的细节都体现在一个配置文件里。在做这个配置文件之前,我们需要到网上下载一个Java的JDBC驱动,我这里连接的是Mysql数据库,所以我下载的是mysql-connector-java-5.1.44-bin.jar,这里没办法给链接,请自行下载。下载之后,放到C:\logstash\bin下。 然后,在C:\logstash\bin下,创建一个文本文件,写入以下代码。

input {
 stdin { }
    jdbc {
        jdbc_connection_string => "jdbc:mysql://localhost:3306/你的数据库名字"
​
```
    jdbc_user => "你的数据库用户名"
​
    jdbc_password => "你的数据库密码"
​
    jdbc_driver_library => "C:/logstash/bin/mysql-connector-java-5.1.44-bin.jar"
​
    jdbc_driver_class => "com.mysql.jdbc.Driver"
​
    jdbc_paging_enabled => "true"
​
    jdbc_page_size => "50000"
    statement => "SELECT id(主键),其他内容 FROM 你的表"
    schedule => "* * * * *"
}
```
​
 }
​
 output {
     stdout {
        codec => json_lines
    }
    elasticsearch {
        hosts => "localhost:9200"
        index => "你要创建的索引名"
        document_type => "你要创建的索引类型"
        document_id => "%{id}"
    }
}

将这个txt文件改名以及后缀,mysqltoes.conf,然后像之前一样,cmd里cd进bin文件夹里。运行logstash -f mysqltoes.conf即可。 当在小黑屏里看到你数据库里的字段一一出现时,说明已经将数据导入到ES了。

然后还可以在Kibana里查看一下。

PS:这里的同步数据库的配置,是会自动更新的,具体配置的含义, 可以去看一下Logstash的输入输出插件的文档,里面说的很清楚。 到此为止,在windows下的ES框架就搭建好了,然后具体怎么使用它,就看各自的项目要求了,下一篇博客,我会拿电商平台商品搜索举例如何使用ES的API

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值