我正在尝试安装Hadoop并运行它。 而且我确定我已成功安装Hadoop并格式化了namenode。 但是,当我尝试运行start-dfs.sh时,我收到以下错误:
localhost:启动namenode,登录到/usr/local/hadoop/logs/hadoop-wenruo-namenode-linux.out localhost:/ usr / local / hadoop / bin / hdfs:第304行:/ usr / local / hadoop / usr / lib / jvm / java-8-oracle / bin / java:没有这样的文件或目录
我的JAVA_HOME如下:
echo $ JAVA_HOME / usr / lib中/ JVM / JAVA -7-的openjdk-AMD64
我的hadoop-env.sh文件:
导出JAVA_HOME = $ {JAVA_HOME}
Hadoop如何继续寻找JDK8,因为我已经将JAVA_HOME设置为JDK7?
非常感谢。
答案 0 :(得分:0)
通常,每个Hadoop发行版/版本都应该有一些基本脚本文件,如果你有纱线,可以设置这个JAVA_HOME环境变量,如yarn-env.sh文件。
另外,根据您的hadoop版本,您可能还有* -site.xml文件中的路径,例如hdfs-site.xml,core-site.xml,yarn-site.xml,mapred-site.xml和其他一些取决于你有什么服务。您对hadoop-env.sh的更新可能不会重新生成客户端配置文件,除非您通过集群管理器应用程序执行此操作,然后重新部署客户端配置文件。
有时这些我也发现设置使用系统bin / java可执行文件。您可以使用以下命令查找您的操作系统在bin / path中具有的java。
readlink -f / usr / bin / java / usr / bin / java -version
您是否还在每个节点上更新了hadoop-env.sh然后重新启动所有服务以确保它再次被接收?
答案 1 :(得分:0)
离开它。问题得到解决。 在hadoop-env.sh中,我更改了导出JAVA_HOME = $ {JAVA_HOME}以回显$ JAVA_HOME / usr / lib / jvm / java-7-openjdk-amd64。 看起来$ {JAVA_HOME}不起作用。