文章目录
一、Hadoop目录文件结构
查看hadoop
的目录结构:
[wzq@hadoop102 hadoop-3.1.3]$ ll
总用量 176
drwxr-xr-x. 2 wzq wzq 183 9月 12 2019 bin
drwxr-xr-x. 3 wzq wzq 20 9月 12 2019 etc
drwxr-xr-x. 2 wzq wzq 106 9月 12 2019 include
drwxr-xr-x. 3 wzq wzq 20 9月 12 2019 lib
drwxr-xr-x. 4 wzq wzq 288 9月 12 2019 libexec
-rw-rw-r--. 1 wzq wzq 147145 9月 4 2019 LICENSE.txt
-rw-rw-r--. 1 wzq wzq 21867 9月 4 2019 NOTICE.txt
-rw-rw-r--. 1 wzq wzq 1366 9月 4 2019 README.txt
drwxr-xr-x. 3 wzq wzq 4096 9月 12 2019 sbin
drwxr-xr-x. 4 wzq wzq 31 9月 12 2019 share
重要目录:
bin目录
:存放对Hadoop
相关服务(hdfs,yarn,mapred
)进行操作的脚本ect目录
:Hadoop
的配置文件目录,存放Hadoop
的配置文件lib目录
:存放Hadoop
的本地库(对数据进行压缩解压缩功能)sbin目录
:存放启动或停止Hadoop
相关服务的脚本share目录
:存放Hadoop
的依赖jar
包、文档、和官方案例
二、Hadoop的运行模式
Hadoop
的运行模式包括:本地模式、伪分布式以及完全分布式
- 本地模式:单机运行,只是用来演示一下官方案例。 生产环境不用
- 伪分布式模式:也是单机运行,但是具备
Hadoop
集群的所有功能,一台服务器模拟一个分布式的环境, 个别缺钱的公司用来测试,生产环境不用 - 完全分布式模式:多台服务器组成分布式环境, 生产环境不用
本人学习阶段全部使用伪分布式模式
三、集群配置规划
需要注意的是:
NameNode
和SecondaryNameNode
不安装在同一个虚拟机ResourceManager
很消耗内存,不和NameNode
与SecondaryNameNode
配置在同一台虚拟机
四、配置文件说明
只要用户想修改某一默认配置文件中的配置,才需要修改自定义配置文件,更改相应属性值
1、默认配置文件
默认文件 | 文件存放在Hadoop的jar包中的位置 |
---|---|
core-default.xml | hadoop-common-3.1.3,jar/core-default.xml |
hdfs-default.xml | hadoop-hdfs-3.1.3,jar/hdfs-default.xml |
yarn-default.xml | hadoop-yarn-common-3.1.3,jar/yarn-default.xml |
mapred-default.xml | hadoop-mapred-client=core-3.1.3,jar/mapred-default.xml |
2、用户自定义配置文件
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml
均存放在$HADOOP_HOME/etc/hadoop
这个路径上,用户可以根据项目需求重新进行修改配置
五、配置集群
进入到$HADOOP_HOME/etc/hadoop
:
1、核心配置文件 core-site.xml
vim core-site.xml;
将以下代码插入到<configuration></configuration>
标签中
<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:8020</value>
</property>
<!-- 指定 hadoop 数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
2、HDFS配置文件 hdfs-site.xml
vim hdfs-site.xml
将以下代码插入到<configuration></configuration>
标签中
<!-- nn web 端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop102:9870</value>
</property>
<!-- 2nn web 端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:9868</value>
</property>
3、YARN配置文件 yarn-site.xml
vim yarn-site.xml
将以下代码插入到<configuration></configuration>
标签中:
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>22528</value>
<discription>每个节点可用内存,单位MB</discription>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>1500</value>
<discription>单个任务可申请最少内存,默认1024MB</discription>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>16384</value>
<discription>单个任务可申请最大内存,默认8192MB</discription>
</property>
<!-- Site specific YARN configuration properties -->
<!-- 指定 MR 走 shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
RED_HOME</value>
</property>
4、MapReduce配置文件 mapred-site.xml
vim mapred-site.xml
将以下代码插入到<configuration></configuration>
标签中:
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.map.memory.mb</name>
<value>1500</value>
<description>每个Map任务的物理内存限制</description>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>3000</value>
<description>每个Reduce任务的物理内存限制</description>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx1200m</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx2600m</value>
</property>
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value>
</property>
5、集群分发配置文件
xsync /opt/module/hadoop-3.1.3/etc/hadoop/
效果如下:
然后去另外两台机器验证有没有分发成功