hadoop - 如何在没有本地文件系统帮助的情况下将 HDFS 中的多个文件附加到 HDFS 中的单个文件?
问题描述
我正在学习hadoop。我现在遇到了一个问题。我运行了 mapreduce 作业,输出存储在多个文件中,但不是单个文件。我想将它们全部附加到 hdfs 中的单个文件中。我知道appendToFile和getmerge命令。但它们仅适用于其中一个local file system to hdfs
或hdfs to local system
但不适 用于HDFS to HDFS
. 有没有办法在不接触本地文件系统的情况下将 HDFS 中的输出文件附加到 HDFS 中的单个文件?
解决方案
这样做的唯一方法是强制您的 mapreduce 代码使用一个 reducer,例如,通过一个键对所有结果进行排序。
然而,这违背了拥有分布式文件系统和多个处理器的目的。所有 Hadoop 作业都应该能够读取文件目录,而不是孤立地处理单个文件
如果您需要从 HDFS 下载单个文件,那么您应该使用 getmerge
推荐阅读
- node.js - Azure Devops VSTS 使用不同版本的 Node 构建代理
- python - 绘制 pandas 列的直方图
- json - 如果我已经从 API 调用 (flutter/dart) 进行了 Json 反序列化,如何从 Firebase Cloud Firestore 反序列化数组
- maven - Azure 工件提要仅显示 pom 文件,即使 jar 打包
- html - 在导航栏中移动链接位置
- fastlane - Fastlane:如何将lane_context传递到另一个车道
- c - 如何从 libcouchbase 编译示例代码
- python-3.x - 谷歌云功能在流数据到大查询时达到 10MB 速率限制,而不管使用块?
- php - PHP pdo 仅在查询被硬编码时获得结果
- angular - 动画时垫步内容消失 - mat-horizontal-stepper