当前位置: 首页 > 面试题库 >

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

酆茂才
2023-03-14
问题内容

从远程系统提交mapreduce作业时出现异常

13/10/28 18:49:52错误security.UserGroupInformation:PriviledgedActionException
as:根本原因:org.apache.hadoop.mapred.InvalidInputException:输入路径不存在:file:/ F:/
Workspaces / 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();
    }
}

其中192.168.1.149是hadoop配置的Linux PC。我开始了hadoop,在那里减少了服务。另外 测试 目录也有相同的Java
API创建的,它的工作。但是mapreduce不能。

请帮忙 ..


问题答案:

其实这是我的配置错误:

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

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


 类似资料:
  • 我被困在: 在我得到这个之前: 当我签出应用程序跟踪页面时,我在stderr上得到以下信息: 我对这一切都很陌生,也许我的推理有缺陷,任何投入或建议都会有所帮助。

  • 我一直在玩弄Hadoop及其姊妹项目,在这一过程中我遇到了一些问题,但我最终遇到了一个我找不到答案的问题: 我有一个hive表存储在hdfs上,作为一个制表符分隔的文本文件。我可以在表上做一个基本的选择,但是一旦我把查询做得稍微复杂一点,hive就把它变成了一个映射还原作业,这个作业在下面的堆栈跟踪中失败了 13/11/29 08:31:00错误安全。UserGroupInformation:Pr

  • 在ResourceManager节点上启动flink作业(查找配置文件) 从ResourceManager下载配置文件到本地。 我想,这两种方式都不太好。如何将作业提交到远程纱线集群。有没有合适的办法?

  • 问题内容: 我们有要与HDFS集成的特定算法。该算法要求我们在本地访问数据(该工作将专门在中完成)。但是,我们确实希望在分发文件方面(提供可靠性和条带化)利用HDFS。计算完成后,我们将使用来简单地将答案发送回去,而不是执行任何其他工作。避免使用网络是一个明确的目标。是否存在允许我们限制网络数据访问的配置设置,以便在启动MapReduce作业时仅访问其本地DataNode? 更新: 添加一些上下文

  • 我一直在玩Hadoop和它的姊妹项目,一路上遇到了一些问题,但我最终遇到了一个我找不到答案的问题: 我有一个配置单元表存储在hdfs上,作为一个制表符分隔的文本文件。我可以在表上做一个基本的select,但一旦我将查询变得稍微复杂一些,hive就会将它变成一个map reduce作业,它会在以下堆栈跟踪中失败 所讨论的文件夹确实存在于dfs中,至少存在于“/tmp/hadoop-yarn/stag

  • 我是Hadoop的MapReduce的新手。我已经编写了一个map-reduce任务,我正在尝试在本地计算机上运行它。但这项工作在地图绘制完成后就悬而未决了。 下面是代码,我不明白我错过了什么。 我有一个自定义密钥类 使用自定义键的映射器和缩减器类如下。 我还在main中创建了一个作业和配置。不知道我错过了什么。我在本地环境下运行这一切。