win7 mysql同步数据到elasticsearch

安装java

先安装JDK1.8(包括)以上版本,并设置好环境变量,然后cmd输入java –version验证

elasticsearch部署和启动

win7下单实例安装elasticsearch-7.12.0很简单,下载后解压进入elasticsearch-7.12.0/bin目录,打开cmd,直接运行bin\elasticsearch.bat即可,如果启动没作用,需要先双击一下bin\elasticsearch-service-x64.exe

 

然后浏览器中访问es默认地址页面,证明此次ES安装成功

 

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

elasticsearch-head部署和启动

1第一种通过chrome安装插件的方式提供一个可操作es的图形化界面。

在chrome 浏览器中,通过“扩展程序” 添加 elasticsearch head 插件的方式,这种方式无须开启 es的跨域访问。

1、打开链接

谷歌浏览器访问http://extb.cqttech.com/search/elasticsearch%2520head

根据提示下载安装谷歌双核浏览器

 

2、安装下图中插件

 

 

 

 

3、点击放大镜图标使用插件

 

 

2第二种服务器Elasticsearch-head插件的安装与配置

1.安装node.js,最新版的node.js不支持win7了,所以安装了版本10

2安装后设置环境变量,然后cmd输入node –v验证

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

4下载elasticsearch-head, 下载地址:https://github.com/mobz/elasticsearch-head

5进入head下执行npm install 安装完成后执行grunt server 或者npm run start 运行head插件

 

 

logstash和logstashLogstash-input-jdbc部署

1.软件下载

      官网地址:https://www.elastic.co/cn/downloads/past-releases/#logstash

2.下载后直接解压即可使用

     3.启动并验证

      打开cmd命令行,进入dos窗口,切换到logstash安装路径下的bin目录,执行以下命令:

logstash -e "input { stdin { } } output { stdout {} }"

     正常可以看到如图打印启动成功的信息:

 

安装logstash-input-jdbc插件

【新版本logstash下自带logstash-input-jdbc,故不需要安装logstash-input-jdbc】

    CMD命令行切换到bin目录,执行以下命令安装Logstash-input-jdbc插件:

logstash-plugin install logstash-input-jdbc

mysql java驱动文件下载

 

解压后把mysql-connector-java-8.0.23.jar放到logstash-7.12.0路径 下

mysql同步数据到es操作

1,在mysql中创建一个可以用于测试的数据库logstash_jdbc_test

 

执行以下脚本,创建一个表:

create table testtable (PersonID int, LastName varchar(255), FirstName varchar(255), City varchar(255), Date datetime(6)); 

往表中插入数据:

INSERT INTO testtable (PersonID, LastName, FirstName, City, Date)
VALUES ('4005','Kallis','Jaques','Cape Town','2016-05-23 16:12:03.568810');
INSERT INTO testtable (PersonID, LastName, FirstName, City, Date)
VALUES ('4004','Baron','Richard','Cape Town','2016-05-23 16:12:04.370460');
INSERT INTO testtable (PersonID, LastName, FirstName, City, Date)
VALUES ('4003','McWell','Sharon','Cape Town','2016-05-23 16:12:06.874801'); 
结果如下

 

 

2,将数据导入es

Logstash 配置

在logstash文件夹中,我们要有一个logstash.conf和jdbc.sql文件,该文件是要配置并运行以获取必要结果的文件

logstash.conf如下

input {

    jdbc {

        jdbc_connection_string => "jdbc:mysql://localhost:3306/logstash_jdbc_test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"

        jdbc_user => "root"

        jdbc_password => "123456"

        jdbc_driver_library => "E:\logstash-7.12.0\mysql-connector-java-8.0.23.jar"

        jdbc_driver_class => "com.mysql.jdbc.Driver"

        jdbc_paging_enabled => "true"

        jdbc_page_size => "50000"

        statement_filepath => "E:\logstash-7.12.0\bin\jdbc.sql"

        schedule => "* * * * *"

        type => "jdbc"

    }

}

 

filter {

    json {

        source => "message"

        remove_field => ["message"]

    }

}

 

output {

    elasticsearch {

        hosts => ["localhost:9200"]

        index => "test-migrate"

        document_type => "data"

        document_id => "%{person_id}"

    }

    stdout {

        codec => json_lines

    }

} jdbc.sql内容如下:

select * from testtable

将这两个文件放在logstash文件的bin下

 

 

然后进入logstash文件的 bin目录下执行cmd命令logstash.bat -f logstash.conf

即可启动监听,然后你会发现你的数据已经导入到es之中,而且insert和update的时候也会同步进去,修改mysql上的数据后也同样会同步到es

 

posted @ 2021-04-10 12:19  元点  阅读(87)  评论(0编辑  收藏  举报