我一直在使用诸如Kafka和塞科之类的服务将Parquet文件持久化到S3。我对HDFS或Hadoop不太熟悉,但这些服务似乎通常在大量写入s3之前将临时文件写入本地内存或磁盘。s3n/s3a文件系统是在本地虚拟化HDFS风格的文件系统,然后按配置的间隔推送,还是在写入s3n/s3a和写入s3之间存在一对一的对应关系?
我不太确定我问的是不是对的。如有任何指导,将不胜感激。
发布于 2017-04-12 19:04:38
S3A/S3N只是针对远程对象存储实现Hadoop FileSystem API,包括假装它有您可以重命名和删除的目录。
它们将您写入本地磁盘的所有数据保存到close()输出流之前,此时上传会发生(这可能会很慢)。这意味着您必须拥有与您计划创建的最大对象相同的临时空间。
Hadoop2.8有一个快速的上传流,它在5+MB块中上传文件,然后在最终的close()中使其在对象存储中可见。当在单个流中生成大量数据时,这一速度要快得多。这也避免了那么多的磁盘空间。
https://stackoverflow.com/questions/43282279
复制相似问题