Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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 在emr上运行mahout jar会给s3n://*/输入链接带来错误的FS错误_Java_Apache_Hadoop_Mahout_Emr - Fatal编程技术网

Java 在emr上运行mahout jar会给s3n://*/输入链接带来错误的FS错误

Java 在emr上运行mahout jar会给s3n://*/输入链接带来错误的FS错误,java,apache,hadoop,mahout,emr,Java,Apache,Hadoop,Mahout,Emr,我需要在emr上运行seqdirectory命令。 我创建了一个Fatjar(没有指定任何主类),包括mahout-integration-0.9、mahout-core-0.9和commons-cli-2.0-mahout-jar文件 并给出了以下jar参数- org.apache.mahout.text.SequenceFilesFromDirectory-i s3n://mybucket/dataset/2013-04-20-22/txt/-o s3n://mybucket/sequenc

我需要在emr上运行seqdirectory命令。 我创建了一个Fatjar(没有指定任何主类),包括mahout-integration-0.9、mahout-core-0.9和commons-cli-2.0-mahout-jar文件

并给出了以下jar参数-

org.apache.mahout.text.SequenceFilesFromDirectory-i s3n://mybucket/dataset/2013-04-20-22/txt/-o s3n://mybucket/sequence\u files/-c UTF-8

它在stderr上给出了错误的FS msg-

线程“main”java.lang.IllegalArgumentException中出现异常:错误的FS:s3n://trecdata/dataset/2013-04-20-22/txt,应为:hdfs://172.31.27.158:9000 位于org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:647) 位于org.apache.hadoop.hdfs.DistributedFileSystem.getPathName(DistributedFileSystem.java:191) 在org.apache.hadoop.hdfs.DistributedFileSystem.access$000(DistributedFileSystem.java:102) 位于org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1124) 位于org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1120) 位于org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) 位于org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1120) 位于org.apache.mahout.text.SequenceFilesFromDirectory.runMapReduce(SequenceFilesFromDirectory.java:162) 位于org.apache.mahout.text.SequenceFilesFromDirectory.run(SequenceFilesFromDirectory.java:91) 位于org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 位于org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84) 位于org.apache.mahout.text.SequenceFilesFromDirectory.main(SequenceFilesFromDirectory.java:65) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:606) 位于org.apache.hadoop.util.RunJar.main(RunJar.java:212)

这在系统日志上-

2015-07-13 21:34:18684 INFO org.apache.mahout.common.AbstractJob(main):命令行参数:{--charset=[UTF-8],--chunkSize=[64],--endPhase=[2147483647],--fileFilterClass=[org.apache.mahout.text.PrefixAdditionFilter],--input=[s3n://trecdata/dataset/2013-04-20-22/txt/],--keyPrefix=[],--method=[mapreduce],--输出=[s3n://trecdata/sequence_files/],--startPhase=[0],--tempDir=[temp]} 2015-07-13 21:34:19103 INFO org.apache.hadoop.conf.Configuration.deprecation(main):mapred.input.dir已被弃用。请改用mapreduce.input.fileinputformat.inputdir 2015-07-13 21:34:19103 INFO org.apache.hadoop.conf.Configuration.deprecation(main):mapred.compress.map.output已被弃用。请改用mapreduce.map.output.compress
2015-07-13 21:34:19103 INFO org.apache.hadoop.conf.Configuration.deprecation(主):mapred.output.dir已弃用。请改用mapreduce.output.fileoutputformat.outputdir

您使用的是Hadoop 2.x吗?Mahout 0.9与Hadoop 2.x不兼容。是的,我使用的是Hadoop 2.x。切换到Hadoop 1.0.3后,我收到此错误-线程“main”java.lang.IllegalArgumentException中的异常:此文件系统对象(hdfs://*:9000)不支持访问请求路径's3n://mybucket/dataset/2013-04-20-22/txt',您可能调用了FileSystem.get(conf),而您本应调用FileSystem.get(uri,conf)来获取支持您的路径的文件系统。我建议升级到支持Hadoop 2的Mahout 0.10.1(还有其他一些错误修复)而不是降级Hadoop。如果您想直接读/写s3n,您应该能够使用
-xm sequential
选项运行
seqdirectory
。要在MapReduce模式下运行,您必须将数据放入HDFS。谢谢,-xm sequential选项起作用。但我必须将文件传输到HDFS以供其他su使用b运行cvb的顺序命令。这是正确的方法吗?-
distcp s3n://mybucket/folder/hdfs://namenode ip:port/folder
,其中namenode ip:port是conf/core-site.xmlYeah中的
fs.default.name
属性的值,看起来不错..请参阅:。您可能希望从HDFS运行整个管道。
-xm sequential
选项有点违背了在集群上运行的目的。