nis*_*ish 20 apache-kafka apache-spark spark-streaming
我在用spark 1.5.2.我需要使用kafka作为流媒体源来运行spark streaming工作.我需要从kafka中的多个主题中读取并以不同方式处理每个主题.
nis*_*ish 20
我做了以下观察,以防它对某人有帮助:
创建多个流有两种方式:1.您不需要应用过滤器操作来以不同方式处理不同的主题.2.您可以并行读取多个流(而不是单个流的情况下逐个读取).为此,有一个未记录的配置参数spark.streaming.concurrentJobs*.所以,我决定创建多个流.
sparkConf.set("spark.streaming.concurrentJobs", "4");
Run Code Online (Sandbox Code Playgroud)我认为正确的解决方案取决于您的用例.
如果您的处理逻辑对于来自所有主题的数据是相同的,那么毫无疑问,这是一种更好的方法.
如果处理逻辑不同,我猜你从所有主题中得到一个RDD,你必须为每个处理逻辑创建一个pairedrdd并单独处理它.问题在于,这会创建一种分组处理,整体处理速度将由需要最长时间处理的主题确定.因此,数据较少的主题必须等到处理所有主题的数据.一个优点是,如果它是时间序列数据,那么处理一起进行,这可能是一件好事.
运行独立作业的另一个好处是可以更好地控制并调整资源共享.例如:处理具有高吞吐量的主题的作业可以被分配更高的CPU /内存.
| 归档时间: |
|
| 查看次数: |
12606 次 |
| 最近记录: |