关于hadoop目录下与spark目录下重名文件启动冲突的问题

问题由来

今天在配置spark独立部署模式的时候,将配置文件修改好分发到三个节点后,在Master节点上的spark的sbin路径下运行 start-all.sh 后,跳出

WARNING: Attempting to start all Apache Hadoop daemons as atguigu in 10 seconds.
WARNING: This is not a recommended production deployment configuration.
WARNING: Use CTRL-C to abort.

这段信息后,发现不对劲,这不明摆写着Apache Hadoop吗,这是要运行hadoop的信息。

然后启动之后查看了一下三台机器的进程:

=============== hadoop102 ===============
6965 NameNode
8055 NodeManager
9675 Jps
7183 DataNode
=============== hadoop103 ===============
2005 DataNode
2251 Jps
2125 NodeManager
=============== hadoop104 ===============
2340 Jps
2214 NodeManager
2007 DataNode
2125 SecondaryNameNode

果不其然,就是启动hadoop了,第一次遇到这样的问题非常匪夷所思,十分费解,启动一个spark为啥会把hadoop给启动了。

解决方案

在确认配置文件无误后,询问GPT也不能给出很准确的回复。上网搜索类似问题后,发现有跟我类似的情况,只不过他是关闭hadoop的时候把spark关闭了,不能说完全一样,但是问题十分相似。后面发现他提到了环境变量的问题,我才逐渐发现事情的真相,环境变量在提供便利的同时没想到竟然引发了如此费解的问题,输入

echo $PATH

查看环境变量,果不其然:

/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/module/jdk1.8.0_371/bin:/opt/module/hadoop-3.2.3/bin:/opt/module/hadoop-3.2.3/sbin:/opt/module/hive/bin:/root/myenv:/home/atguigu/.local/bin:/home/atguigu/bin

注意到/opt/module/hadoop-3.2.3/sbin这一个路径,想都不用想,里面一定也有一个start-all.sh文件,我们进入目录查看一下:

 很容易找到了“罪魁祸首” 原来是输入start-all.sh后,默认先在环境变量中的路径下找此文件,而且找到了,于是直接就启动了hadoop而不是spark。解决方法当然也十分简单,直接在spark路径下输入 sbin/start-all.sh即可。这样就不会在环境变量中找那个文件了。

总结

简单来收就是优先在环境变量中搜索你输入的文件,如果找到了就进入那个文件了,而不是继续搜索。这是第一次遇到这样的问题,也对环境变量有了更深刻的理解,所以将这个问题记录一下,如果能帮到有需要的人当然是最好了,不过现在发现真的是很...有点蠢的一个问题,希望以后不要再被类似的问题所困扰。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值