jjzjj

java - 在 MapReduce 中调用具有不同 InputFormatClass 的多个 Mapper

我想用三个Mapper编写代码,其中两个将处理".csv"文件,其他是".xml"。我已经为来自here的.xml格式编写了XmlInputFormat现在我想知道我应该输入什么job.setInputFormatClass(...);还有我应该添加哪个以提供文件路径。TextInputFormat.addInputPath(...)TextOutputFormat.setInputPath(...)或TextInputFormat.addInputPath(...)TextOutputFormat.setInputPath(...) 最佳答案

Hadoop - 映射器输出能否超过 block 大小

我们将其中一个mapreduce作业的dfs.blocksize设置为512MB,这是一个maponly作业。但是,一些映射器输出超过512MB。例如:512.9MB。我相信,映射器block大小应该受到dfs.blocksize的限制。感谢任何输入。谢谢 最佳答案 Ibelieve,themapperblocksizeshouldberestrainedbythedfs.blocksize.这不是真的。文件可以大于block大小。在这种情况下,它们只会跨越多个block。 关于Hado

hadoop - cleanup() 方法是否为失败的 map task 调用?

是否为失败的maptask调用了cleanup()方法?如果是这样,它如何确保“原子性”?在我的例子中,我正在映射器中准备一些统计信息,这些统计信息在cleanup()方法中写入数据库。在这种情况下,如果映射器在执行其输入拆分的过程中失败,清理方法会将till处理后的数据写入DB?这将导致不正确的统计信息,因为备用映射器尝试也会再次写入相同的数据。 最佳答案 根据您的映射器何时失败,可能会调用或不调用清理。例如,如果您的映射器在map方法中失败,则不会调用清理。但是,如果您的映射器在清理方法中失败,则清理已经被调用。如果映射器失败,

有或没有 "implements"的 Hadoop 映射方法?

在某些书籍(如Hadoop,TheDefinitiveGuide)中,Mapper方法是这样定义的:publicclassMapClassextendsMapperextendsMapper但在其他书籍(如HadoopinAction)中是这样的:publicstaticclassMapClassextendsMapReduceBaseimplementsMapper哪个是首选或者有什么区别?也许第一个选项更新?为什么是静态的?问候 最佳答案 Mapper和Reducer是旧API中的接口(interface),但现在是任务继承的类

hadoop - 关闭推测执行的 Wordcount : More than 1 map task per block,

在Wordcount中,您似乎可以在每个block中获得超过1个maptask,并关闭推测执行。jobtracker是否在幕后做了一些魔术来分配比InputSplits提供的更多的任务? 最佳答案 区block和拆分是两种不同的东西。如果一个block有多个拆分,您可能会为一个block获得多个映射器。 关于hadoop-关闭推测执行的Wordcount:Morethan1maptaskperblock,,我们在StackOverflow上找到一个类似的问题:

hadoop - 灵活的堆空间分配给 Hadoop MapReduce Mapper 任务

我无法找到配置运行MapReduce1的Hadoop集群(CDH4)的最佳方法。我处于这样一种情况,我需要运行两个需要大量Java堆空间的映射器,以至于我不可能在每个节点上运行超过1个映射器——但同时我希望能够运行作业这可以受益于每个节点的许多映射器。我正在通过Cloudera管理UI配置集群,MaxMapTasks和mapred.map.child.java.opts似乎是相当静态的设置。我想要的是一个类似堆空间池的东西,有XGB可用,它可以容纳这两种作业,而不必每次都重新配置MapReduce服务。如果我运行1个映射器,它应该分配XGB堆-如果我运行8个映射器,它应该分配X/8GB

hadoop - 默认 Mapper-Reducer 类

假设我有两个数据集:helloworldbyeworld和helloearthnewearth并且我想运行一个没有指定映射器类或化简器类的map-reduce任务,因此将调用默认的映射器和化简器——它们都是恒等函数。当我运行该作业时,输出为::0helloworld0helloearth12newearth12byeworld我很困惑为什么key像0和12?!当我在main()::中注释掉这些行时,我只是使用了默认的映射器和缩减器//job.setMapperClass(Map.class);//job.setCombinerClass(Reduce.class);//job.setR

python - Hadoop Streaming "comparator.options"未被尊重

我有一个python映射器和缩减器,我正在使用它和Hadoop流式API。在命令行上,这些脚本可以正常工作并执行预期的工作。我有一个NASA网络访问日志示例,您可以在此处看到它已正确处理和排序。tail-n10NASA_access_log_Jul95|./mapper.py|sort|./reducer.py|sort-r-k1,14163.205.53.141tornado.umd.edu在mapreduce作业中尝试相同的操作时,排序没有得到遵守。hadoopjar/usr/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-st

java - 应该使用mapper类的哪个方法来读取分布式缓存中的文件

您想要填充关联数组以执行映射端连接。你已经决定将这些信息放在一个文本文件中,将该文件放入DistributedCache并在您的处理任何记录之前的映射器。确定应该使用Mapper中的哪个方法来实现读取文件的代码,以及填充关联数组?映射或配置?? 最佳答案 我相信您正在寻找setup()方法。http://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapreduce/Mapper.html#setup%28org.apache.hadoop.mapreduce.Mappe

java - Hadoop 自定义 Mapper 输出格式到 Reducer

HDFS的新手:如果我错了,请纠正我,但据我所知:Mapper最后两个Text是映射器的返回类型。假设我想返回Text,.我怎么能做到这一点?另外,我应该在文档中的哪个位置查看?例如,映射器接收到对象和文本后,它对输入文件中的数据行执行一些逻辑,我希望它返回类似的内容context.write(Text,[Text,IntWriteable]) 最佳答案 你必须在hadoop中实现自定义可写。我指的是一些网站,可能会有帮助https://halalhassan.wordpress.com/2013/12/15/custom-writ