2016-10-11 48 views
0

我有一个文件MapReduce的设置输入和输出

import java.io.IOException; 
import java.nio.file.Paths; 
import java.util.*; 

import org.apache.hadoop.conf.*; 
import org.apache.hadoop.fs.*; 
import org.apache.hadoop.conf.*; 
import org.apache.hadoop.io.*; 
import org.apache.hadoop.mapreduce.*; 
import org.apache.hadoop.mapreduce.lib.input.*; 
import org.apache.hadoop.mapreduce.lib.output.*; 
import org.apache.hadoop.util.*; 

public class ViewCount extends Configured implements Tool { 

    public static void main(String args[]) throws Exception { 
     int res = ToolRunner.run(new ViewCount(), args); 
     System.exit(res); 
    } 

    public int run(String[] args) throws Exception { 
     //Path inputPath = new Path(args[0]); 
     Path inputPath = Paths.get("C:/WorkSpace/input.txt"); 

     Path outputPath = Paths.get("C:/WorkSpace/output.txt"); 

     Configuration conf = getConf(); 
     Job job = new Job(conf, this.getClass().toString()); 

我尝试在Windows运行的应用程序。如何设置inputPathoutputPath?我现在使用的方法不起作用。之前我有

Path inputPath = new Path(args[0]); 
Path outputPath = new Path(args[1]); 

我必须去命令行。现在我想从IDE运行应用程序。

我越来越

Required: 
org.apache.hadoop.fs.Path 
Found: 
java.nio.file.Path 

回答

1

对于Eclipse,你可以设置参数:

运行 - >运行配置 - >参数。

Intellij应该是一样的。

+0

我应该将它们分开吗? C:\ WorkSpace \ input.txt,C:\ WorkSpace \ output.txt –

+0

现在我得到这个错误java.io.IOException:无法初始化群集。请检查您的配置mapreduce.framework.name和相应的服务器地址 –

0

该错误告诉您它期望org.apache.hadoop.fs.Path,但它会收到java.nio.file.Paths

这意味着您应该将代码的第二次导入更改为 org.apache.hadoop.fs.Path。 IDEs导入建议可能会出错一些;)

更改导入,然后使用您已添加输入和输出路径的方法。这些参数在Eclipse中给出,右键单击项目 - >运行方式 - >运行配置 - >参数。这两条路径应该是空白分隔的。申请并运行!

对于下一次执行,只需运行该项目。