草庐IT

y-combinator

全部标签

hadoop - Mapreduce 中可以用combiner 代替reduce 吗?

我们可以在Mapreduce作业中使用combiner代替reduce吗?如果没有,我们可以用什么来代替mapreduce作业中的reducer? 最佳答案 严格来说,不是。组合器只有在至少有一个reducer被调用时才会被调用。当没有reducer时,作业停止在map阶段,省略了对map任务输出的本地排序。组合器也需要这种排序(它们实际上是本地reducer)。所以,没有reducer=>没有组合器。但是,如果您使用映射器内聚合,有时可以模拟组合器的操作。例如,您可以将来自映射器的wordcount结果存储在本地数据结构中,在每个

hadoop - 我可以使用 Combiner 在 mapreduce 作业中计算平均值吗?

我想实现一个mapreduce作业,该作业读取具有以下架构的Parquet文件:{optionalint96dropoff_datetime;optionalfloatdropoff_latitude;optionalfloatdropoff_longitude;optionalint32dropoff_taxizone_id;optionalfloatehail_fee;optionalfloatextra;optionalfloatfare_amount;optionalfloatimprovement_surcharge;optionalfloatmta_tax;optional

java - 在 hadoop 中使用 Combiner 和 Reducer 类

我有以下格式的特定类(class)学生分数的数据StudentId@CourseId@Marks1@Marks2@Marks3@Marks4@Marks501001@104@13@18@25@86@2301001@106@58@30@10@12@5901001@108@60@81@97@83@2601001@110@68@95@11@73@6301001@112@55@22@74@71@2201002@104@20@72@76@28@9901002@106@52@17@20@67@9101002@108@18@46@61@73@1401002@110@86@59@50@35@65010

hadoop - 谁将有机会先执行,Combiner 还是 Partitioner?

阅读以下有关Hadoop权威指南第4版(第204页)的文章后,我感到很困惑在写入磁盘之前,线程首先将数据分成与最终将成为的reducer对应的分区送至。在每个分区中,后台线程执行一个内存中按键排序,如果有组合函数,则运行在排序的输出上。运行组合器函数更紧凑的map输出,因此写入本地磁盘的数据更少并传递给reducer。这是我的疑问:1)谁将首先执行组合器或分区!!2)当自定义组合器和自定义分区出现时,执行步骤层次结构如何以及如何?3)我们能否将压缩数据(avro、序列等)提供给自定义组合器,如果是,那么如何!!寻找一个简短而深入的解释!!提前致谢。 最佳答案

hadoop - 为什么combiner的输入记录数比maps的输出数多?

Combiner在Mapper之后和Reducer之前运行,它将接收由给定节点上的Mapper实例发出的所有数据作为输入。然后它向Reducers发出输出。所以组合器输入的记录应该少于map输出。12/08/2913:38:49INFOmapred.JobClient:Map-ReduceFramework12/08/2913:38:49INFOmapred.JobClient:Reduceinputgroups=864912/08/2913:38:49INFOmapred.JobClient:Mapoutputmaterializedbytes=30621012/08/2913:38

hadoop - 如何保证 combiner 在 map/reduce 中至少运行一次?

从一些文章中,我知道combiner会在mapper端和reducer端运行,并且会运行0~N次。而且我知道无论是否调用组合器,我们的mapreduce程序都应该得到相同的结果。但我有一种特殊情况需要组合器至少被调用一次,有人知道如何确保这一点吗?PS,在maptask.java中,我看到了这行:if(null==combinerClass||numSpills如果我将minSpillsForCombine设置为零,我能否确保组合器至少被调用一次?非常感谢! 最佳答案 在溢出期间,在溢出线程写入磁盘之前,线程首先将数据分成分区,这些

hadoop - 如何在 Hadoop 的运行时确定任务是 reducer 还是 combiner?

如果使用MapReduce执行的操作不是可交换和关联的,则组合器不能与缩减器相同。例如,在计算平均值时,组合器对键的值求和,然后缩减器求和,然后将总和除以该键的值的总数。组合器的代码只有一点点修改。如果您可以对合并器和缩减器使用相同的类,并且有一段代码可以确定当前任务是合并器还是缩减器,那会怎么样?如果它发现它是一个reducer,则将总和除以计数。像这样:protectedvoidreduce(TextkeyIn,IterablevaluesIn,Contextcontext)throwsIOException,InterruptedException{doublesum=0.0d;

hadoop - 什么先运行 : the partitioner or the combiner?

我想知道partitioner和combiner哪个先运行?我认为它首先是partitiner,然后是combiner,然后键被重定向到不同的reducer,这看起来像partitioner,所以我很困惑。请帮助我理解。 最佳答案 您问题的直接答案是=>COMBINER详细信息:Combiner可以看作是map阶段的mini-reducer。在进一步分发之前,他们对映射器结果执行局部归约。一旦Combiner功能被执行,它就会被传递给Reducer以进行进一步的工作。在哪里当我们比reducer多工作一个时,partitioner就

php - Slim : is a combined middleware, 单例和 Hook 方法智能中的身份验证?

我已经编写了自己的身份验证Controller来在我的Slim应用程序中执行用户身份验证。虽然它有效,但我不确定这是否是Slim的预期工作方式。我的身份验证Controller$auth有类似$auth->login($user,$password)和$auth->logout()和报告状态的方法,例如$auth->userIsLoggedIn()。此外,根据请求,它可以确定用户是否有权访问所请求的路线。目前,我在我的Slim应用程序中以两种不同的方式使用$auth的单个实例:作为注册到$app->auth的单例,以及作为应用于所有路由的路由中间件。所以,Slim应用程序是这样引导的:

android - RxJava : Reduce or Combine or Merge

我想做的是查询联系人的AndroidContentProvider。返回的Cursor包含一个联系人的多个副本,其中他们可能有多个号码注册到他们的contact_id)到目前为止,我已经查询了数据库,并且正在遍历游标行。我map()这些行并将它们转换为ValueObjects接下来我想遍历所有VO列表并合并具有相同contact_id的那些(VO将存储一个标签和数字数组)但是,我被卡住了,我不知道如何执行最后一部分,我如何循环遍历ValueObjects列表,将重复项合并为一个,然后处理不需要的。这是ContentProvider返回的Cursor示例:86{_id=5190conta