Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从远程系统提交mapreduce作业时发生异常_Java_Linux_Hadoop_Mapreduce_Remote Server - Fatal编程技术网

Java 从远程系统提交mapreduce作业时发生异常

Java 从远程系统提交mapreduce作业时发生异常,java,linux,hadoop,mapreduce,remote-server,Java,Linux,Hadoop,Mapreduce,Remote Server,从远程系统提交mapreduce作业时发生异常 13/10/28 18:49:52错误security.UserGroupInformation:PriviledEdActionException as:根本原因:org.apache.hadoop.mapred.InvalidInputException:输入路径不存在:文件:/F:/workspace/Test/hadoop/Test 我的hadoop和mapreduce环境是在linux机器上配置的。我从本地Windows PC提交word

从远程系统提交mapreduce作业时发生异常

13/10/28 18:49:52错误security.UserGroupInformation:PriviledEdActionException as:根本原因:org.apache.hadoop.mapred.InvalidInputException:输入路径不存在:文件:/F:/workspace/Test/hadoop/Test

我的hadoop和mapreduce环境是在linux机器上配置的。我从本地Windows PC提交wordcount作业,如下所示:

public static void main(String[] args) throws Exception {

    UserGroupInformation ugi = UserGroupInformation.createRemoteUser("root");

    try {
        ugi.doAs(new PrivilegedExceptionAction<Void>() {

            public Void run() throws Exception {

                JobConf conf = new JobConf(MapReduce.class);
                conf.set("mapred.job.name", "MyApp");
                conf.set("mapred.job.tracker", "192.168.1.149:9001");
                conf.set("fs.default.name","hdfs://192.168.1.149:9000");
                conf.set("hadoop.job.ugi", "root");

                conf.setOutputKeyClass(Text.class);
                conf.setOutputValueClass(IntWritable.class);

                conf.setMapperClass(Map.class);
                conf.setCombinerClass(Reduce.class);
                conf.setReducerClass(Reduce.class);

                conf.setInputFormat(TextInputFormat.class);
                conf.setOutputFormat(TextOutputFormat.class);

                FileInputFormat.setInputPaths(conf, new Path("test"));
                FileOutputFormat.setOutputPath(conf, new Path("test"));

                JobClient.runJob(conf);

                return null;
            }
        });
    } catch (Exception e) {
        e.printStackTrace();
    }
}
publicstaticvoidmain(字符串[]args)引发异常{
UserGroupInformation ugi=UserGroupInformation.createRemoteUser(“根”);
试一试{
ugi.doAs(新特权接受行动){
public Void run()引发异常{
JobConf conf=newjobconf(MapReduce.class);
conf.set(“mapred.job.name”、“MyApp”);
conf.set(“mapred.job.tracker”,“192.168.1.149:9001”);
conf.set(“fs.default.name”hdfs://192.168.1.149:9000");
conf.set(“hadoop.job.ugi”,“root”);
conf.setOutputKeyClass(Text.class);
conf.setOutputValueClass(IntWritable.class);
conf.setMapperClass(Map.class);
conf.setCombinerClass(Reduce.class);
conf.setReducerClass(Reduce.class);
conf.setInputFormat(TextInputFormat.class);
conf.setOutputFormat(TextOutputFormat.class);
setInputPath(conf,新路径(“测试”));
setOutputPath(conf,新路径(“测试”));
runJob(conf);
返回null;
}
});
}捕获(例外e){
e、 printStackTrace();
}
}
其中192.168.1.149是hadoop配置的linux pc。我在那里启动了hadoop、mapreduce服务。另外,test目录也是使用相同的JavaAPI创建的,它工作正常。但mapreduce不是


**请帮忙**

实际上是我的配置错误:

我错过了mapred site.xml中的mapred.local.dir属性

mapred.local.dir /usr/local/hadoop-1.0.3/local
您是否能够在计算机上运行示例MapReduce作业?在独立操作下。您正在运行什么命令来执行作业?我想这可能是你的问题。运行作业以获取输入时,您给它的路径是什么?确保它是hdfs路径。我不确定是否有任何方法可以在不将类的jar传输到集群中的节点的情况下运行远程作业。如果你认为没有任何答案,我可以试着给你一个答案。我用java程序用同样的方法创建了“test”floder。我还可以在那个文件夹中添加文件。运行map reduce程序后,出现异常“输入路径不存在:文件:/F:/workspace/Test/Hadoop/Test”。这是我本地电脑的文件夹路径。我实际上打算在Hadoop电脑“192.168.1.149”中指定“Test”文件夹。我怎么能?伙计们,我试过了,它不起作用。正在为您的平台获取类似库的错误。。。在适用的情况下使用内置java类。然后,权限问题将无法从群集运行作业。
 

<property> <name>mapred.local.dir</name> <value>/usr/local/hadoop-1.0.3/local</value> </property>