Spark Streaming REST 自定义接收器
Posted
技术标签:
【中文标题】Spark Streaming REST 自定义接收器【英文标题】:Spark Streaming REST Custom Receiver 【发布时间】:2016-11-10 12:11:14 【问题描述】:是否可以在 Spark Streaming 的自定义接收器中使用 REST API?
我正在尝试能够从该 API 异步执行多个调用/读取,并使用 Spark Streaming 来执行此操作。
【问题讨论】:
【参考方案1】:自定义接收器可以是任何异步生成数据的进程。通常,您的 def receive()
方法会将异步请求发送到您的 REST 服务器,可能使用 Futures
和专用的 ThreadPool
。 onCompletion
未来,我们调用 store(data)
方法将结果提供给 Spark Streaming 作业。
简而言之,
def onStart()
=> 创建管理异步请求响应处理的进程
def receive()
=> 不断做 I/O 并通过调用 store(...)
报告结果
def onStop()
=> 停止进程并清理 onStart
创建的内容。
custom receivers docs 中有一个例子。
【讨论】:
谢谢!我正在考虑使用一些外部实现(正在研究 Flume)首先将数据导入 Kafka 之类的东西,然后使用 Kafka 作为我的 Spark Streaming 应用程序的源,但似乎我可以让它正常工作。以上是关于Spark Streaming REST 自定义接收器的主要内容,如果未能解决你的问题,请参考以下文章
如何使用spark streaming接收kafka中发送的自定义对象
使用自定义接收器从数据集中接收流数据 [Spark Streaming]
Spark Streaming:使用带有列修剪的 MicroBatchReader 的模式不匹配