大数据学习4——伪分布式hadoop的配置和启动

一、伪分布式Hadoop的配置

        Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xmlhdfs-site.xml 。如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。

        1.修改core-site.xml文件     

    <configuration>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/usr/local/hadoop/tmp</value>
            <description>Abase for other temporary directories.</description>
        </property>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>
        </property>
    </configuration>      

         2.修改hdfs-site.xml文件

    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/usr/local/hadoop/tmp/dfs/name</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/usr/local/hadoop/tmp/dfs/data</value>
        </property>
    </configuration>

二、伪分布式Hadoop的启动

         

         1.配置完成后,执行NameNode的格式化

    cd  /usr/local/hadoop
    ./bin/hdfs namenode -format #如果初始化成功,会看到“successfully formatted”和“Exitting with status 0”的提示,若为“Exitting with status 1”则是出错。

         2.开启 NameNode 和 DataNode 守护进程

    ./sbin/start-dfs.sh

         启动完成后,可以通过命令jps来判断是否成功启动,若成功启动,则会列出如下进程“NameNode”、“DataNode”和“SecondaryNameNode” ,如果没有NameNode或DataNode,那就是配置不成功,可以通过查看启动日志排查原因。



三、常见的问题及解决办法

         1.DataNode没有启动     

    ./sbin/stop-dfs.sh   #关闭
    rm -r ./tmp     #删除tmp文件,注意这会删除HDFS中原有的数据,如果原有数据很重要,不要这样做
    ./bin/hdfs namenode -format   #重新格式化NameNode
    ./sbin/start-dfs.sh  #重启

         2. 删除tmp文件时,显示权限不足

         将hadoop文件夹的权限授予hadoop用户。

    sudo chown -R hadoop  /usr/local/hadoop # 用户名为hadoop,我的hadoop所在的文件夹为/usr/local/hadoop

         3.SecondaryNameNode没有启动      

    sbin/stop-dfs.sh #关闭进程,然后尝试重新启动

        如果还不成功,查看第二名称节点日志文件hadoop-hadoop-secondarynamenode-pl-Lenovo-S40-70.log(将红色部分替换成你的主机名) 

        一般会出现端口占用的情况,需要找到被占用的端口ID,并将其杀死,然后再重启。

    sudo lsof -i:端口 -P
    sudo kill -9 PID

       



 

猜你喜欢

转载自blog.csdn.net/csdn950212/article/details/78735252