Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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
Amazon web services s3存储桶的默认块大小是多少_Amazon Web Services_Amazon S3_Amazon Ec2_Parquet - Fatal编程技术网

Amazon web services s3存储桶的默认块大小是多少

Amazon web services s3存储桶的默认块大小是多少,amazon-web-services,amazon-s3,amazon-ec2,parquet,Amazon Web Services,Amazon S3,Amazon Ec2,Parquet,我正在s3中编写一个拼花文件。我必须知道s3块的大小,所以我可以根据行组大小进行相应的设置。as 1行组大小=默认s3块大小。(拼花地板中的默认行组大小为128MB,但如果尝试从行组元中获取行偏移量,则我得到每个行组消耗约116MB。为什么会这样 例如:148.7 MB文件组成两个行组 row group 1: RC:2870100 TS:429678457 OFFSET:4 row group 2: RC:759588 TS:108434365 OFFSET:12372938

我正在s3中编写一个拼花文件。我必须知道s3块的大小,所以我可以根据行组大小进行相应的设置。as 1行组大小=默认s3块大小。(拼花地板中的默认行组大小为128MB,但如果尝试从行组元中获取行偏移量,则我得到每个行组消耗约116MB。为什么会这样

例如:148.7 MB文件组成两个行组

row group 1:     RC:2870100 TS:429678457 OFFSET:4 
row group 2:     RC:759588 TS:108434365 OFFSET:123729384 

每个行组消耗大约116MB的数据。

如前所述,S3并不固有地将文件大小限制在此级别

虽然您没有提到如何编写S3,但您的编写方式可能是这里的疑点

一个简单的例子是,如果您使用Spark编写,并并行执行此操作

虽然我还没有测试spark是否会自动并行写入,但简单的第一步是将并行度设置为1,而不管您使用哪个应用程序来编写


有两件事可以帮助验证这是正确的解决方案:

  • 使用不同的工具将文件上载到S3,该工具不进行并行处理,甚至不手动
  • 将应用程序写入非S3的其他位置

  • S3是一种基于对象的存储,因此唯一适用的限制是文件大小为5TB。您使用S3试图实现什么?我试图读取每个任务中的每个行组,以便提高并行性。但事实并非如此。我已将每个行组的默认大小设置为128MB。但我发现行组大小可能小于此值。为什么是这样吗?