hadoop - s3n/s3a如何管理文件?

标签 hadoop amazon-s3 hdfs apache-kafka

我一直在使用 Kafka Connect 和 Secor 等服务将 Parquet 文件保存到 S3。我对 HDFS 或 Hadoop 不是很熟悉,但似乎这些服务通常会在批量写入 s3 之前将临时文件写入本地内存或磁盘。 s3n/s3a 文件系统是在本地虚拟化 HDFS 样式的文件系统,然后按配置的时间间隔推送,还是在写入 s3n/s3a 和写入 s3 之间存在一对一的对应关系?

我不确定我在这里问的问题是否正确。任何指导将不胜感激。

最佳答案

S3A/S3N 只是针对远程对象存储实现 Hadoop 文件系统 API,包括假装它具有您可以重命名和删除的目录。

它们历来保存您写入本地磁盘的所有数据,直到您close() 输出流,此时开始上传(这可能很慢)。这意味着您必须拥有与计划创建的最大对象一样多的临时空间。

Hadoop 2.8 有一个快速上传流,它在文件写入时以 5+MB 的 block 上传文件,然后在最后的 close() 中使其在对象存储中可见。当在单个流中生成大量数据时,这明显更快。这也避免了需要太多磁盘空间。

关于hadoop - s3n/s3a如何管理文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43282279/

相关文章:

hadoop - Hive 真的使用 HCatalog 吗?

php - 对 S3 图像文件的发布请求

hadoop - 如何将具有多个工作表的数据从Excel工作簿导出到Hadoop

hadoop - hadoop hdfs block 大小与linux文件系统 block 大小之间的交互

hadoop - 使用elephant-bird配合hive读取protobuf数据

python - 如何在pyspark sql中保存一个表?

hadoop - 合并HDFS中的两个 Parquet 文件

amazon-s3 - 如何使用 Amazon Route 53 为 S3 存储桶设置 cname?

java - org.apache.parquet.io.InputFile 的 S3 实现?

hadoop - 只有一个文件从带有水槽的kafka到hdfs