草庐IT

reduced_bitmap

全部标签

hadoop - 关于 reducer 的数据分区

Hadoop权威指南(TomWhite)第178页Sectionshuffleandsort:map端。就在图6-4之后在写入磁盘之前,线程首先将数据分成与数据最终将发送到的reducer相对应的分区。在每个分区中,后台线程按键执行内存中排序,如果有组合器函数,它会在排序的输出上运行。问题:这是否意味着映射将每个键输出写入不同的文件,然后再将它们组合起来。因此,如果有2个不同的key输出要发送到reducer,每个不同的key将分别发送到reducer,而不是发送单个文件。如果我的上述推理不正确,那么实际发生的是什么。 最佳答案 仅

hadoop - Hadoop Map/Reduce 程序使用哪种语言? Java 还是 PHP?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭2年前。Improvethisquestion我最近用java编写了几个map/reduce程序。但是我也知道像php这样的脚本语言也是可以的。但是,大多数人都推荐java或python。我目前在php工作。所以我想知道哪种语言更适合map/reduce程序开发?用于map/reduce实现的php的一个主要缺点是,它不是多线程的。此外,hadoop具有广泛的类、接口(interface)和方法框架,专门用java编写,而php程序无

Hadoop Map-Reduce OutputFormat 用于将结果分配给内存变量(不是文件)?

(来自Hadoop新手)我想在玩具Hadoop概念验证示例中尽可能避免使用文件。我能够从非基于文件的输入中读取数据(感谢http://codedemigod.com/blog/?p=120)——这会生成随机数。我想将结果存储在内存中,以便我可以对其进行进一步的(非Map-Reduce)业务逻辑处理。本质上:conf.setOutputFormat(InMemoryOutputFormat)JobClient.runJob(conf);Mapresult=conf.getJob().getResult();//?似乎做我想做的最接近的事情是以二进制文件输出格式存储结果,然后用等效的输入格

hadoop - 多个reducer如何在Hadoop中只输出一个部分文件?

在我的map-reduce作业中,我使用4个reducer来实现reducer作业。因此,通过这样做,最终输出将生成4个部分文件。:part-0000part-0001part-0002part-0003我的问题是如何将hadoop配置设置为仅输出一个部分文件,尽管hadoop使用4个reducer来工作? 最佳答案 这不是hadoop所期望的行为。但是您可以在这里使用MultipleOutputs来发挥您的优势。创建一个命名输出并在所有reducer中使用它以在一个文件本身中获得最终输出。它是javadoc本身建议如下:JobCo

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

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

hadoop - reduce任务和reducer的区别

“reducer不同于reduce任务。reducer可以运行多个reduce任务”。有人可以用下面的例子解释一下吗?foo.txt:亲爱的,这是foo文件bar.txt:这是条文件我正在使用2个reducer。什么是reduce任务以及基于什么在reducer中生成多个reduce任务? 最佳答案 Reducer是一个类,包含如下reduce功能protectedvoidreduce(KEYINkey,Iterablevalues,Contextcontext)throwsIOException,InterruptedExcept

java - 反向排序 Reducer 键

以相反顺序将Map输出键获取到reducer的最佳方法是什么?默认情况下,reducer按键的升序接收所有键。非常感谢任何帮助或评论。简单来说,在正常情况下,如果map发出键1,4,3,5,2,reducer接收到与1,2,3,4相同的键,5。我希望reducer接收5,4,3,2,1。 最佳答案 在Hadoop1.X中,您可以使用JobConf.setOutputKeyComparatorClass为您的输出指定自定义比较器类.您的比较器必须实现RawComparatorinterface.对于Hadoop2.X,这是通过使用Jo

hadoop - reducer 和 mapper 可以在同一个数据节点上吗?

我已经开始阅读有关大数据和Hadoop的内容,所以这个问题对您来说可能听起来很愚蠢。这就是我所知道的。每个映射器处理少量数据并产生中间输出。在此之后,我们有洗牌和排序的步骤。现在,Shuffle=将中间输出移至各自的Reducer,每个Reducer都处理一个或多个特定的键。那么,一个数据节点是否可以在其中运行Mapper和Reducer代码,或者我们为每个节点设置不同的DN? 最佳答案 术语:数据节点用于HDFS(存储)。Mappers和Reducers(计算)在具有TaskTracker守护进程的节点上运行。每个tasktrac

hadoop - 在 Elastic Map Reduce 上将分布式缓存与 Pig 结合使用

我正在尝试在Amazon的ElasticMapReduce上运行我的Pig脚本(使用UDF)。我需要在我的UDF中使用一些静态文件。我在我的UDF中做了这样的事情:publicclassMyUDFextendsEvalFunc{publicDataBagexec(Tupleinput){...FileReaderfr=newFileReader("./myfile.txt");...}publicListgetCacheFiles(){Listlist=newArrayList(1);list.add("s3://path/to/myfile.txt#myfile.txt");retu

eclipse - 如何使用 Java -jar 命令运行 map reduce 作业

我使用Java编写了一个Mapreduce作业。设置配置Configurationconfiguration=newConfiguration();configuration.set("fs.defaultFS","hdfs://127.0.0.1:9000");configuration.set("mapreduce.job.tracker","localhost:54311");configuration.set("mapreduce.framework.name","yarn");configuration.set("yarn.resourcemanager.address","