首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用spark在蜂箱中存储流式数据

使用spark在蜂箱中存储流式数据
EN

Stack Overflow用户
提问于 2017-09-06 17:00:36
回答 1查看 7.5K关注 0票数 5

我正在创建一个应用程序,其中获取流数据,进入卡夫卡,然后火花。使用这些数据,应用一些登录,然后将处理过的数据保存到单元中。数据的速度非常快。我在1分钟内就能拿到50K记录。火花流有1分钟的窗口,它处理数据并将数据保存在蜂箱中。

我的问题是,对于生产来说,未来的架构是好的吗?如果是,如何将流数据保存到蜂巢中。我正在做的是,创建1分钟窗口数据的数据,并将其保存在蜂巢中。

代码语言:javascript
复制
results.write.mode(org.apache.spark.sql.SaveMode.Append).insertInto("stocks")

我还没有创建管道。可以吗?还是我得修改一下建筑?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-09-06 17:25:53

我会试试的!

但卡夫卡->火花->蜂箱不是你的最佳使用线。

  1. hive通常基于hdfs,而hdfs不是为少量的插入/更新/选择而设计的。因此,您的计划最终可能会出现以下问题:
    • 许多小文件以糟糕的性能结束。
    • 你的窗户变小了,因为它需要很长时间

建议:

选项1:-使用kafka作为缓冲队列,并设计管道,如-kafka->hdfs(例如,带火花或水槽),->batch星星之火到蜂箱/黑帕拉表。

备选案文2:

  • 卡夫卡->水槽/火花到hbase/kudu->批次火花到蜂箱/黑斑羚

备选方案1没有“实时”分析选项。这取决于您运行批处理火花的频率。

option2是我推荐的一个很好的选择,比如在hbase中存储30天,在蜂箱/黑斑羚中存储所有较旧的数据。有了视图,您将能够加入新的和旧的数据进行实时分析。古都使建筑变得更加简单。

如果您想要对数据进行分区并通过HIVEsql使用它,那么将数据保存到单元表中可能会很棘手。

但最基本的是,它的工作方式如下:

代码语言:javascript
复制
xml.write.format("parquet").mode("append").saveAsTable("test_ereignis_archiv")

BR

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46080736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档