windows环境下搭建Elasticsearch

2019-12-02  本文已影响0人  田大娃的辣条

工作需要有辛在windows 环境下操作了一次es,在此我记录了一下es 搭建以及数据全量同步的过程。

准备安装包:

安装环境准备:

node和grunt安装

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

2.安装完成用cmd进入安装目录执行 node -v可查看版本号。


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


4.:在安装node时出现
run npm audit fix to fix them, or npm audit for details.错误时,
依次执行下面的命令即可。

npm audit fix
npm audit fix --force
npm audit

ES安装

ES本体安装

解压本体安装包,进入config目录,修改elaticsearch.yml,在文档末尾加入。

  http.cors.enabled: true 
  http.cors.allow-origin: "*"
  node.master: true
  node.data: true

并且去掉 network.host: 192.168.0.1的注释并改为network.host: 0.0.0.0,去掉 cluster.name;node.name;http.port的注释。
修改 jvm.options 文件


# Xms Xmx 内存大小
-Xms256m
-Xmx256m
#-Dfile.encoding=UTF-8  utf-8会导致 控制台中文乱码
-Dfile.encoding=GBK

ES本体安装完成。 bin 目录 elasticsearch.bat 启动。

Head插件安装

解压插件安装包,修改Gruntfile.js

        connect: {
            server: {
                options: {
                   #加入hosatname
                    hostname: '*', 
                    port: 9100,
                    base: '.',
                    keepalive: true
                }
            }
        }

cmd 目录下 npm install 安装head,然后npm run start 运行head插件。

ik安装

将安装包解压后,更名为iK,并且复制到Elasticsearch的解压目录下即可。

此时ESwindows下搭建已经完成。
打开浏览器访问:http://127.0.0.1:9100

mysql 数据全量同步。

解压Logstash插件,bin目录下执行

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

执行以下命令安装Logstash-input-jdbc插件

logstash-plugin install logstash-input-jdbc

新建一个mysql 文件夹用来存放mysql 驱动jar 与全量同步配置文件。
mysql-connector-java-5.1.41.jar
配置文件:

input {
    stdin {
    }
    jdbc {
     type => "datatable"
      # mysql相关jdbc配置
      jdbc_connection_string => "jdbc:mysql://*.*.*.*:3306/*"
      jdbc_user => "*"
      jdbc_password => "*"
 
      # jdbc连接mysql驱动的文件目录
      jdbc_driver_library => "E:/work/logstash-6.2.4/mysql/mysql-connector-java-5.1.41.jar"
      # the name of the driver class for mysql
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
 
      # mysql文件, 也可以直接写SQL语句在此处,如下:
      statement => "SELECT * from pgmp_dth_datatable"
      #statement_filepath => "/opt/logstash/conf/jdbc.sql"
 
      # 这里类似crontab,可以定制定时操作,比如每10分钟执行一次同步(分 时 天 月 年)
      #schedule => "* * * * * *"
        
    }
}
 
# 此处我不做过滤处理
filter {}
 
output {
    #输出到elasticsearch的配置
    elasticsearch {
        hosts => ["127.0.0.1:9200"]
        index => "datatable_index"
    document_type => "%{type}" 
    }
 
    #这里输出调试,正式运行时可以注释掉 json_lines      rubydebug
    stdout {
        codec => json_lines
    }
}

切换到bin 目录下执行

logstash -f ../mysql/jdbc.conf

即可实现数据全量同步。

上一篇下一篇

猜你喜欢

热点阅读