【问题标题】:Using Spark to save data to Cassandra使用 Spark 将数据保存到 Cassandra
【发布时间】:2016-05-01 23:13:36
【问题描述】:

现在,在我当前的架构中,我有一个模块负责向 Cassandra 写入/读取数据,以及负责下载数据的模块。最近我开始使用 Datastax 和 Spark。我想对新获取的数据进行一些转换。对这个问题有什么正确的看法?我是使用我的模块存储数据并单独进行 Spark 计算,还是使用 Spark Streaming 将下载的数据直接发送到 Spark,并在作业中将原始数据和转换后的数据都保存到 Cassandra?我正在对股票报价进行操作,因此需要不断下载大量数据并进行大量转换。

【问题讨论】:

    标签: java apache-spark cassandra spark-streaming datastax


    【解决方案1】:

    在我看来,最好将其分开。

    首先存储原始数据,然后对其进行处理。
    以后更容易扩展和维护每个组件。

    例如:如果您想更改下载模块中的某些内容,例如添加新的下载源或修复错误,则不会影响在 spark 中完成的数据处理,并且更改在 spark 上运行的代码中的某些内容不会有任何影响(或引入错误)您下载的原始数据。

    【讨论】:

    • 从不同源下载数据的模块在进一步发送之前统一数据,因此这不是问题。我只是关心 Spark 作为管理数据存储的模块。它简化了架构,因为用于数据管理的模块将是冗余的,因为 Spark 会通过 SparkSQL 进行保存、转换和读取。我的问题是它是否打算做所有这些?
    • @PawełSzychiewicz,如果您决定将下载和处理的数据存储在 aws s3 等不同的位置,情况会变得很复杂。您需要将下载的原始数据与您的 spark 吐出的已处理数据分开。它们完全不同。我建议有一个用于下载和存储数据的模块、一个用于统一数据的模块和一个用于处理数据的模块。使用这种设置,维护每个部分都很容易,并且将来如果您决定更改某些内容,重播所有历史数据并再次运行它会非常容易
    猜你喜欢
    • 2020-08-24
    • 2015-05-10
    • 2016-01-30
    • 1970-01-01
    • 2018-05-20
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 2017-08-29
    相关资源
    最近更新 更多