0

编辑 我的用例是一个 Spark 流应用程序(spark 2.1.1 + Kafka 0.10.2.1),其中我从 Kafka 读取,并且每个消息/触发器都需要从 HBase 中提取数据。发布拉取,我需要对数据运行一些 SQL 语句(从 HBase 收到)

自然,我打算将处理(从 HBase 和 SQL 执行读取)推送到工作节点以实现并行性。

到目前为止,我尝试将数据从 HBase 转换为数据框(以便我可以启动 SQK 语句)都失败了。另一位绅士提到它不是“允许的”,因为那部分是在执行程序上运行的。但是,这是我有意识地选择在工作节点上运行这些部分。

这是健全的想法吗?如果不是,为什么不呢?

对此有何建议?还是整体思路?

4

1 回答 1

1

对于每个流式录制,从 hbase 和 sql 读取似乎“在流式应用程序中发生的事情太多”。

无论如何,您可以为每个分区创建与 hbase 的连接并获取记录,然后进行比较。不确定sql。如果它只是每个流记录的另一个读数,请再次在 spark 的分区级别处理。

但上述方法将非常耗时——只需确保在下一批开始之前完成所有工作。

您还提到了将“hbase 转换为数据帧”和“并行”。两者似乎是相反的方向。因为您从数据帧开始(可能从 hbase 读取一次,然后并行化。希望我消除了您的一些疑虑

于 2017-06-01T15:36:34.107 回答