在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个回答

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

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

ainiburuqusi
ainiburuqusi 回复qq_42164959: 路径一般都是在properties文件中配置,这样既方便又安全 ,最好不要作为参数传递,会存在安全问题。记得给好评哦亲。
一年多之前 回复
qq_42164959
Vincent_Leee丶 提醒我了老哥!这是我在Windows下写的路径,如果想在Linux脚本里用可变的路径,是不是可以在程序代码中用new Path(args[0])作为路径参数呢?
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问