我在下面的一些示例中尝试使用以下命令获取distributedfilesystem,但是我发现以下命令返回不推荐的错误
FileSystem fs=FileSystem.get(conf);
DistributedFileSystem hdfs = (DistributedFileSystem) fs;
线程“main”java.lang.classcastexception中的异常:org.apache.hadoop.fs.localfilesystem不能强制转换到位于hadoop.file.infonode(file)的org.apache.hadoop.hdfs.distributedfilesystem。java:55)在hadoop.driver.main(驱动程序。java:8)位于sun.reflect.nativemethodaccessorimpl.invoke0(本机方法)sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl。java:62)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:43)在java.lang.reflect.method.invoke(方法。java:498)
如何解决这个问题?
1条答案
按热度按时间jmo0nnb31#
这不是折旧错误
无法强制转换localfilesystem
你的
conf
对象需要用fs.defaultFS
首先是hdfs://
而不是file://
在您的文档中查看core-site.xml文件HADOOP_CONF_DIR
设置属性