文章目录
- 零、学习目标
 - 一、导入新课
 - 二、新课讲解
 - 三、归纳总结
 - 四、上机操作
 
零、学习目标
1.掌握Hadoop集群配置
 2. 掌握格式化文件系统
 3. 掌握启动和关闭Hadoop集群
一、导入新课
- 上次课中,主要讲解了Hadoop集群部署模式、JDK和Hadoop的安装。本次课将针对Hadoop集群的配置、文件系统的格式化以及Hadoop集群的启动和关闭进行详细讲解。
 
二、新课讲解
(一)配置Hadoop集群
| 配置文件 | 功能描述 | 
|---|---|
| hadoop-env.sh | 配置Hadoop运行所需的环境变量 | 
| yarn-env.sh | 配置Yarn运行所需的环境变量 | 
| core-site.xml | Hadoop核心全局配置文件,可在其他配置文件中引用 | 
| hdfs-site.xml | HDFS配置文件,继承core-site.xml配置文件 | 
| mapred-site.xml | MapReduce配置文件,继承core-site.xml配置文件 | 
| yarn-site.xml | Yarn配置文件,继承core-site.xml配置文件 | 
| workers | 配置从节点文件 | 
1、在master虚拟机上配置hadoop
(1)编辑Hadoop环境配置文件 - hadoop-env.sh
- 执行命令:
cd $HADOOP_HOME/etc/hadoop,进入hadoop配置目录

 - 执行命令:
vim hadoop-env.sh,添加三条环境变量配置

 
export JAVA_HOME=/usr/local/jdk1.8.0_162 
export HADOOP_HOME=/usr/local/hadoop-3.3.4
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
 
-  
存盘退出后,执行命令
source hadoop-env.sh,让配置生效

 -  
查看三个配置的三个环境变量

 
(2)编辑Hadoop核心配置文件 - core-site.xml
- 执行命令:
vim core-site.xml

 
<configuration>
    <!--用来指定hdfs的老大-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <!--用来指定hadoop运行时产生文件的存放目录-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop-3.3.4/tmp</value>
    </property>    
</configuration>
 
- 由于配置了IP地址主机名映射,因此配置HDFS老大节点可用
hdfs://master:9000,否则必须用IP地址hdfs://192.168.1.101:9000

 
(3)编辑HDFS配置文件 - hdfs-site.xml
- 执行命令:
vim hdfs-site.xml

 - 可以不用设置名称节点的目录、数据节点的目录以及辅助名称节点
 
<configuration>
    <!--设置名称节点的目录-->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop-3.3.4/tmp/namenode</value>
    </property>
    <!--设置数据节点的目录-->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop-3.3.4/tmp/datanode</value>
    </property>
    <!--设置辅助名称节点-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
    </property>
    <!--hdfs web的地址,默认为9870,可不配置-->
    <!--注意如果使用hadoop2,默认为50070-->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>0.0.0.0:9870</value>
    </property>
    <!--副本数,默认为3,可不配置-->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <!--是否启用hdfs权限,当值为false时,代表关闭-->
    <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>
</configuration>
 
(4)编辑MapReduce配置文件 - mapred-site.xml
- 执行命令:
vim mapred-site.xml

 
<configuration>
    <!--配置MR资源调度框架YARN-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <property>
        <name>mapreduce.map.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <property>
        <name>mapreduce.reduce.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
</configuration>
 
- 后三个属性如果不设置,在运行Hadoop自带示例的词频统计时,会报错:
Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster 
(5)编辑yarn配置文件 - yarn-site.xml
- 执行命令:
vim yarn-site.xml

 
<configuration>
    <!--配置资源管理器:集群master-->
    <property>        
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <!--配置节点管理器上运行的附加服务-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!--关闭虚拟内存检测,在虚拟机环境中不做配置会报错-->
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
</configuration>
 
(6)编辑workers文件确定从节点
- hadoop-2.x里配置slaves文件,hadoop-3.x里配置workers文件
 - 通过workers文件定义从节点,根据集群规划,有两个从节点:slave1与slave2
 - 执行命令:
vim workers

 - 如此配置,数据节点在slave1和slave2上,master上就不会有数据节点。当然也可以将master加到workers文件里,那样master上也会有数据节点。
 
2、在slave1虚拟机上安装配置hadoop
(1)将master虚拟机上的hadoop分发到slave1虚拟机
- 执行命令:
scp -r $HADOOP_HOME root@slave1:$HADOOP_HOME

 - 在slave1虚拟机上查看分发的hadoop

 
(2)将master虚拟机上环境配置文件分发到slave1虚拟机
- 执行命令:
scp /etc/profile root@slave1:/etc/profile

 
(3)在slave1虚拟机上让环境配置生效
- 切换到slave1虚拟机,执行命令:
source /etc/profile

 
3、在slave2虚拟机上安装配置hadoop
(1)将master虚拟机上的hadoop分发到slave2虚拟机
- 执行命令:
scp -r $HADOOP_HOME root@slave2:$HADOOP_HOME

 - 在slave2虚拟机上查看分发的hadoop

 
(2)将master虚拟机上环境配置文件分发到slave2虚拟机
- 执行命令:
scp /etc/profile root@slave2:/etc/profile

 
(3)在slave2虚拟机上让环境配置生效
- 切换到slave2虚拟机,执行命令:
source /etc/profile

 
(二)格式化文件系统
- 初次启动HDFS集群时,必须对主节点进行格式化处理。
 - 执行命令:
hdfs namenode -format

 - 查看名称节点格式化成功的信息

 
(三)启动和关闭Hadoop集群
1、主节点上启动hadoop集群
- 执行
start-all.sh命令,一起启动hdfs和yarn服务,也可以分开启动两种服务。 
(1)启动hdfs服务
-  
执行命令:
start-dfs.sh

 -  
一个名称节点(namenode)——老大,在master虚拟机上;两个数据节点(datanode)——小弟,在slave1与slave2虚拟机上。辅助名称节点(secondary namenode)的地址是
master,因为在hdfs-site.xml文件里配置了辅助名称节点。

 -  
此时查看三个虚拟机的进程



 
(2)启动yarn服务
- 执行命令:
start-yarn.sh

 - 启动了YARN守护进程;一个资源管理器(resourcemanager)在master虚拟机上,两个节点管理器(nodemanager)在slave1与slave2虚拟机上
 - 执行命令
jps查看master虚拟机的进程,只有NameNode、SecondaryNameNode和ResourceManager

 - 查看slave1和slave2上的进程,只有NodeManager和DataNode


 
2、停止Hadoop集群
- 在master虚拟机上执行命令:
stop-all.sh(相当于同时执行了stop-dfs.sh与stop-yarn.sh)

 - 当然,我们可以分开使用
stop-dfs.sh与stop-yarn.sh来停止hdfs和yarn服务 - 再次启动Hadoop服务后,采用分开方式停止Hadoop集群

 
三、归纳总结
- 回顾本节课所讲的内容,并通过提问的方式引导学生解答问题并给予指导。
 
四、上机操作
- 形式:单独完成
 - 题目:安装配置hadoop集群
 - 要求:让学生自己动手进行Hadoop集群配置、格式化文件系统以及启动和关闭Hadoop集群的操作,以此来巩固本节的学习内容。写一篇CSDN博客,记录操作过程。
 










