1

我正在使用 Spark 使用 Hive parquet 分区表将 UFS 作为 S3 写入 Alluxio 中的数据。我在 Hive 分区字段上使用 repartition 函数来提高 Alluxio 中的写操作效率。这导致在 Alluxio 中创建单个文件,即在 S3 中为分区组合创建单个对象。虽然 Alluxio 具有使用 S3 的偏移量以字节为单位读取数据的功能,但最终它会缓存来自 S3 的整个文件/对象。如果文件大小增加到 TBs,它将成为 Alluxio 内存的开销。请建议如何控制文件大小。

4

1 回答 1

0

虽然 Alluxio 具有使用 S3 的偏移量以字节为单位读取数据的功能,但最终它会缓存来自 S3 的整个文件/对象

这种说法是不正确的。虽然一个 S3 对象可以是 TB,但在 Alluxio 中,所有对象都以 Alluxio 块的粒度缓存(默认每个 512 MB)。因此,如果您的应用程序只触及对象的字节,Alluxio 将缓存包含这些字节的块,而不是该对象的所有块。

于 2019-07-08T05:55:31.283 回答