我正在创建一个应用程序,在其中获取进入kafka然后火花的流数据。使用数据,应用一些登录,然后将处理后的数据保存到配置单元中。数据速度非常快。我在1分钟内获得50K记录。火花流中有1分钟的窗口,它处理数据并将数据保存在配置单元中。
我的问题是生产前瞻性架构好吗?如果是,我如何将流数据保存到配置单元中。我正在做的是,创建1分钟窗口数据的数据帧,并使用
将其保存在配置单元中results.write.mode(org.apache.spark.sql.SaveMode.Append).insertInto("stocks")
我还没有创建管道。没关系,或者我必须修改架构?
由于
答案 0 :(得分:3)
我会试一试!
但是kafka-> spark-> hive不是你用例的最佳pipline。
建议:
选项1: - 使用kafka作为缓冲队列并设计你的管道 - kafka-> hdfs(例如带火花或水槽) - >批量火花到hive / impala表
选项2:
选项1没有"实时"分析选项。这取决于您运行批处理火花的频率
option2是我推荐的一个不错的选择,在hbase中存储30天,在hive / impala中存储所有旧数据。通过视图,您可以加入新旧数据进行实时分析。 Kudu使架构更加容易。
如果您想将数据分区并通过HIVEsql使用它,那么将数据保存到配置单元表中会非常棘手。
但基本上它会像以下一样起作用:
xml.write.format("parquet").mode("append").saveAsTable("test_ereignis_archiv")
BR