问题提出
在进行节点格式化的时候遇到了这个问题:
(如果第二次操作就会从create 变成 remove,即覆盖)
究其根本,是权限不够的原因。
尽管网上讨论这个问题的帖子很多,但是绝大部分并不能解决我的问题。大部分的做法是提升hadoop文件夹的权限等级,但是我发现我已经将hadoop的权限提高了呀!
那我就试试root权限进行操作,结果是没有问题的,节点格式化能够正常进行并且successful了。但是到了启动伪分布模式的时候,让我输入root localhost 的密码,但是我怎么输密码都是拒绝访问(permission denied)。
这里的解决的办法是:
sudo passwd root
sudo vi /etc/ssh/sshd_config
进入该文件夹下配置:
找到:PermitRootLogin prohibit-password在前面添加#
添加:PermitRootLogin yes
sudo service ssh restart
上面步骤参考的是:https://blog.csdn.net/weixin_43484977/article/details/104954647
完成配置后,可以登录localhost,并开启伪分布模式。但是爆出了JAVA_HOME环境变量出错。
尽管之前明明设置过,可能是hadoop引用系统变量中的JAVA_HOME时出毛病了。解决办法是自己手动重新配置:
在hadoop-env.sh中,默认引用的是环境变量中的JAVA_HOME,我们不要她,我们自己设置绝对路径。
如果不知道JAVA_HOME路径可以用:
echo $JAVA_HOME
找到绝对路径后,在hadoop-env.sh 中找到 export JAVA_HOME,后面改成JAVA_HOME绝对路径即可。
改好后,解决问题!