草庐IT

hadoop - 动态计算oozie参数(MR Action 的reducer数量)

在我的oozie工作流程中,我动态创建了一个配置单元表,比如T1。此配置单元操作之后是映射减少操作。我想将reducers属性(mapred.reduce.tasks)的数量设置为等于字段的不同值,比如(T1.group)。关于如何动态设置某些oozie参数的值以及如何从hive不同操作获取参数值到oozie参数的任何想法? 最佳答案 希望对您有所帮助:像您已经做的那样创建配置单元表。执行另一个Hive查询,计算列的不同值并将其写入hdfs中的文件。创建一个Shell操作,它将读取文件并以key=value的形式回显值。为shell

hadoop - Hadoop 中的 MR 作业后创建了多少输出文件?

我有一个小于(非常小)默认block大小的文件。我的Mapper的输出是大量的>对(大于20)。我在某处读到,MR作业后生成的输出文件的数量等于reducer的数量,在我的例子中,reducer的数量大于20。但我在输出中得到了一个文件。然后我做了job.setNumReduceTasks(2)希望它会在输出中生成两个文件。但它仍然生成了一个文件。那么我可以得出输出文件数等于block数的结论吗?还有,是否将一个数据block馈送到一个Mapper? 最佳答案 -block-物理分区:HDFS旨在保存和管理大量数据。默认block大

hadoop - 从 Eclipse 发出在 Hadoop 上执行 MR 程序的问题

我在从windows上的eclipe到hadoopPseudocluster上执行mapreduce程序时遇到问题UbuntuVM在同一台机器上运行。我正在运行hadoop1.0.3。我尝试使用eclipseJuno以及使用eclipseplugin1.0.3的Ganymede,但没有成功。每当我将LinuxVM添加为mapreduce位置时,我都会收到连接错误。我也试过像下面这样直接通过配置设置属性,但没有成功。我将其作为java应用程序运行。Configurationconf=newConfiguration();conf.set("fs.default.name","hdfs:/

java - 如何为从配置单元 jdbc 查询启动的 mr 作业指定额外的 jar?

我正在尝试通过使用avro存储格式的jdbc查询一个配置单元表,但我在查询产生的mr作业中收到一个类未找到错误。奇怪的是,我可以从配置单元shell运行查询而不会发生异常。我可以运行一个不生成mapreduce作业的查询(select*fromtablelimit10)并且它工作正常。2014-03-1210:23:34,040WARN[main]org.apache.hadoop.mapred.YarnChild:Exceptionrunningchild:java.io.IOException:java.lang.reflect.InvocationTargetExceptiona

Hadoop 2.6.0 官方实例 : Yarn (MR2) much slower than Map Reduce (MR1) in single node setup

我开始玩hadoop2.6.0,根据officialdocumentation搭建了一个伪分布式单节点系统.当我运行简单的MapReduce(MR1)示例(参见“伪分布式操作->执行”)时,总执行时间约为7秒。更准确地说,bash的时间给出:real0m6.769suser0m7.375ssys0m0.400s当我通过Yarn(MR2)运行相同的示例时(参见“伪分布式操作->YARNonSingleNode”),总执行时间约为100sec,因此非常慢。bash的时间给出:real1m38.422suser0m4.798ssys0m0.319s因此,(出于某种原因)在用户空间之外存在大量

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

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

java - 如何计算 MR 作业中 HDFS 中的文件数?

就此而言,我是Hadoop和Java的新手。我正在尝试从我正在编写的MapReduce驱动程序计算HDFS上文件夹中的文件数。我想在不调用HDFSShell的情况下执行此操作,因为我希望能够传入我在运行MapReduce作业时使用的目录。我尝试了很多方法,但由于我对Java的经验不足,都没有成功实现。如有任何帮助,我们将不胜感激。谢谢,游牧。 最佳答案 您可以只使用文件系统并遍历路径内的文件。这是一些示例代码intcount=0;FileSystemfs=FileSystem.get(getConf());booleanrecurs

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 - 如何使 Hadoop MR 只读文件而不是输入路径中的文件夹

根据我们的要求,一个作业的输出将是另一个作业的输入。通过使用多输出概念,我们在输出路径中创建一个新文件夹并将这些记录写入文件夹。这是它的样子:OPFolder1/MultipleOP/SplRecords-m-0000*OPFolder1/part-m-0000*files当新作业使用输入作为OPFolder1时,我遇到以下错误org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:298)atorg.apache.hadoop.fs.FileSystem.open(FileSystem.

java - 获取添加到 Hadoop MR 作业的输入文件数

如何获取在调用FileInputFormat.addInputPath和FileInputFormat.addInputPaths时添加的输入文件的数量。我正在尝试添加与某种模式匹配的输入文件,如果没有文件与该模式匹配并且此MR作业没有输入文件,我想向用户记录一条消息,根本不提交该作业。谢谢,文卡特 最佳答案 FileInputFormat将数据存储在名为ma​​pred.input.dir的Configuration变量中,因此您可以使用以下内容:Configurationconf=job.getConfiguration();S