zoukankan      html  css  js  c++  java
  • Windows下elasticsearch安装并且同步数据库

    1、安装下载elasticsearch

    首先要安装有Java环境,没有请先自行安装

    然后去官网下载https://www.elastic.co/cn/downloads/elasticsearch

    2、运行elasticsearch

    下载完解压即可:直接双击/bin/ElasticSearch.bat

    浏览器输入:http://127.0.0.1:9200 查看效果

    修改一下config/elasticsearch.yml配置文件,修改后重启

    3、下载nodejs

    还没安装的,请看官方教程https://www.runoob.com/nodejs/nodejs-install-setup.html

    到安装node.js的目录下,输入栏中输入cmd即可进入cmd命令操作符界面:

    cmd 输入  npm install -g grunt-cli

    cmd 输入 grunt -version

    如果此时报错“grunt不是内部或外部命令,也不是可运行的程序 或批处理文件”,

    解决方案:

    ①进入C:UsersAdministratorAppDataRoaming pm,将此路径添加到环境变量PATH中。然后重新打开输入,依旧报错请执行第②步

    ②进入nodejs安装目录,将如下文件复制到C:UsersAdministratorAppDataRoaming pm;然后进入nodejs的node_global目录,将grunt-cli和npm文件夹整体复制到C:Program Files odejs ode_global ode_modules中。

    重新打开输入命令即可

    4、下载elasticsearch-head

    修改文件Gruntfile.js

    找到connect,复制下面数据替换原始数据

    同样输入框:cmd 到该目录

    输入命令  npm install  回车执行

    输入  npm run start 启动服务

    浏览器中输入:http://localhost:9100 查看

    另一种方式:打开翻墙工具(本人之前用的翻墙工具所连接的服务器已经过期,所以请自行解决),进入Chrome浏览器插件中心,搜索elasticsearch-head,然后安装,打开之后的效果是一样的【推荐使用这个,简单快捷】

    5、下载logstash

    网址https://www.elastic.co/cn/downloads/logstash

    解压,进入bin目录,创建bin文件夹(本例子为bin,命名没有要求),jdbc.sql,logstash.conf文件

    bin 文件夹放数据库连接包

    jdbc.sql 文件放入sql语句

    logstash.conf文件输入以下内容

    input {
    stdin {

    }
    jdbc {
    # mysql 数据库链接
    jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC"
    # 用户名和密码
    jdbc_user => "root"
    jdbc_password => "123456"
    # 驱动 修改为mysql连接包位置
    jdbc_driver_library => "F:wznelasticsearchlogstash-6.8.1ininmysql-connector-java-5.1.7-bin.jar"
    # 驱动类名
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_paging_enabled => "true"
    jdbc_page_size => "50000"
    #你的SQL的位置,当然,你的SQL也可以直接写在这里。
    #statement => select * from aaa
    # 执行的sql 文件路径+名称
    statement_filepath => "jdbc.sql"
    # 设置监听间隔 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
    schedule => "* * * * *"
    }
    }
    output {
    elasticsearch {
    # ES的IP地址及端口
    hosts => ["localhost:9200"]
    # 索引名称 可自定义
    index => "test02"
    # 需要关联的数据库中有有一个id字段,对应类型中的id
    document_id => "%{id}"
    document_type => "test02"
    }
    stdout {
    # JSON格式输出
    codec => json_lines
    }
    }
    logstash.conf更多配置详情请看https://yq.aliyun.com/articles/152043

    cmd输入  logstash -f logstash.conf

    注意:此工具不能停止运行,一旦停止运行,则无法实时同步数据库的数据!

    补充:

    ①多sql语句配置

    #如果要同步数据库多个表,需要添加多个jdbc{},因为一个jdbc只能执行一条sql语句
    jdbc {
    # mysql 数据库链接
    jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC"
    # 用户名和密码
    jdbc_user => "root"
    jdbc_password => "123456"
    # 驱动 修改为mysql连接包位置
    jdbc_driver_library => "F:wznelasticsearchlogstash-6.8.1ininmysql-connector-java-5.1.7-bin.jar"
    # 驱动类名
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_paging_enabled => "true"
    jdbc_page_size => "50000"
    #你的SQL的位置,当然,你的SQL也可以直接写在这里。
    #statement => select * from aaa
    # 执行的sql 文件路径+名称
    statement_filepath => "jdbc1.sql"
    # 设置监听间隔 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
    schedule => "* * * * *"
    }
    ②多数据源配置(Oracle、SqlServer)

    #如果要同步多个数据源,需要添加多个jdbc{}
    jdbc {
    # mysql 数据库链接,mybatis为数据库名
    jdbc_connection_string => "jdbc:oracle:thin:@127.0.0.1:1521:test"
    # 用户名和密码
    jdbc_user => "root"
    jdbc_password => "123456"
    # 驱动 修改为mysql连接包位置
    jdbc_driver_library => "F:wznelasticsearchlogstash-6.8.1ininojdbc6.jar"
    # 驱动类名
    jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
    jdbc_paging_enabled => "true"
    jdbc_page_size => "50000"
    #你的SQL的位置,当然,你的SQL也可以直接写在这里。
    #statement => select * from aaa
    # 执行的sql 文件路径+名称
    statement_filepath => "jdbc2.sql"
    # 设置监听间隔 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
    schedule => "* * * * *"
    }
    #如果要同步多个数据源,需要添加多个jdbc{}
    jdbc {
    # mysql 数据库链接,mybatis为数据库名
    jdbc_connection_string => "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test;"
    # 用户名和密码
    jdbc_user => "sa"
    jdbc_password => "123456"
    # 驱动 修改为mysql连接包位置
    jdbc_driver_library => "F:wznelasticsearchlogstash-6.8.1ininmssql-jdbc-7.0.0.jre8.jar"
    # 驱动类名
    jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
    jdbc_paging_enabled => "true"
    jdbc_page_size => "50000"
    #你的SQL的位置,当然,你的SQL也可以直接写在这里。
    #statement => select * from aaa
    # 执行的sql 文件路径+名称
    statement_filepath => "jdbc3.sql"
    # 设置监听间隔 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
    schedule => "* * * * *"
    }
    6、启动步骤

    启动elasticsearch,双击elasticsearch.bat

    启动elasticsearch-head,cmd输入npm run start

    启动logstash,cmd输入logstash -f logstash.conf
    ————————————————
    版权声明:本文为CSDN博主「wzn1054162229」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/wzn1054162229/article/details/101480921

  • 相关阅读:
    Effective C++ 读书笔记(3544):继承关系与面向对象设计
    《全景探秘游戏设计艺术》读后感之引子
    Effective C++ 读书笔记(1117):构造析构和赋值函数
    Effective C++ 读书笔记(2934):类与函数之实现
    Unity中使用PersistentDataPath加载文件
    打开本地【C】【D】【E】驱动器时候提示 X:\ 找不到应用程序
    C#进制转换
    在VS里编辑unity代码调用系统方法不显示中文注释或英文注释
    Spreadsheet说明
    C#中删除控件的事件的方法类.
  • 原文地址:https://www.cnblogs.com/shixiuxian/p/12460799.html
Copyright © 2011-2022 走看看