在同一集群上运行的两个kafka版本

时间:2018-11-18 09:56:45

标签: apache-kafka

我正在尝试在3个节点的群集上配置两个Kafka服务器。而该应用程序已在运行一个Kafka代理(0.8版)。并依赖于该kafka版本0.8,不能被干扰/升级。

现在对于POC,我需要配置1.0.0,因为我的新代码与此版本及更高版本兼容...

我的任务是将数据从oracle推送到HIVE表。为此,我正在使用jdbc connect从oracle和hive的jdbc获取数据以将数据推送到hive表。这应该是快速简便的方法...

我需要以下帮助

  1. 我可以使用spark-submit运行此数据推送到蜂巢吗?

  2. 我可以简单地在一个节点上的Linux服务器上复制kafka_2.12-1.0.0并在其上运行代码。我想我需要使用未使用的端口配置Zookeeper.properties和server.properties,然后分别启动此新的zookeeper和kafka服务???请注意,我不能打扰现有的Zookeeper和已经运行的kafka。

请帮助我实现它。

2 个答案:

答案 0 :(得分:0)

我不确定在同一台计算机上运行两个内存密集型应用程序(Kafka和/或Kafka Connect)是否非常安全。 尤其是 ,如果您不想干扰现有的应用程序。实际上,出于性能和功能方面的考虑,带升级的滚动重启将是最佳选择。而且,不,两个Kafka版本不应属于同一群集,除非您处于滚动升级方案的中间。

如果可能的话,请使用新的硬件...我假设Kafka 0.8甚至在可能是旧的机器上运行,并且超出保修范围?然后,没有明显的理由使我知道甚至不使用较新版本的Kafka,但是可以,将其解压缩到您想要的任何计算机上,或者使用诸如Ansible或您选择的首选配置管理工具之类的工具来执行它给你。

您实际上可以共享相同的Zookeeper集群,只需确保它不是相同的设置即可。例如,

集群0.8

zookeeper.connect=zoo.example.com:2181/kafka08

集群1.x

zookeeper.connect=zoo.example.com:2181/kafka10

此外,不清楚Spark适用于此体系结构的位置。请不要将JDBC接收器用于Hive。使用正确的HDFS Kafka Connect接收器,该接收器通过metastore具有直接的Hive支持。尽管JDBC源可能适用于Oracle,但有可能,您可能已经能够获得GoldenGate的许可证

答案 1 :(得分:0)

我能够实现两个kafka版本0.8和1.0,它们分别与各自的Zookeeper一起在同一服务器上运行。

遵循的步骤: 1.将版本包文件夹复制到服务器上的所需位置 2.更改zookeeper.properties和server.propeties中的配置设置(此处需要设置该特定服务器上未使用的端口) 3.启动服务并将数据推送到kafka主题。

注意:此要求仅适用于POC,而不是理想的生产环境。如上所述,我们必须升级到下一个级别,而不是上面的做法。