草庐IT

mapReduce

全部标签

hadoop - 遍历 reducer 中的 IntWritable 数组给出 "Can only iterate over an array or an instance of java.lang.Iterable"

我已经编写了一个Driver、Mapper和Reducer程序来尝试复合键(输入数据集中的多个字段)。数据集如下所示:国家、州、县、人口(百万)美国,加利福尼亚州,阿拉米达,12美国,加利福尼亚州,圣克拉拉,14美国,亚利桑那州,阿巴吉德,14我正在尝试找出国家/地区的总人口。因此,reducer应该聚合两个字段Country+State并显示人口。当我在步骤(在reducer代码中)遍历population时for(IntWritablei:values)我收到编译器错误“Canonlyiterateoveranarrayoraninstanceofjava.lang.Iterabl

hadoop map-reduce : how to deploy non-jar files

您好,当我使用hadoopjar..args..提交我的jar以进行map-reduce作业时,我想知道如何部署非jar文件。对于hadoop流,有--file选项来发送文件,对于spark,我们有--files但我在文档中找不到这样的选项。在提交hadoopmap-reduce作业时,是否可以将非jar文件与我的jar一起发送? 最佳答案 Applicationscanspecifyacommaseparatedlistofpathswhichwouldbepresentinthecurrentworkingdirectoryof

java - 交换键和值映射器 hadoop

hadoop中是否有映射器类可以在键和值之间进行交换?类似于IdentityMapperMapper.class的东西?只是它不是身份,而是在键和值之间交换?注意:我知道实现起来很简单,但我想问一下是否已经内置了。 最佳答案 您可以使用org.apache.hadoop.mapreduce.lib.map.InverseMapper来满足您的需求。它将交换键和值。参见:InverseMapper.java和Javadocsmapreduce和mapredAPI都有实现,以上链接适用于mapreduce版本。

hadoop - 为什么使用 MapReduce 与 HBase shell 过滤器

我需要在HBase上查询数据。我的查询如下所示:显示“authorD”的所有书籍。数据库中有多少作者“authorA”的书?据我所知,您可以使用MapReduce或HBase外壳过滤器来做到这一点。如果我错了,请纠正我。我的问题是:如果我可以使用它的过滤器在HBaseshell上执行相同的操作(无需编程),我为什么要使用MapReduce(需要编程)?感谢您的回答。祝你有美好的一天。 最佳答案 有3种方法可以从Hbase中获取结果。1)Shell:这是用于对少量数据进行简单可靠的数据分析。这适用于少量数据,供开发人员分析。如果您直接

java - Hadoop WordCount 错误

我正在关注此链接中的文档https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html#Usage当我尝试编译WordCount.java并创建一个jar时,出现以下错误bin/hadoopcom.sun.tools.javac.MainWordCount.javaError:Couldnotfindorloadmainclasscom.sun.tools.javac.Main我在hadoop-env.sh文件中验证了我的

hadoop - 如果映射器在中途失败并且 Hadoop 重试该映射器,自定义计数器会发生什么

我有一个映射器,它从数据库中读取数据并使用“读取次数”计数器和“已处理记录”计数器更新计数器。如果映射器在两者之​​间失败可能是由于没有足够的资源来运行那么计数器会发生什么?复位了吗?在我的例子中,数据非常庞大,大约有4000万条记录。花了3天时间和92退休完成,但在工作运行期间,计数器是好的,但当它终止时,计数器的值减半,无法理解请帮助。 最佳答案 每个任务计数器(映射器或缩减器)都与任务尝试相关,因此当任务尝试失败(由于错误/IO问题)或被杀死(推测执行)时,相关计数器将被丢弃。 关

hadoop - 为什么运行 1TB teragen 时没有 reducer ?

我正在使用以下命令为hadoop运行terasort基准测试:jar/Users/karan.verma/Documents/backups/h/hadoop-2.6.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jarteragen-Dmapreduce.job.maps=1001trandom-data并为100个maptask打印了以下日志:18/03/2713:06:03WARNutil.NativeCodeLoader:Unabletoloadnative-hadooplibraryforyourplatform..

java - Hadoop MapReduce - Euler 的 Totient/Sum of Totient(和其他数学运算)

作为我研究的一部分,我正在使用不同的并行计算语言实现Totient求和(Euler的Totient),老实说,我在MapReduce方面相当吃力。主要目标是对运行时、效率等进行基准测试......我的代码现在正在运行,我得到了正确的输出,但速度很慢,我想知道为什么。是因为我的实现还是因为HadoopMadReduce不是为此目的而设计的。我还实现了一个组合器,因为根据我的阅读,它应该优化代码,但事实并非如此。抱歉,如果这个问题看起来很愚蠢,但我在互联网上没有找到任何东西,而且我已经厌倦了尝试一切都没有任何结果。我的输入文件是1到15000之间的值123456...14998149991

hadoop - 如何更改 hadoop mr 作业中的 reducer 输出文件名?

我有一个reducer脚本需要生成一堆xml文件。我想使用reducer键以编程方式设置文件名。我正在使用MultipleOutputs来完成如下操作。MultipleOutputsmos=newMultipleOutputs(context);mos.write(newText(key),newText(output),key+".xml");但输出文件名类似于key.xml-r-00000。如何从文件名中删除-r-*部分,以便它只是key.xml? 最佳答案 这里的-r-0000表示它是从reducer生成的。我们不能更改它,如

hadoop - 如何限制每个DataNode同时运行的map任务数

环境:Hadoop3.0.01个NameNode,5个DataNode我在mapred-site.yml上配置如下限制同时运行3maptask:mapreduce.framework.nameyarnmapreduce.tasktracker.map.tasks.maximum3Themaximumnumberofmaptasksthatwillberunsimultaneouslybyatasktracker.mapreduce.tasktracker.reduce.tasks.maximum3Themaximumnumberofreducetasksthatwillberunsim