腾讯云Logstash实战1-同步两个Elasticsearch集群中的数据

腾讯云Logstash实战1-同步两个Elasticsearch集群中的数据,第1张

使用Logstash也可以完成同步两个Elasticsearch集群中的数据,比如把数据从自建的Elasticsearch集群同步到腾讯云上的Elasticsearch集群,或者同步两个腾讯云上的Elasticsearch集群中的数据。本文介绍如何使用 腾讯云Logstash 产品,同步两个Elasticsearch集群中的数据。

在“管道管理”页面,点击“新建管道”按钮,创建一个管道:

进入管道配置页面,点击“引用模板”按钮,同时引用“input-elasticsearch”和“output-elasticsearch”两个模板:

在管道配置中,分别针对“input-elasticsearch”和“output-elasticsearch”进行配置,一些关键的配置参数说明如下:

查看更多参数,可以参考 input-elasticsearch

查看更多参数,可以参考 output-elasticsearch

在配置完管道后,点击“保存并部署”创建一个管道并自动部署:

在控制台查看Logstash的运行日志,如果没有ERROR级别的日志,则说明管道运行正常:

进入到output-elasticsearch中定义的输出端的ES集群对应的kibana页面,在Dev tools工具栏里查看索引是否存在,以及索引的文档数量是否正确:

工作中我们遇到了把Hive数据同步到Clickhouse的业务需求,一开始我们写Spark任务,用SparkSQL读Hive,再用JDBC写入到Clickhouse。

后来,随着要同步的表越来越多,每次都写Spark任务,成本就显得有些高了。于是,写了一个通用的Spark任务,指定Hive表、字段,指定Clickhouse表、字段,每次指定不同的参数。

再后来,业务越来越复杂,不仅是简单的同步,而是要支持更复杂的SQL,结果进行数据类型转换、值转化等,然后再插入Clickhouse。

这不是ETL要干的事儿吗?!

当然,继续增强之前的Spark,完全可以实现这个功能。但是说到ETL,不是有专业强大的Logstash吗,为什么要重复造轮子?

经过一番调研,还真有人写了Logstash插件,用来导出数据到Clickhouse: logstash-output-clickhouse

输出端搞定了,输入端怎么搞呢?很建达,用JDBC插件就可以了。

如上,配置jdbc连接信息即可。

需要说明的是,相关的jar包比较多,需要给全了,否则会有各种ClassNotFoundException。完整的jar列表为:

这些jar最好与hive环境版本一致,我们用的是CDH版,所以都是从CDH目录下找到的jar。

Clickhouse插件使用说明参考: https://github.com/mikechris/logstash-output-clickhouse

主要说下安装过程。

说明文档里说的 bin/logstash-plugin install logstash-output-clickhouse 方式,没有安装成功,所以只能自己编译安装。

先clone源码,然后进入源码根路径:

编译:

此时,若没有安装ruby环境,按照提示安装一下,再编译。

编译成功后,会多出一个文件

安装:

logstash的安装就不多说了,按照logstash官方文档安装就可以了。

此时,如果logstash版本是5.x,可能会遇到一个错误:

按照提示,修改gemfile:

修改logstash-mixin-http_client的版本:

原来是>6且<7,改成>5且<6。

然后,再次编译、安装,就可以了。

按照文档中的使用说明,配置Clickhouse连接信息即可:

这部分工作可以放在filter里处理,各种filter插件就不说了,参考logstash官方文档吧。

https://artifacts.elastic.co/downloads/logstash/logstash-7.9.1.tar.gz

jdbc驱动 可以在maven 仓库里复制出来

另外两个文件是新建的

mysql.sql 随便写个select语句

mysql.config

./logstash -f ../mysql/mysql.conf

logstash只支持增量 相关问题请查看 https://blog.csdn.net/laoyang360/article/details/51747266


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9975132.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存