我想上传一个文件到hdfs。我使用以下jar作为依赖项编译代码:
hadoop-auth-2.6.1.jar,
hadoop-common-2.6.1.jar和
hadoop-hdfs-2.6.1.jar,
我的代码:
我用ant编译的。但是,它给了我一个错误: No FileSystem for scheme:hdfs
.
然后我修改了代码并再次编译:
但现在我又犯了一个错误: Class org.apache.hdfs.DistributedFileSystem not found
.
怎么了?我该怎么办?
2条答案
按热度按时间njthzxwz1#
DistributedFileSystem
是的一部分hadoop-core
.要解决此问题,您需要包括
hadoop-core-1.2.1.jar
另外(注意:我使用maven进行构建):总的来说,我使用以下maven依赖项:
e5nqia272#
获取hadoop filesystem对象时,如filesystem fs=filesystem.get(hdfsurl,configuration);
如果出现以下错误:“没有文件系统”scheme:hdfs"
您可以通过在配置上设置以下2个属性来解决此问题。
现在,可能会出现如下新错误:
hadoop-common.jar使用thread.currentthread.getcontextclassloader()和configuration.getclassloader加载类。所以,如果您使用
您将能够从其他hadoopjar(例如hadoophdfs)加载所需的类
如果你需要更多的帮助,请告诉我。如果你觉得这有点用,别忘了投赞成票。