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

将 MapReduce 程序配置为仅在现有程序中运行化简器

班玉堂
2023-03-14

mapreduce程序是否可以配置为只执行reducer而不执行mapper[即使程序中定义了map函数]。这能仅仅通过改变工作配置来实现吗?

我想在mapduce中实现增量计算(仅将输入作为附加文件)。例如

对于字数,

如果已经在文件上执行了wordcount,之后会将更多数据附加到输入文件中。

如果再次对更新的输入文件执行wordcount,我希望只对新数据执行wordcount,并将旧结果与此合并。对于这种输出组合,我想单独执行reducer。

共有2个答案

皇甫雨石
2023-03-14

是的,你可以!,将此代码用作映射器(python_version)

< code >在sys.stdin: print i中导入sys for i in >

这将起作用,因为mapper是必须的。所以只需使用虚拟映射器打印输入的内容

我想这有帮助!

苏宜人
2023-03-14

不,这是不可能的。Hadoop要求您执行< code>map,而< code>reduce是可选的。

如果您想进行group-by,您可以尝试使用Apache Tez并配置一个与您要存档的内容相同的DAG(可能仍然很复杂,因为您需要使用内部数据格式)。

 类似资料:
  • 我在elastic mapreduce上以交互模式运行了Hive: null 有人对我如何做到这一点有什么建议吗?

  • 我一直在尝试更改spring-boot redis缓存的默认序列化程序,因为我想从默认实现更改为Jackson2Json实现之一。Jackson2Json库有两个实现,其中之一是:GenericJackson2JsonRedisSerializer,我可以在以下bean实例化中使用它: 当我使用这个序列化器时,序列化工作正常,所有的东西都存储在redis服务器上,但是当o尝试反序列化存储在redi

  • 问题内容: 我想使用html applet标记在我的Web应用程序中运行简单applet,但是它给出了类似的错误 java.lang.ClassNotFoundException:MyApplet 请给我示例应用程序,如果可能的话..... 问题答案: 问题是applet引擎在您定义的代码库中找不到MyApplet类。 这是因为您在/ WEB-INF / classes目录中进行了分类。该目录受s

  • 我有一个Micronaut应用程序,可以构建到GraalVM原生映像中。当我从正常的角度运行应用程序时(也就是说,不使用Graal),它运行得非常好。 但是,当我尝试从Graal运行时,在尝试将字符串反序列化到枚举中时,会出现以下运行时异常: 作为参考,我的反序列化程序如下所示: 我想我可能需要为Graal添加一些自定义反射配置,但我不太确定。有人能在这里透露一些信息吗?

  • 嘿,伙计们,我正在跟踪http://www.tutorialspoint.com/hadoop/hadoop_mapreduce.htm。使用这个运行程序后 我收到以下错误: 2004年9月16日20:32:14警告用户。NativeCodeLoader:无法为您的平台加载本机hadoop库。。。在适用的情况下使用内置java类 2004年9月16日20:32:15信息配置。弃用:会话。id已弃用

  • 我正在尝试创建一个自定义gitlab-runner来运行docker进程,如下所示: https://github.com/gitlabhq/gitlabhq/blob/master/doc/ci/docker/using_docker_build.md 我尝试了第二种方法,其中我注册了一个运行者,使用的是: 错误:无法为/builds/xxx创建容器卷无法加载映像:Gitlab-Runner-P