配置Hadoop 伪分布式 _NameNode格式化问题_解决方案

【Ubuntu 16.04   Hadoop2.9.1】

跟着厦大林子雨的实验指南配置伪分布式环境时出现了以下问题:

在修改了/etc/hadoop/core-site.xml & /etc/hadoop/hdfs-site.xml后

namenode -format时出现 Cannot create directory /Softwares/hadoop/tmp/dfs/name/current 异常

具体配置文件修改如下:

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/Softwares/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/Softwares/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/Softwares/hadoop/tmp/dfs/data</value>
    </property>
</configuration>

考虑可能是如下问题:

1. 权限问题 2. 防火墙问题(刚开始是发现50070端口无法访问)

尝试过程中发现 :

(1)防火墙已关闭

【注:Ubuntu 中使用service iptables start 或者service iptables stop开启关闭防火墙会报错 】

【应使用 sudo ufw enable 和sudo ufw disable开启关闭防火墙 查看防火墙状态使用sudo ufw status verbose 或者 iptables -L 命令】

所以就没firewall什么事了。。。

(2)sudo su 切换至root 使用sudo chmod -R a+w /home/hadoop/Softwares/hadoop/ 修改权限 再exit 重新format依旧不行

这就很难受了。。

继续尝试 将两个xml文件里和路径相关的property都删掉 使用默认生成的目录 重新format 咦 这下好了

但继续出现以下问题:

(1)并没有看到生成的tmp文件

(2)./sbin/start-dfs.sh 后 使用jps命令查看 namenode datanode secondary jps都是正常的 localhost:50070也能正常访问 但在使用过程中经常会页面崩溃 使用jps命令查看发现namenode已经不显示了  重新启动后 正常 过一会。。。。= =

考虑可能还是因为配置文件中没有设置hadoop.tmp.dir等临时路径所致 

于是做如下尝试,将两个配置文件中原本出错的路径修改为绝对路径,配置文件具体如下:

<configuration> 
    <property>
        <name>hadoop.tmp.dir</name> 
        <value>file:/home/hadoop/Softwares/hadoop/tmp</value>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/Softwares/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/Softwares/hadoop/tmp/dfs/data</value>
    </property>
</configuration>

重新-format一下 OK start一下 也OK 并且没有再出现namenode自动挂掉的状况

虚拟机重启一下 直接start也依旧OK

嘤嘤嘤 问题解决

不过具体原理没弄明白- -恳请赐教啦






猜你喜欢

转载自blog.csdn.net/lqy0927/article/details/80529878