草庐IT

mapReduce

全部标签

Hadoop MapReduce : Two values as key in Mapper-Reducer

如何使用两个组件构建key?这样做的原因是我有一个无向图。如果A和B通过通信关联(方向无关),则两个节点A和B之间存在边。此通信有一个数字参数。所以我想实现的是有一个将A和B组合在一起作为一个集合的key,这样A到B和B到A的通信就可以被认为是等价的,并且可以被加起来得到统计数据说:AB5BA10键在语义上应该是“A或B在一起”,这样包含A和B作为键的集合的值应该是5+10=15。wordcount示例将特定单词作为关键字。就我而言,我想将包含两个组件的集合作为关键。在map和reduce阶段,只要满足AtoB或BtoA就求和。谢谢! 最佳答案

serialization - oozie 上的 Avro Map-Reduce

我一直在尝试在oozie上运行Avromap-reduce。我在workflow.xml中指定映射器和缩减器类,并提供其他配置。但它给出了一个java.lang.RunTimeException-classmr.sales.avro.etl.SalesMappernotorg.apache.hadoop.mapred.Mapper当直接在hadoop集群上(而不是通过oozie)运行时,相同的作业会完成并提供所需的输出。所以我似乎可能缺少一些oozie配置。我从异常中猜想oozie要求映射器是org.apache.hadoop.mapred.Mapper的子类,但Avro映射器具有不同

hadoop - 映射任务的输出写入本地文件系统或HDFS?

我读到HadoopMap任务将它们的输出写入本地磁盘。假设如果我只有map任务而没有任何reducer,map输出仍然会写入本地文件系统? 最佳答案 是的,它仍然会将输出写入FileOutputFormat.setOutputPath(JobConf,Path)设置的路径,并且不会进行排序或分区。Moreinfo:更新:正如ChrisWhite所提到的,它将直接写入HDFS而不是本地文件系统。 关于hadoop-映射任务的输出写入本地文件系统或HDFS?,我们在StackOverflow

hadoop - Hadoop MR 应用程序中 Reducer 的动态数量

提交作业后,有什么方法可以设置reducetask的数量吗?比如我需要根据startalphabet收集英文单词,我可以直接设置reducetasks的数量为26。但是万一出现无法预先确定所需reducer数量的情况,有没有什么办法可以完成要求?这里的要求与集群上的节点数量无关,它只取决于正在处理的键。举例来说,每次遇到新键时,reducer的数量都会增加一个。在此先感谢您的支持。 最佳答案 Isthereanymeanstosetthenumberofreducetasksonceajobissubmitted?没有Forexam

logging - Hadoop 作业中的日志记录如何工作?

登录Hadoop作业如何工作?使用SLF4J和Logback,我需要什么样的配置才能在一个地方看到所有日志输出?JobTracker会整理Hadoop作业的STDOUT吗? 最佳答案 每个数据节点上的日志目录包含一个子目录userlogs。这包含最近maptask尝试的子目录。那是针对maptask的每个实例。由于任务尝试在其名称中包含作业ID,因此您可以找出特定作业在何处创建的日志。任务尝试目录包含文件:标准错误标准输出系统日志这些包含各自的输出。您可以通过从列出的作业导航到其任务、单击任务并选择其输出来从JobTrackerWe

performance - 自定义映射器和 Reducer 与 HiveQL

问题陈述:-我需要比较两个表Table1和Table2,它们都存储相同的内容。所以我需要将Table2与Table1进行比较,因为Table1是需要进行比较的主表。因此,在比较之后,我需要报告Table2存在某种差异。这两个表有很多数据,大约TB的数据。所以目前我已经编写了HiveQL来进行比较并取回数据。所以我的问题是,就PERFORMANCE而言,编写CUSTOMMAPPER和REDUCER来完成此类工作或HiveQL哪个更好>我写的会很好,因为我将在数百万条记录上加入这两个表。据我所知,HiveQL在内部(在幕后)生成优化的自定义map-reducer并提交执行并取回结果。

Hadoop mapreduce 示例文档

我在哪里可以找到下面提到的示例程序的详细文档,我无法在文档中找到它。hduser@canberra:~/work/software/cloudera/hadoop-2.0.0-cdh4.0.0$hadoopjarsrc/hadoop-mapreduce-project/hadoop-mapreduce-examples/target/hadoop-mapreduce-examples-2.0.0-cdh4.0.0.jarAnexampleprogrammustbegivenasthefirstargument.Validprogramnamesare:aggregatewordcoun

Hadoop 无法找到映射器

当我运行我的Hadoop作业(新API-1.0.3)时,我得到ClassNotFoundException。我有一个Main类,其中包含静态MapClass和ReduceClass作为嵌套类。我的工作配置如下:Jobjob=newJob();job.setJarByClass(Main.class);job.setJobName("MyJob");job.setMapperClass(Main.MapClass.class);job.setReducerClass(Main.ReduceClass.class);主类如下:publicclassMain{//NestedstaticMa

hadoop负载均衡

我有多个按以下格式生成的不同key:“7112”、“6923”、“6856”等但是,我发现这些对中的大多数都使用相同的reducer。即使我实现了自定义分区程序,我们在其中使用hash_val%numReducers的getNumPartitioner方法也主要返回值,这些值分组为少数加载它们的reducer,而其他reducer保持空闲。,根据我的理解,我们可以使用WritableComparator对key进行排序,但不能控制key去不同的reducer。有没有办法改善负载均衡?请帮忙。我在下面附上一些代码以使我的解释清楚:Stringa="7112";Stringb="7211"

hadoop - MapReduce:stdout 和 std err 的日志文件位置

如果我通过Mapper和Reducer中的stdout(Java中的System.out)和stderr(Java中的System.err)输出一些消息,我可以在任务跟踪器节点中的什么地方看到它们?我想目录位置也可以通过一些参数配置? 最佳答案 这可能取决于您使用的是哪个发行版,但使用我们的cdh3设置,我们可以在任务运行的节点上的/usr/lib/hadoop-0.20/logs/userlogs//下找到它们。例如,stderr将位于:/usr/lib/hadoop-0.20/logs/userlogs/job_20120701