以后都会将学习Hadoop中遇到的问题写到这里,供自己参考,能帮到大家更好
SecondaryNameNode未启动
解决办法:
可能是端口被占用(我没遇到)
hadoop104未在/etc/hosts配置映射路径
我在hadoop104的/etc/hosts 添加了所有hadoop服务器的地址(以防万一)
192.168.xx.xxx hadoop102 hadoop102
192.168.xx.xxx hadoop103 hadoop103
192.168.xx.xxx hadoop104 hadoop104
重启hdfs
sbin/stop-dfs.sh #关闭hdfs
sbin/start-dfs.sh #开启hdfs
运行成功,SecondaryNameNode恢复
以后遇到启动异常的情况,可以查看hadoop3.3.0/logs这个文件夹,具体大家各自是什么版本自己看
浏览器打不开hadoop102:9870
原因:需要windows下的hosts文件为设置hadoop服务器ip
解决:在windows找到hosts(C:\Windows\System32\drivers\etc),拖到桌面打开,添加语句
ip地址 服务器名称
放回原路径
错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster
原因:yarn-site.xml内未配置hadoop的类路径(classpath)
解决办法:打开/hadoop3.3.0/etc/hadoop目录
vim ./yarn-site.xml
linux输入以下内容查看hadoop类路径
hadoop classpath
将获取的路径写到yarn-site.xml内
<property> <name>yarn.application.classpath</name> <value>/opt/module/hadoop-3.3.0/etc/hadoop:/opt/module/hadoop-3.3.0/share/hadoop/common/lib/*:/opt/module/hadoop-3.3.0/share/hadoop/common/*:/opt/module/hadoop-3.3.0/share/hadoop/hdfs:/opt/module/hadoop-3.3.0/share/hadoop/hdfs/lib/*:/opt/module/hadoop-3.3.0/share/hadoop/hdfs/*:/opt/module/hadoop-3.3.0/share/hadoop/mapreduce/*:/opt/module/hadoop-3.3.0/share/hadoop/yarn/lib/*:/opt/module/hadoop-3.3.0/share/hadoop/yarn/*</value> </property>
保存内容
重启集群
#先切换到hadoop3.3.0/sbin目录 #1.先关闭集群 stop-yarn.sh stop-dfs.sh #2.再启动集群 start-dfs.sh start-dfs.sh
单节点启动
比如启动单节点的datanode,需要切换到该节点,然后执行语法:
hdfs --daemon start datanode
hadoop执行jar包命令报错
Hadoop的wordcount案例需要传递的参数是HDFS的文件目录地址。在执行wordcount程序之前,需要先将要处理的文本数据上传到HDFS文件系统中,然后将HDFS文件系统中的文件目录地址作为程序的输入参数传递给MapReduce作业。
修改路径为HDFS的路径:运行成功
hdfs-default.xml问题
hadoop对HDFS有默认的配置,但并没有所谓的hdfs-default.xml文件,如果需要修改可以直接修改 hdfs-site.xml 。