hadoop无法启动start-dfs.sh

时间:2016-11-27 16:29:05

标签: java hadoop

我正在尝试安装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?

非常感谢。

2 个答案:

答案 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}不起作用。