使用火花流从数据库中读取流

时间:2016-06-02 13:12:48

标签: java mysql apache-spark spark-streaming spark-dataframe

我想使用spark streaming从RDBMS数据库读取数据,如mysql。

但我不知道如何使用JavaStreamingContext

来做到这一点
 JavaStreamingContext jssc = new JavaStreamingContext(conf, Durations.milliseconds(500));
DataFrame df = jssc. ??

我在互联网上搜索,但我找不到任何东西

提前谢谢。

3 个答案:

答案 0 :(得分:5)

如果不安装某些第三方软件,你就无法做到这一点 您可以做的是创建一个个性化的接收器,它可以使用SparkSQL包和Streaming组合来完成您想要的任务 实现一个扩展Receiver的类,并在里面执行从数据库中提取数据所需的所有连接和查询 我现在在工作,所以我会给你一个链接,看看而不是产生代码,抱歉:
http://spark.apache.org/docs/latest/streaming-custom-receivers.html
https://medium.com/@anicolaspp/spark-custom-streaming-sources-e7d52da72e80

答案 1 :(得分:1)

最好的可靠解决方案是避免使用MySqL。当您将记录插入MySQl时,通过交易将它们放入Kafka(Kafka制作人),然后在流媒体应用程序中使用它们。

答案 2 :(得分:0)

我认为不可能从MySql流式传输。数据可以从许多来源获取,如Kafka,Flume,Twitter,ZeroMQ,Kinesis或TCP套接字。