Skip to content

hadoop 学习日记(初探)

Java 环境

bash
yum install java java-devel
vim ~/.bashrc ## 配置JAVA_HOME和hadoop中的bin环境变量
source ~/.bashrc

SSH 无密码登陆

可参考我另一篇博文。保证个节点机器是可以免密互通的。

配置 hadoop

这里仅设置了正常启动所必须的设置项: slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 。

修改 slaves

ini
192.168.0.121
192.168.0.113
192.168.0.238

修改 core-site.xml

xml
<configuration>
  <property>
                <name>fs.defaultFS</name>
                <value>hdfs://192.168.0.121:9000</value>
                <!-- 指向Master -->
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/root/hadoop/tmp</value>
                <description>Abase for other temporary directories.</description>
        </property>
</configuration>

修改 hdfs-site.xml

xml
<configuration>
        <property>
                <name>dfs.http.address</name>
                <value>192.168.0.121:9870</value>
        </property>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>192.168.0.121:50090</value>
        </property>
        <property>
                <!-- 副本数量 -->
                <name>dfs.replication</name>
                <value>3</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/root/hadoop/tmp/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/root/hadoop/tmp/dfs/data</value>
        </property>
        <property>
                <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
                <value>false</value>
        </property>
</configuration>

修改 mapred-site.xml

xml
<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>192.168.0.121:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>192.168.0.121:19888</value>
        </property>
</configuration>

修改 yarn-site.xml

xml
<configuration>
        <!-- Site specific YARN configuration properties -->
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>192.168.0.121</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>

Master 上的 hadoop 文件夹复制到各个节点上。

关闭防火墙(centos7)

bash
systemctl stop firewalld.service    ## 关闭firewall
systemctl disable firewalld.service ## 禁止firewall开机启动
bash
hdfs namenode -format    ## 首次运行需要执行初始化,之后不需要

接着可以启动 hadoop 了,启动需要在 Master 节点上进行:

bash
start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver

通过命令 jps 可以查看各个节点所启动的进程。正确的话,在 Master 节点上可以看到如下进程:

  • NameNode
  • ResourceManager
  • SecondrryNameNode
  • JobHistoryServer

还需要在 Master 节点上通过命令 hdfs dfsadmin -report 查看 DataNode 是否正常启动,如果 Live datanodes 不为 0 ,则说明集群启动成功。

所以如果集群以前能启动,但后来启动不了,特别是 DataNode 无法启动,不妨试着删除所有节点(包括 Slave 节点)上的 /usr/local/hadoop/tmp 文件夹,再重新执行一次 hdfs namenode -format,再次启动试试。

最后编辑时间:

Version 4.1 (framework-1.1.4)