qq_42164959
Vincent_Leee丶
采纳率100%
2018-12-20 16:46 阅读 751
已采纳

在Linux hadoop环境中运行sh脚本,报异常java.io.IOException: No FileSystem for scheme: E

jar包是从eclipse中导出的,代码没有问题,在Windows下可以正确运行。
在Linux下用脚本运行,出现问题。
脚本内容:
图片说明

运行后报错:
图片说明

jar包main方法:

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

        Configuration conf = new Configuration();
        conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");

        Job job = Job.getInstance(conf);

        job.setJarByClass(AppLogDataClean.class);

        job.setMapperClass(AppLogDataCleanMapper.class);

        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(NullWritable.class);

        job.setNumReduceTasks(0);

        // 避免生成默认的part-m-00000等文件,因为,数据已经交给MultipleOutputs输出了
        LazyOutputFormat.setOutputFormatClass(job, TextOutputFormat.class);

        FileInputFormat.setInputPaths(job, new Path("E:/educ/infile/20170816new"));
        FileOutputFormat.setOutputPath(job, new Path("E:/educ/outfile/LogTest2/clean"));

        boolean res = job.waitForCompletion(true);
        System.exit(res ? 0 : 1);

    }

配置文件应该也都没问题,之前所有业务都能正常操作,所以现在应该怎么解决?
求助大神

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • 已采纳
    ainiburuqusi ainiburuqusi 2018-12-20 09:58
    FileInputFormat.setInputPaths(job, new Path("E:/educ/infile/20170816new"));
    FileOutputFormat.setOutputPath(job, new Path("E:/educ/outfile/LogTest2/clean"));
    

    你的linux是啥版本,竟然还有E盘,厉害了我的哥.

    点赞 评论 复制链接分享

相关推荐