如何定期向hadoop提供信息

5hcedyr0  于 2021-05-27  发布在  Hadoop
关注(0)|答案(2)|浏览(272)

我的公司每天产生大约600万条记录,我看到hadoop是处理大量数据的一个很好的解决方案。我发现了如何从mysql加载数据,但它正在导出完整的数据库,有没有一种方法可以在我的mysql数据库和hadoop之间保持数据同步?

q9rjltbz

q9rjltbz1#

一个最好的解决办法,你可以使用的是debezium。debezium构建在apachekafkaconnectapi之上,并提供监视特定数据库的连接器。
它将每个数据库表中的所有行级更改记录在一个更改事件流中,应用程序只需读取这些流,就可以按照更改事件发生的相同顺序查看更改事件。
架构如下:
mysql-->debezium(kafka连接插件)--->kafka主题-->hdfs接收器
你可以在这里找到更多关于debezium的信息和文档。
此外,apache nifi有一个名为capturechangemysql的处理器,您可以按如下方式设计nifi流:
mysql-->capturechangemysql(处理器)-->puthdfs(处理器)
你可以在这里阅读更多关于capturechangemysql的信息。

s3fp2yjn

s3fp2yjn2#

有多种可用的解决方案,您可能需要根据您的体系结构要求或部署设置进行选择。
debezium公司:
debezium是一个通过apachekafka connect部署的分布式平台,它有助于持续监视系统的各种数据库,并让应用程序以提交到数据库的相同顺序流式处理每一行级别的更改。它将现有数据库转换为事件流,应用程序可以通过事件流看到并相应地响应数据库中的每一行级别更改。
kafka connect是一个用于实现和操作源连接器(如debezium)的框架和运行时,debezium将数据摄取到kafka中,sink connector将数据从kafka主题传播到其他系统中。
对于mysql,debezium的mysql连接器可以帮助监视和记录mysql服务器上数据库的所有行级更改。每个表的所有事件都记录在一个单独的kafka主题中,客户机应用程序可以读取与其关注的数据库表相对应的kafka主题,并根据需要对在这些主题中看到的每一行级事件作出React。
一旦感兴趣的数据在topics中可用,kafka connect hdfs sink connector可用于根据您的用例或需求以多种格式将数据从kafka topics导出到hdfs文件,并在启用时与hive集成。这个连接器帮助应用程序定期轮询来自apachekafka的数据并将它们写入hdfs。此连接器还自动为每个kafka主题创建一个外部配置单元分区表,并根据hdfs中的可用数据更新该表。
麦克斯韦的守护进程:
maxwell的守护进程是一个cdc(changedatacapture)应用程序,它读取mysql binlog(myqsql数据库中的事件),并将行更新作为json写入kafka或其他流媒体平台。一旦kafka主题中有了感兴趣的数据,就可以使用kafka connect hdfs sink连接器将kafka主题中的数据导出到hdfs文件。
nifi公司:
apachenifi有助于自动化系统间的数据流。apachenificdc(changedatacapture)流还使用mysql bin日志(通过capturechangemysql)创建表的副本,并确保它与对源的行级更改同步。这个inturn可以由nifi puthdfs操作,将数据写入hdfs。

相关问题