学习目标:
1.掌握Hadoop集群配置
2.掌握格式化文件系统
3.掌握启动和关闭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_341
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-s