集群说明

域名 服务器地址 HDFS 角色 YARN 角色
node01 192.168.202.135 DataNode, NameNode NodeManager
node02 192.168.202.136 DataNode NodeManager, ResourceManager
node03 192.168.202.134 DataNode, SecondaryNameNode NodeManager

1.安装JDK

由于 hadoop 部署需要 jdk 请 根据 https://my.oschina.net/u/943316/blog/794029 部署

2.安装 hadoop

#获取 hadoop 压缩包
wget https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz
#创建 hadoop 安装目录
mkdir /usr/local/hadoop
#解压 hadoop到 安装目录
tar -zxvf hadoop-2.7.2.tar.gz /usr/local/hadoop/

#配置 hadoop 环境变量
vim  /etc/profile
#添加 hadoop 环境变量
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin

#重新加载 环境配置
source /etc/profile

#验证
hadoop version

Hadoop 集群环境部署-LMLPHP

3.修改环境配置 文件

#编辑环境配置文件
vim /usr/local/hadoop/hadoop-2.7.2/etc/hadoop/hadoop-env.sh
#修改 java环境变量
export JAVA_HOME=/usr/local/java/jdk1.8.0_231

Hadoop 集群环境部署-LMLPHP

3.修改  集群全局参数

#修改 集群 全局配置
vim ${HADOOP_HOME}/etc/hadoop/core-site.xml
#添加 xml 标签
<configuration>
    <!-- 指定HDFS中NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.202.135:9000</value>
    </property>
    <!-- 指定hadoop运行时产生文件的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/hadoop-2.7.2/data/tmp</value>
    </property>
</configuration>

4.配置 hdfs

#配置  hdfs配置
vim ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml
#添加 xml 标签
<configuration>
    <!--副本数量 -->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <!-- secondarynamenode的地址 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>192.168.202.134:50090</value>
    </property>
    <property>
        <name>dfs.name.dir</name>
        <value>/root/data/hadoop/name/</value>
    </property>
    <property>
        <name>dfs.data.dir</name>
        <value>/root/data/hadoop/data/</value>
    </property>
    <!--默认为true,namenode连接datanode时,会进行host解析查询-->
    <property>
       <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
        <value>false</value>
     </property>
</configuration>

5 配置 yarn

#配置yarn
vim ${HADOOP_HOME}/etc/hadoop/yarn-site.xml

<configuration>
    <!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序 -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!-- 指定YARN的ResourceManager的地址 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>192.168.202.136</value>
    </property>
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>1024</value>
    </property>
</configuration>

6. 配置 MapReduce

#进入 hadoop配置文件
cd ${HADOOP_HOME}/etc/hadoop/
#重命名 配置
mv mapred-site.xml.template mapred-site.xml

#配置 mapred-site.xml
vim mapred-site.xml

<configuration>
    <!-- 指定mr运行在yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

7.指定从节点

vim slaves
#内容
192.168.202.135
192.168.202.134
192.168.202.136

8.设置/etc/hosts

#修改 host
vim /etc/hosts
#添加
192.168.202.135 node01
192.168.202.136 node02
192.168.202.134 node03

#重启 网络
systemctl restart network

9.免密登陆

#生成 密钥
ssh-keygen
#复制密钥 到 全部 机器 包括 本机 否则 集群启动报错
ssh-copy-id -i /root/.ssh/id_rsa.pub node01
ssh-copy-id -i /root/.ssh/id_rsa.pub node02
ssh-copy-id -i /root/.ssh/id_rsa.pub node03

10. 单点启动

注意:如果集群是第一一次启动,需要在Namenode所在节点格式化NameNode,非非第一一次不不用用执行行行格式化Namenode操作

#初始化 nameNode
hadoop namenode -format

#启动 nameNode
cd ${HADOOP_HOME}
./sbin/hadoop-daemon.sh start datanode

#启动 datanode
cd ${HADOOP_HOME}
./sbin/hadoop-daemon.sh start datanode

停止其他角色脚本

/usr/local/hadoop/hadoop-2.7.2/sbin/hadoop-daemon.sh stop namenode|datanode|secondarynamenode
/usr/local/hadoop/hadoop-2.7.2/sbin/yarn-daemon.sh stop resourcemanager|nodemanager

11. 集群启动

#集群  在namenode节点启动  启动/停止hdfs
cd ${HADOOP_HOME}
./sbin/start-dfs.sh
./sbin/stop-dfs.sh

集群 在resourcemanager节点 启动/停止yarn
cd ${HADOOP_HOME}
./sbin/start-yarn.sh
./sbin/stop-yarn.sh

问题:

Hadoop 集群环境部署-LMLPHP

Hadoop 集群环境部署-LMLPHP

     配置缺少  host 导致

3.结果

Hadoop 集群环境部署-LMLPHP

Hadoop 集群环境部署-LMLPHP

04-16 15:57