我的评论如下:
Kafka ----> spark stream(server1)-----> spark stream(server2)
服务器1是组织1的服务器,它对数据集进行一些转换。
服务器2是组织2服务器,它对从第一个spark流作业输出的数据执行一些不同的转换。
我想知道这种类型的管道是否可行。如果可能的话,我们该怎么做。
还尝试在两个作业之间使用kafka,但我们不想保留数据,我们想要处理并将其推送到服务或其他Spark作业。
答案 0 :(得分:0)
您可以在StreamingContext对象上使用socketTextStream
在Spark中打开原始TCP套接字,但是我可以看到的问题是,执行器崩溃,驱动程序移至新节点,因此您需要某种类型服务发现/负载平衡器的动态了解目标套接字的位置。
与使用Kafka进行比较,与一个Kafka代理的连接可以引导整个集群。
您说您不需要保留,好的,然后将Kafka主题配置为具有非常低的保留值。
但是最后,您实际上只是在请求TCP套接字,而Spark或Kafka只是实现细节。