Hadoop伪分布式集群部署问题总结
一、HDFS初始化失败
初始化失败,HDFS初始化操作如下:
hdfs namenode -format
然后我运行后报错:error parsing conf core-site.xml
出现这个信息就说明core-site.xml配置文件出错了,用vim命令可以再修改。这里插入一个小tip,vim命令打开文件后,输入i表示Insert,才能编辑文本,编辑好后摁Esc后输入:wq保存并退出即可。这里出错可以看一下日志报告的什么错误,比如我的这个就是name打错成了neme,修改过后就初始化成功了。
初始化成功会显示如下图片内容:Storage。。。。successfully formatted
二、初次启动HDFS需要格式化
格式化操作如下
hdfs bin/hdfs namenode -format
不要多次格式化,后面会出问题。多次格式化需要删除/usr/hadoop/hadoopdata目录后再重新格式化
三、在linux上登录hadoop用户
因为前面只配置了hadoop用户的环境变量,不登录启动不了HDFS。
1.需要创建hadoop用户
sudo useradd hadoop
2.设置hadoop用户密码
sudo passwd hadoop
3.添加 Hadoop 用户到 Hadoop 组
sudo usermod -a -G hadoop hadoopuser
注意空格
4.切换登录账户
su - hadoop
这时候又报错了-bash-4.2$
将/etc/skel目录下的环境变量文件拷贝到当前用户根目录,然后重新登录
操作方法如下:
1.创建根目录
mkdir /home/hadoop
2.修改权限
chown hadoop:hadoop /home/hadoop
3.拷贝文件
bash-4.2$ cp /etc/skel/.bash* ~/
注意空格
4.重新登录
bash-4.2$ bash
这里又有新问题,因为使用了sudo命令,错误:hadoop 不在 sudoers 文件中。此事将被报告。
我从网上查了一些解决方案,但是我没有管。我是直接转到初始目录下操作上面1,2,3步以后登录,登录后依然是bash-4.2$,直接bash就登录上了。
四、启动HDFS和YARN报错
启动HDFS和YARN时又报错了,Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)Starting datanodes这时候我登陆了hadoop账户,但是我忽略了一个重要问题,那就是格式化的时候用的是root,这时候使用hadoop启动权限是不够的,一开始的时候只配置了hadoop用户的环境变量,再加一个root变量就可以解决问题了。
登录用户错误添加root变量:
vim /etc/profile
添加root环境变量到最后
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
然后source /etc/profile
使配置文件生效即可。
用户权限解决了,又出现了新的问题
Java路径问题
解决方法:vim /app/hadoop-3.2.2/etc/hadoop/hadoop-env.sh,加粗部分是本人安装hadoop的路径,因人而异。
添加export JAVA_HOME=/usr/local/java/jdk1.8.0_341/(自己的Java路径)注意不要添加到注释后面。
最后,启动HDFS和YARN终于成功。