执行 ./hdfs namenode -format 的时候如果报了JAVA_HOME not set and jdk not found 的 错,检查两个地方:
1.是不是真的没有设置JAVA_HOME, echo $JAVA_HOME 检查一下;
2. 如果设置了,就去$HADOOP_HOME/etc/hadoop/hadoop-env.sh 中看有没有export JAVA_HOME=路径(用绝对路径,不要用$JAVA_HOME)
如果是启动yarn是报这个错,还要去$HADOOP_HOME/etc/hadoop/yarn-env.sh 中看有没有export JAVA_HOME.
如果启动 Hadoop 时遇到输出非常多“ssh: Could not resolve hostname xxx”的异常情况,如下图所示:
这个并不是 ssh 的问题,可通过设置 Hadoop 环境变量来解决。首先按键盘的 ctrl + c 中断启动,然后在 ~/.bashrc 中,增加如下两行内容(设置过程与 JAVA_HOME 变量一样,其中 HADOOP_HOME 为 Hadoop 的安装目录):
- export HADOOP_HOME=/usr/local/hadoop
- export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
保存后,务必执行 source ~/.bashrc
使变量设置生效,然后再次执行 ./sbin/start-dfs.sh
启动 Hadoop。
还有一种出现Could not resolve hostname , 然后各种connect failure 的情况,并且有permission denied 的情况, 是 hadoop目录的权限问题,设置成700应该就可以了。
如果在启动的过程中让你输密码了,就说明ssh没有设置好,设置一下免密登录就好了。
不启动 YARN 需重命名 mapred-site.xml
如果不想启动 YARN,务必把配置文件 mapred-site.xml 重命名,改成 mapred-site.xml.template,需要用时改回来就行。否则在该配置文件存在,而未开启 YARN 的情况下,运行程序会提示 “Retrying connect to server: 0.0.0.0/0.0.0.0:8032” 的错误,这也是为何该配置文件初始文件名为 mapred-site.xml.template。