我使用spark在alluxio中编写数据,ufs作为s3使用hiveparquet分区表。我在配置单元分区字段上使用重分区函数,以使alluxio中的写操作更高效。这导致在alluxio中创建单个文件,即在s3中为分区组合创建单个对象。虽然alluxio具有使用从s3的偏移量读取字节数据的功能,但最终它会从s3缓存整个文件/对象。如果文件大小增加到tbs,它将成为alluxio内存的开销。请建议如何控制文件大小。
lnvxswe21#
虽然alluxio具有使用从s3的偏移量读取字节数据的功能,但最终它会从s3缓存整个文件/对象这种说法是不正确的。尽管s3对象可以是tbs,但在alluxio中,所有对象都以alluxio块的粒度进行缓存(默认情况下,每个块为512MB)。因此,如果应用程序只接触对象的字节,alluxio将缓存包含这些字节的块,而不是该对象的所有块。
1条答案
按热度按时间lnvxswe21#
虽然alluxio具有使用从s3的偏移量读取字节数据的功能,但最终它会从s3缓存整个文件/对象
这种说法是不正确的。尽管s3对象可以是tbs,但在alluxio中,所有对象都以alluxio块的粒度进行缓存(默认情况下,每个块为512MB)。因此,如果应用程序只接触对象的字节,alluxio将缓存包含这些字节的块,而不是该对象的所有块。