具体:
java.io.IOException: HADOOP_HOME or hadoop.home.dir are not set.
at org.apache.hadoop.util.Shell.checkHadoopHome(Shell.java:302)
at org.apache.hadoop.util.Shell.<clinit>(Shell.java:327)
at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:79)
at org.apache.hadoop.security.Groups.parseStaticMapping(Groups.java:104)
at org.apache.hadoop.security.Groups.<init>(Groups.java:86)
at org.apache.hadoop.security.Groups.<init>(Groups.java:66)
at org.apache.hadoop.security.Groups.getUserToGroupsMappingService(Groups.java:280)
at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:271)
at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:248)
at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:763)
at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:748)
at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:621)
at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2753)
at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2745)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2611)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:370)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:169)
at edu.mypackage.HDFSFileSystemFactory.getMyDefaultHdfs(HDFSFileSystemFactory.java:27)
at edu.mypackage.Test.main(Main.java:22)
获取 FileSystem 时指定了:
conf.set("fs.default.name", "hdfs://192.168.1.200:9000"); // “ hdfs://192.168.1.200:9000 ” 是 hdfs master 地址
conf.set("hadoop.tmp.dir", "/home/hadoop/tmp");
因为 hdfs 的 master 机器不是本机,所以在本机上并没有添加 %HADOOP_HOME% 这个变量,也没有 hadoop.home.dir ,但是在初始化 FileSystem 的时候,在 conf 中给了 hadoop.home.dir 的配置。但还是报以上错误了。
已经尝试了:
1 、 java 中添加 System.setProperty("hadoop.home.dir", "/usr/local/etc/hadoop"); // "/usr/local/etc/hadoop" 是 hadoop 的 home 目录。运行结果不出所料是说本地没有 hadoop 的相关 binary 文件 2 、在本机添加 HADOOP_HOME 环境变量,毫无疑问,没用
注: master主机上也已经有 HADOOP_HOME这个变量了。 已经是可以访问 dfs ,且能成功创建文件等,但就是有以上的报错信息。我想请问一下这个报错怎么去除。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.