有些时候我们在使用命令
./start-dfs.sh
./start-yarn.sh
之后,再使用jps命令,会发现缺少很多进程
对于这种情况,一般有下面几个原因,我在下面做了归纳
一,未使用root账户
对hadoop集群服务的操作需要权限,如果
没有使用root(或者hadoop账户),请更换用户后再进行操作
二,防火墙未关闭
如果datenode已经启动,但是namenode上无法显示,有可能是因为防火墙未关闭,两者无法通信,关闭防火墙即可
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
三,未初始化namenode
要启动Namenode首先需要对他进行初始化,想想自己之前有没有输入指令hdfs namenode -format
,如果没有,先输入指令./stop-dfs.sh
和./stop-yarn.sh
停止集群,再输入指令hdfs namenode -format
初始化节点,再./start-dfs.sh
,./start-yarn.sh
启动集群,再次查看jps
四,未修改tmp目录
如果第一次确认已经运行成功,重启之后却不行了,可以想想你是否自定义了tmp目录,tmp目录下的文件是临时文件会被定期删除的,与此同时namenode的格式化信息就会丢失,虚拟机每次重启临时文件都会复原,如果不自定义位置的话,每次重启都得初始化,那样太麻烦了,你不再执行一次指令hdfs namenode -format
,他就无法正常启动,怎么解决这个问题呢?
其实也很简单,自己设置一下地址就好了
输入指令
vi ./hadoop-2.7.7/etc/hadoop/core-site.xml
在文件末尾的 configuration 之间添加下列内容
<property>
<name>fs.defaul