使用groovy运行hadoop wordCount示例

用户名

我试图用运行使用Groovy的例子的wordCount却遇到了错误

Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected

发现上面的错误,但在我的设置无法找到pom.xml文件。

然后我遇到了这个我们如何在hadoop中运行它。是通过制作一个jar文件并以与Java示例类似的方式运行吗?

使用groovy-hadoop和通过使用文件来运行groovy示例(不确定如何运行)和有hadoop-streaming什么区别为什么我们要使用一种方法胜过其他方法。

我已经在Mac 10.10.3上安装了hadoop 2.7.1

用户名

我能够使用hadoop 2.7.1运行groovy文件。我遵循的过程是

  1. 安装gradle
  2. 使用gradle生成jar文件。我问了这个问题,这帮助我在Gradle中建立了依赖关系
  3. 像往常一样使用hadoop运行,就像我们从jar所在的文件夹中使用此命令运行Java jar文件一样。

    hadoop jar buildSrc-1.0.jar in1 out4

这里in1是输入文件,out4是hdfs中的输出文件夹

编辑-由于上面的链接已损坏,我将groovy文件粘贴到此处。

import StartsWithCountMapper
import StartsWithCountReducer
import org.apache.hadoop.conf.Configured
import org.apache.hadoop.fs.Path
import org.apache.hadoop.io.IntWritable
import org.apache.hadoop.io.LongWritable
import org.apache.hadoop.io.Text
import org.apache.hadoop.mapreduce.Job
import org.apache.hadoop.mapreduce.Mapper
import org.apache.hadoop.mapreduce.Reducer
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat
import org.apache.hadoop.util.Tool
import org.apache.hadoop.util.ToolRunner


class CountGroovyJob extends Configured implements Tool {
    @Override
    int run(String[] args) throws Exception {
        Job job = Job.getInstance(getConf(), "StartsWithCount")
        job.setJarByClass(getClass())

        // configure output and input source
        TextInputFormat.addInputPath(job, new Path(args[0]))
        job.setInputFormatClass(TextInputFormat)

        // configure mapper and reducer
        job.setMapperClass(StartsWithCountMapper)
        job.setCombinerClass(StartsWithCountReducer)
        job.setReducerClass(StartsWithCountReducer)

        // configure output
        TextOutputFormat.setOutputPath(job, new Path(args[1]))
        job.setOutputFormatClass(TextOutputFormat)
        job.setOutputKeyClass(Text)
        job.setOutputValueClass(IntWritable)

        return job.waitForCompletion(true) ? 0 : 1
    }

    static void main(String[] args) throws Exception {
        System.exit(ToolRunner.run(new CountGroovyJob(), args))
    }

    class GroovyMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
        private final static IntWritable countOne = new IntWritable(1);
        private final Text reusableText = new Text();

        @Override
        protected void map(LongWritable key, Text value, Mapper.Context context) {
            value.toString().tokenize().each {
                reusableText.set(it)
                context.write(reusableText,countOne)
            }
        }
    }

    class GroovyReducer extends Reducer<Text, IntWritable, Text, IntWritable>{
        private IntWritable outValue = new IntWritable();
        @Override
        protected void reduce(Text key, Iterable<IntWritable> values, Reducer.Context context) {
            outValue.set(values.collect({it.value}).sum())
            context.write(key, outValue);
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用groovy运行hadoop wordCount示例

来自分类Dev

Hadoop MapReduce WordCount示例缺陷?

来自分类Dev

Hadoop Mapreduce Wordcount示例意外终止

来自分类Dev

Hadoop Mapreduce Wordcount示例意外终止

来自分类Dev

Hadoop WordCount示例中的“找不到符号”错误

来自分类Dev

在Eclipse中运行WordCount示例时发生ClassNotFoundException

来自分类Dev

Flink- 在远程集群上运行 WordCount 示例时出错

来自分类Dev

Hadoop - WordCount 运行良好,但另一个示例卡住了

来自分类Dev

在 Java 1.8 中使用 Spark 执行 WordCount 示例时出现迭代器相关错误

来自分类Dev

Cassandra WordCount Hadoop

来自分类Dev

使用命令行在Windows的hadoop上运行wordcount.jar

来自分类Dev

Hadoop 集群上的 Wordcount 执行

来自分类Dev

Wordcount程序卡在hadoop-2.3.0中

来自分类Dev

hadoop wordcount并将文件上传到hdfs

来自分类Dev

使用Maven运行Jersey示例

来自分类Dev

使用Cmake运行ArUco示例

来自分类Dev

针对cassandra使用hadoop mapreduce的示例代码

来自分类Dev

运行hadoop mapreduce示例时系统重新引导

来自分类Dev

创建Hadoop Java示例

来自分类Dev

单词计数示例hadoop

来自分类Dev

MapReduce WordCount示例提供了两个映射器v2.5.1

来自分类Dev

数据流wordcount.py示例“不支持按文件名导入”

来自分类Dev

数据流wordcount.py示例“不支持按文件名导入”

来自分类Dev

如何使用基本C示例运行valgrind?

来自分类Dev

无法使用SBT运行简单的Akka示例

来自分类Dev

使用CocoonJS Launcher运行Cordova示例项目

来自分类Dev

使用Apache Crunch进入HBase Standalone的WordCount

来自分类Dev

Hadoop-WordCount的结果未在输出文件上写入

来自分类Dev

Hadoop-WordCount的结果未在输出文件上写入

Related 相关文章

热门标签

归档