jar文件(配置,字符串)

jjjwad0x  于 2021-06-03  发布在  Hadoop
关注(0)|答案(6)|浏览(261)

已安装hadoop 2.2。正在尝试删除不推荐使用的api

Job job = new Job(conf, "word count");

下面是wordcount示例(hadoop附带)
将不推荐使用的api替换为
编辑:

Job job = Job.getInstance(conf, "word count");

编译错误为
无法将job.getinstance解析为类型。
已经导入的作业类(旧api或mr1)似乎没有此方法。
哪个jar包含这个新的job类 Job.getInstance(Configuratio,String) 方法
如何解决?要迁移到mapreduce v2,该示例是否还有其他更改?

eh57zj3b

eh57zj3b1#

我是如何通过添加hadoop核心作为依赖项来解决这个问题的。我只指定了hadoop common。

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-core</artifactId>
    <version>1.2.1</version>
</dependency>
<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-common</artifactId>
    <version>2.7.2</version>
</dependency>
qni6mghb

qni6mghb2#

试试job=job.getinstance(conf,“字数”);change to job=新作业(conf);

but5z9lq

but5z9lq3#

在我的例子中,我对job类使用了错误的import语句。
确保您正在使用 import org.apache.hadoop.mapreduce.Job;

6tdlim6h

6tdlim6h4#

如果您使用的是旧的mapreduce api,请继续使用 new Job() 创建示例。如果已迁移到新的api,请使用 Job job = Job.getInstance(conf, "word count");

drnojrws

drnojrws5#

用这个换

Configuration conf = new Configuration();
        Job job = new Job(conf);

或者

Job job = new Job(new Configuration());
mwkjh3gx

mwkjh3gx6#

无法将job.getinstance解析为类型。
收到错误消息的原因是,应用程序类路径上不存在所需的库。你需要 hadoop-core*.jar 类路径上存在文件以解决此问题。
顺便问一下,哪个jar包含这个带有job.getinstance(configuratio,string)方法的新作业类
这个 org.apache.hadoop.mapreduce.Job 包含在中的类 hadoop-core-*.jar 文件。jar文件名将由hadoop版本和供应商名称(cdh-cloudera、hdf-hortenworks等)附加
建议: Job.getInstance() 是一个静态api,您无需创建作业类的示例即可访问它。有趣的是, getInstance() 用于创建作业类的新示例,如果已经使用 new 关键字,您不需要呼叫 getInstance 再一次。
替换 Job job = new Job.getInstance(conf, "word count");Job job = Job.getInstance(conf, "word count");

相关问题