美文网首页
Elasticsearch中文搜索搭建及定时增量同步mysql

Elasticsearch中文搜索搭建及定时增量同步mysql

作者: 东东波先森 | 来源:发表于2019-08-03 08:56 被阅读0次

    git clone git://github.com/medcl/elasticsearch-rtf.git -b master --depth 1​

    创建非root用户

    进入非root用户,启动:ES_JAVA_OPTS="-Xms512m -Xmx512m"  ./bin/elasticsearch  -d

    外网访问

    vi conf/elasticsearch.yml

    修改network.host: 0.0.0.0

    bootstrap checks failed

    max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

    1、vi /etc/sysctl.conf

    设置fs.file-max=655350

    保存之后sysctl -p使设置生效

    由于使用的是openvz的VPS, 所以优化前需要执行修复命令.

    否则会出现"permission denied on key 'xxx'"的异常. 

    rm -f /sbin/modprobe  

    ln -s /bin/true /sbin/modprobe  

    rm -f /sbin/sysctl  

    ln -s /bin/true /sbin/sysctl

    2、vi /etc/security/limits.conf 新增

    * soft nofile 655350

    * hard nofile 655350

    3、重新使用SSH登录,再次启动elasticsearch即可。

    外网访问:serverip:9200/

    一般这个时候ok了,但我的虚拟机就是不行,所以我只能通过nginx反向代理的方式实现外网访

    1.下载插件安装

    git clone git://github.com/mobz/elasticsearch-head.git

    cd elasticsearch-head

    npm install

    在elasticsearch-head目录下node_modules/grunt下如果没有grunt二进制程序,需要执行

    cd elasticsearch-head

    npm install grunt --save

    2.修改配置

    修改elasticsearch-head下Gruntfile.js文件,默认监听在127.0.0.1下9200端口

    3.启动服务

    /usr/local/elasticsearch-head/node_modules/grunt/bin/grunt server

    浏览器访问 http://192.168.1.12:9100/

    3、出现问题

    head主控页面是可以显示的,但是显示连接失败

    “集群健康值: 未连接”

    4、解决方案

    修改elasticsearch.yml文件

    vim $ES_HOME$/config/elasticsearch.yml

    # 增加如下字段

    http.cors.enabled: true

    http.cors.allow-origin: "*"

    重启es和head即可

    1.下载公共密钥

    rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

    2.添加yum源

    vim  /etc/yum.repos.d/logstash.repo

    文件中写入

    [logstash-5.x]

    name=Elastic repository for 5.x packages

    baseurl=https://artifacts.elastic.co/packages/5.x/yum

    gpgcheck=1

    gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

    enabled=1

    autorefresh=1

    type=rpm-md

    保存退出

    3.使用yum安装

    yum install logstash

    4.验证是否安装成功

    进入 logstash 安装目录

    cd /usr/share/logstash

    运行

    bin/logstash -e 'input { stdin { } } output { stdout {} }'

    等待几秒钟 出现  

    The stdin plugin is now waiting for input:

    然后输入 

    hello world

    得到类似的结果

    2016-11-24T08:01:55.949Z huangxd hello world

    开始安装插件

    bin/logstash-plugin  install logstash-input-jdbc​

    下载

    mysql-connector-java​.jar

    在bin目录下生成/conf-mysql/logstash-mysql-es.conf

    input{

         jdbc {

             jdbc_driver_library => "mysql-connector-java-5.1.44-bin.jar"

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

             jdbc_connection_string => "jdbc:mysql://rm-***.mysql.rds.aliyuncs.com:3306/db_name"

             jdbc_user => "db_user"

             jdbc_password => "db_password"

             jdbc_paging_enabled => "true"

             jdbc_page_size => "1000"

             jdbc_default_timezone =>"Asia/Shanghai"

             schedule => "* * * * *"

             statement => "select * from jm_es_employee where updatetime > :sql_last_value"

             use_column_value => true

             tracking_column => "updatetime"

             last_run_metadata_path => "./logstash_jdbc_last_run"

           } 

    output{

          elasticsearch {

             hosts => "es-cn-***.elasticsearch.aliyuncs.com:9200"

             user => "elastic"

             password => "es_password"

             index => "employee"

             document_id => "%{id}"

          }

          stdout {

             codec => json_lines

         }

     } ​

    然后开始执行

    bin/logstash -f fielname.conf

    如果出现错误 或者没有结果 可以进入 logs 目录中查看日志

    相关文章

      网友评论

          本文标题:Elasticsearch中文搜索搭建及定时增量同步mysql

          本文链接:https://www.haomeiwen.com/subject/qjiddctx.html