MySQL 数据导入 ElasticSearch

需要安装 Head 插件安装 或者 Kibana 方便数据可视化

一 

window 安装ElasticSearch

====================================================================

这里提供下载一些安装包

链接:https://pan.baidu.com/s/1a3LHo-X5UPnUo8B76h7zAA 
提取码:6jqg 
 

MySQL 数据导入 ElasticSearch  

首先了解下

logstash

之前使用solr 进行数据同步都是基于调度器的,要么就是更新一条数据就更新solr索引库

  到ElasticSearch 有一个工具logstash,什么是logstash?面向百度

Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件。

解压logstash ,进入 bin 目录cmd  输入

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

骚等一会,可能会卡 按一下空格,等信息输出完毕,在控制台输入字符观察

 

logstash更详细介绍有兴趣的可以百度找找资料,实际上它里面也有一个调度器 可以设置数据同步


=====================================================================

利用logstash 将MySQL 数据导入 ElasticSearch

(1)在 logstash-5.6.8 安装目录下创建文件夹 mysqletc (名称随意)

(2)文件夹下创建 mysql.conf (名称随意) ,内容如下:

input {
  jdbc {
	  # mysql jdbc connection string to our backup databse 数据库连接
	  jdbc_connection_string => "jdbc:mysql://192.168.xxx.XXX:3306/ktc_article?characterEncoding=UTF8"
	  # the user we wish to excute our statement as 用户名密码
	  jdbc_user => "root"
	  jdbc_password => "admin"
	  # the path to our downloaded jdbc driver 自行设置自己的路径 
	  jdbc_driver_library => "D:/logstash-5.6.8/mysqletc/mysql-connector-java-5.1.46.jar"
	  # the name of the driver class for mysql
	  jdbc_driver_class => "com.mysql.jdbc.Driver"
	  jdbc_paging_enabled => "true"
	  jdbc_page_size => "1000"
	  #以下对应着要执行的sql的绝对路径。
	  #statement_filepath => ""
	  statement => "select * from tb_article"
	  #定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新(测试结果,不同的话请留言指出)
      schedule => "* * * * *"
  }
}

output {
  elasticsearch {
	  #ESIP地址与端口
	  hosts => "127.0.0.1:9200" 
	  #ES索引名称(自己定义的)
	  index => "ktc"
	  #自增ID编号
	  document_id => "%{id}"
	  document_type => "article"
  }
  stdout {
      #以JSON格式输出
      codec => json_lines
  }
}

(3)将 mysql 驱动包 mysql-connector-java-5.1.46.jar 拷贝至D:/logstash-5.6.8/mysqletc/ 下 。D:/logstash-5.6.8是你的安装目录    jar 自己网上 我这里用maven  仓库里就有

(4)命令行下执行

logstash ‐f ../mysqletc/mysql.conf

观察控制台输出,每间隔 1 分钟(时间不准)就执行一次 sql 查询

 

 

安装有可视化插件的话 再次刷新查看数据显示,看是否也更新了数据

Head 插件的安装与使用

 

如果都是通过 rest 请求的方式使用Elasticsearch,未免太过麻烦,而且也不够人性化。我们一般都会使用图形化界面来实现Elasticsearch 的日常管理,最常用的就是 Head 插件。

 

步骤 1:

下载 head插件:https://github.com/mobz/elasticsearch-head  上面配套资料中已提供下载。

elasticsearch-head-master.zip

步骤 2:

解压到任意目录,但是要和 elasticsearch 的安装目录区别开。

步骤 3:

安装 node js ,安装 cnpm

npm install -g cnpm --registry=https;//registry.npm.taobao.org

步骤 4:

grunt 安装为全局命令 。

Grunt 是基于 Node.js的项目构建工具。它可以自动运行你所设定的任务

npm install -g grunt-cli

步骤 5:安装依赖

进入 head 目录执行安装命令,在命令提示符下输入命令

cnpm install

步骤 6:

进入 head 目录启动 head,在命令提示符下输入命令

grunt server

步骤 7:

打开浏览器,输入 http://localhost:9100

步骤 8:

点击连接按钮没有任何相应,按 F12 发现有如下错误

No 'Access-Control-Allow-Origin' header is present on the requested resource

这个错误是由于 elasticsearch 默认不允许跨域调用,而 elasticsearch-head是属于前端工程,所以报错。

我们这时需要修改 elasticsearch 的配置,让其允许跨域访问。修改 elasticsearch 配置文件:elasticsearch.yml,增加以下两句命令:

步骤 7:

打开浏览器,输入 http://localhost:9100

步骤 8:

点击连接按钮没有任何相应,按 F12 发现有如下错误

No 'Access-Control-Allow-Origin' header is present on the requested resource

这个错误是由于 elasticsearch 默认不允许跨域调用,而 elasticsearch-head是属于前端工程,所以报错。

我们这时需要修改 elasticsearch 的配置,让其允许跨域访问。修改 elasticsearch 配置文件:elasticsearch.yml,增加以下两句命令:

http.cors.enabled: true

http.cors.allow-origin: "*"

elasticsearch 重启

此步为允许 elasticsearch 跨越访问 点击连接即可看到相关信息

详细参考es官网:https://www.elastic.co/guide/en/elasticsearch/reference/2.3/modules-http.html

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值