当前位置: 首页 > 知识库问答 >
问题:

Hadoop HDFS-保留许多部分文件还是concat?

姜志
2023-03-14

请仅参考map-reduce性能问题。我不关心以任何其他方式拆分或合并这些结果。

共有1个答案

傅雪松
2023-03-14

在part目录上进一步运行mapreduce操作对整体性能的影响应该很小甚至没有。

原因是Hadoop所做的第一步是根据大小拆分输入目录中的数据,并将拆分后的数据放置到映射器上。由于它已经将数据拆分为不同的块,因此拆分一个文件和多个文件不应该影响性能,因此通过网络传输的数据量应该大致相等,处理量和磁盘时间也应该大致相等。

可能会有一些退化的情况,部分文件将会更慢。例如,不是一个大文件,而是几千/几百万个部分文件。我也能想到有许多部分文件会更快的情况。例如,如果您没有可拆分的文件(通常情况下,除非您使用某些压缩方案),那么您必须将您的1个大文件放在一个映射器上,因为它是不可拆分的,在该映射器中,许多部分文件或多或少地按正常方式分布。

 类似资料:
  • 问题内容: 我有一对多关系的两个表。假设对于表格中的每一行,表格中可以有0或更多行引用。 客户想要知道引用某行中有多少行,对于中的所有行。 我可以使用以下查询完成此操作: 但是,如果表和很大,该怎么办?假设有100万行,并且有1000万行。我们还要说,其中99%的行的引用计数少于1000行。假设客户通常一次请求大约100行。 我应该将朴素的count()查询与外键上的索引一起使用,还是最好保留一个

  • 我正在用Gradle构建一个演示Spring Boot应用程序,并使用Heroku托管该应用程序。我已经预装了Gradle4.8,所以我没有在项目目录中保留文件,并且应用程序在本地上运行良好,但是当我使用。以下日志显示警告: 并且生成在显示Gradle版本错误后失败: 意味着它使用默认的文件和安装2.0来部署应用程序。 现在我的问题是,如何强制Heroku部署进程使用预装的Gradle版本,而不在

  • 我看了最简单的物体,甚至那些都不一样...对于java.lang.Integer,VisualVm报告20个字节,而不是其他的16个字节(在我的解释中,这是因为从Integer类中提交的=12字节header+4字节int'value'=16,不需要填充)。 哪一个是正确的,为什么?

  • 我正在尝试将一个xml文件保存到Android的内部存储中。但是,该文件没有得到保留。每次我重新启动模拟器时,该文件都会是空的。只有当我在应用程序中手动选择向其写入内容时,该文件才会被写入内容。然后,如果我关闭应用程序或其他什么,文件内容会被保留。但是,当我关闭模拟器时,文件会在那里,但是空的。 因此,我不确定我是否正确地保存了它。 请看看我的代码,也许它有问题,或者它与我的Android模拟器的

  • 为了降低RSS,我正在Java8上运行不同jvm选项的实验: > 用于Rss跟踪的脚本: 用于设置java进程的JVM args: 与JCMD进行差异:

  • 我正在Spring controller中努力实现多部分文件上传。我读过很多问题,谷歌,但似乎什么都不管用。 我明白了 我的BE控制器: FE,angularJS: HTML: 还有应用程序。属性包括: 更新: 当我按照@Byeon0gam的建议从我的控制器中删除@RequestParam时,我不再会遇到这个错误,但是我的文件在控制器中是空的。虽然在FE服务中,如我所见,它不是空的: