草庐IT

Iterator-reducer

全部标签

hadoop - 如何使用 Ubuntu 终端运行 Map Reduce 程序?

我的hadoop路径是/usr/local/hadoop和jar包含在/usr/local/hadoop/share和java7中。请帮我找出问题所在和JAVA_HOME=/ust/lib/jvm/jdk-7-amd64 最佳答案 您肯定给出了一个很详细的信息!但是您可以按照以下步骤来执行您的jar文件:1-在bashrc中添加依赖:exportHADOOP_PREFIX=/path/to/hadoopexportPATH=$PATH:$HADOOP_PREFIX/binexportCLASSPATH=$CLASSPATH:$HAD

hadoop - 链接 Map Reduce 程序

我有一种情况,在一个POC期间,我想在一个作业中创建一个嵌套的MapReduce。就像将M1O/P映射到ReducerR1O/P,然后R1输出到M2,最终输出将随M2一起提供,或者我们可以使用M2O/P运行R2。单个作业ID-M1->R1->M2->R2...最终输出将在单个O/P文件中。我们可以不用Oozie吗? 最佳答案 您可以在Driver类中链接多个作业。首先,通过定义所有必需的配置,为第一个MapReduce创建一个作业。然后通过调用像往常一样开始工作:job1.waitForCompletion(true);这是等待作业

hadoop - 没有 yarn map-reduce 工作?

我正在研究centos6.5和hadoop2.7.2上的hadoopmap-reduce。我了解到hdfs只是分布式文件系统,而Yarn管理map-reduce工作,所以我认为如果我不打开Yarn(资源管理器、节点管理器),map-reduce将不起作用。因此,我认为,wordcount不应该在仅使用hdfs而不是yarn的系统中执行map-reduce过程。(关于伪分发模式)但是当我打开hdfs而不是Yarn时,如下所示,并执行wordcount示例时,它显示“map-reduceframework”。这是什么意思?有没有可能只有hdfsprocessmap-reduce没有Yarn

java - 如何使 Hadoop reducer 为单个键输出多个值

我有一些数据集,我想计算每条记录的最小值、最大值和平均值(例如:userID_1--minimum_1--maximum_1--avg)。这是我的代码,我需要知道如何才能让我为那个单一的键写下这些值:publicstaticclassReduceextendsReducer{publicvoidreduce(Textkey,Iterablevalues,Contextcontext)throwsIOException,InterruptedException{intsum=0;intvisitsCounter=0;intmin=Integer.MAX_VALUE;intmax=Inte

java - 输出文件包含 Mapper Output 而不是 Reducer 输出

您好,我正在尝试在独立模式下使用mapreduce技术求几个数字的平均值。我有两个输入文件。它包含值file1:2525252525和file2:1515151515。我的程序运行良好,但输出文件包含映射器的输出而不是缩减器的输出。这是我的代码:importjava.io.IOException;importjava.util.StringTokenizer;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.IntWritable;i

Hadoop Map Reduce 索引越界

我的程序对于较小的输入运行良好,但是当我增加输入的大小时,第210行(context.nextKeyValue();)似乎抛出indexoutofbounds异常。下面是映射器的设置方法。我在那里调用nextkeyvalue一次,因为每个文件的第一行是一个标题。由于标题,拆分文件设置为false。跟内存有关系吗?如何解决?即使我已将maxmapattempt设置为3,下面的错误消息也会显示68次。顺便说一句,有55次拆分。它不应该显示55次或者55*3吗?或者也许只有3个?它是如何工作的?@Overrideprotectedvoidsetup(Contextcontext)throws

java - 在 MapReduce 程序中,reducer 没有被 Driver 调用

我根据mapreduce编程模型编写了这个程序,Driver代码如下我的司机类(class)publicclassMRDriverextendsConfiguredimplementsTool{@Overridepublicintrun(String[]strings)throwsException{if(strings.length!=2){System.err.println("usage:");System.exit(0);}Jobjob=newJob(getConf(),"multiplefiles");job.setJarByClass(MRDriver.class);job

algorithm - 为什么我们说 map-reduce 比传统方法更好地解决了 "Paper reference"问题?

据说当我们希望对论文引用进行统计时,map-reduce可以比传统方式做得更好,因为传统方式涉及大量内存/磁盘切换。我不太明白为什么传统方法不好。假设我只在一台机器上运行map-reduce(没有集群),它是否仍然比传统方式更好地解决了一些问题?或者换句话说,“map-reduce”这种算法范式本身,从算法的角度来说,在解决问题上是否有一些优势?谢谢。 最佳答案 AtbestM/R允许重新应用与高级统计包相同的算法。但更典型的是,在使用的算法中会做出一些牺牲——以允许以分布式方式运行。Map/Reduce在交叉采样(或任何其他采样方

hadoop - shuffle 和 sort 阶段是 map 还是 reduce 阶段的一部分?

我的理解是,在mapreduce编程模型中我们有map和reduce两个阶段。完成映射阶段后,生成中间值(键、值)并将这些值传递给缩减器。我怀疑在map()阶段之后,shuffle和sort会到来。所以,我觉得shuffle和sort是reducer阶段的一部分,是这样吗?如果是这种情况,combiner()是如何工作的? 最佳答案 其实map/reduce中有3个阶段:map随机排序减少Shuffle&sort是一个纯框架阶段(作为开发人员,您只需编写map和reduce函数),它允许map任务和reduce阶段之间的通信。组合器

hadoop - PIG : Unable to open iterator for alias AliasName. 标量在输出中有多于一行

我是pig的新手,正在尝试自学。我编写了一个脚本来获取从words.txt文件中读取的单词的纪元时间。这是脚本。words=LOAD'words.txt'ASword:chararray;B=FOREACHAGENERATECONCAT(CONCAT(A.word,'_'),(chararray)ToUnixTime(CurrentTime());dumpB;但问题是,如果words.txt文件只有一个单词,它会给出正确的输出。如果它有多个词,比如word1word2word3word4然后它给出了以下错误ERROR1066:UnabletoopeniteratorforaliasBj