修改 我的用例是Spark流媒体应用程序(spark 2.1.1 + Kafka 0.10.2.1),其中我从Kafka中读取并且每个消息/触发器需要从HBase中提取数据。发布拉,我需要对数据运行一些SQL语句(所以从HBase收到)
当然,我打算将处理(从HBase和SQL执行中读取)推送到工作节点以实现并行性。
到目前为止,我尝试将数据从HBase转换为数据帧(以便我可以启动SQK语句)都失败了。另一个绅士提到,它不是"允许"因为那部分是在执行者身上运行的。但是,这是我有意识地选择在工作节点上运行这些部分。
这听起来好吗?如果没有,为什么不呢?
对此的建议是什么?或者总体思路?
答案 0 :(得分:1)
对于每个流式录制,从hbase和sql读取似乎“在流媒体应用中发生了太多”。
无论如何,您可以为每个分区创建连接到hbase并获取记录然后进行比较。关于sql不确定。如果它只是每个流记录的另一个读数,再次处理spark中的分区级别。
但上述方法耗费时间 - 只需确保在下一批开始之前完成所有工作。
您还提到过将“hbase转换为数据帧”和“并行”。两者似乎都是相反的方向。因为你从数据帧开始(可能是从hbase读取一次然后你并行化。希望我清除了你的一些疑虑