Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 火花流-浓缩和#x2B;分析+;在s3上存储事件_Apache Spark_Spark Streaming_Parquet - Fatal编程技术网

Apache spark 火花流-浓缩和#x2B;分析+;在s3上存储事件

Apache spark 火花流-浓缩和#x2B;分析+;在s3上存储事件,apache-spark,spark-streaming,parquet,Apache Spark,Spark Streaming,Parquet,我的事件来自于Kinesis,这需要进行充实。充实的意思是,将ip转换为位置,添加会话id等。充实后,我希望将其存储在S3(拼花地板)上,以便以后进行分析,我还希望实时获取一些指标(3~5分钟延迟是可以的),并将其存储在红移中 我想我可以使用spark流媒体,我的流媒体应用程序可以进行丰富,存储在s3中,以及进行实时查询 问题如下: 如果我将Spark Stream的BatchDuration设置为3分钟,我可以每3分钟更新一次分析。但它会在S3中每3分钟创建一个文件 如果我将Spark St

我的事件来自于Kinesis,这需要进行充实。充实的意思是,将ip转换为位置,添加会话id等。充实后,我希望将其存储在S3(拼花地板)上,以便以后进行分析,我还希望实时获取一些指标(3~5分钟延迟是可以的),并将其存储在红移中

我想我可以使用spark流媒体,我的流媒体应用程序可以进行丰富,存储在s3中,以及进行实时查询

问题如下:

  • 如果我将Spark Stream的
    BatchDuration
    设置为3分钟,我可以每3分钟更新一次分析。但它会在S3中每3分钟创建一个文件

  • 如果我将Spark Stream的
    BatchDuration
    设置为60分钟,我可以每小时获得一个文件,但是我的分析会延迟一个小时

  • 如果我创建了两个不同的应用程序,那么我必须重复代码进行充实

解决方案设想:

  • 使用3分钟的间隔,在S3上获取大量文件,稍后运行单独的程序来合并文件,听起来不正确-容易出错,灾难管理不善

  • 使用两个运动流,第一个应用程序丰富数据并将其放入第二个流。在第二个流中,有两个不同间隔的应用程序。实时分析运行时间为2-3分钟,S3 Writer每隔1小时运行一次。-这里的成本似乎是不利的


建议采用第二种方法,因为它的实施风险较小。如果您有一个容错框架来执行合并作业,则可以使用第一种方法。建议使用第二种方法,因为它的实现风险较小。如果有一个容错框架来执行联合收割机作业,则可以使用第一种方法。