1. 配置文件简介
首先,在hadoop官网中可以看到,hadoop有四个核心模块,如下图:四个核心模块分别是:
- Hadoop Common (公共的工具,为其他模块提供支撑)
- Hadoop Distributed File System (HDFS) (是一个分布式文件系统,提供高吞吐量数据存储)
- Hadoop YARN (是一框架,负责任务调度和集群资源管理)
- Hadoop MapReduce (负责大数据集合的并行计算)
然而,我们安装完Hadoop的安装包后,在etc/hadoop目录中,可以看到全部的配置文件如下
[root@hadoop101 hadoop]# pwd
/opt/module/hadoop-2.7.2/etc/hadoop
[root@hadoop101 hadoop]# ll
total 156
-rw-r--r--. 1 10011 10011 4436 Jan 26 2016 capacity-scheduler.xml
-rw-r--r--. 1 10011 10011 1335 Jan 26 2016 configuration.xsl
-rw-r--r--. 1 10011 10011 318 Jan 26 2016 container-executor.cfg
-rw-r--r--. 1 10011 10011 1066 Feb 13 22:27 core-site.xml
-rw-r--r--. 1 10011 10011 3670 Jan 26 2016 hadoop-env.cmd
-rw-r--r--. 1 10011 10011 4236 Feb 14 10:16 hadoop-env.sh
-rw-r--r--. 1 10011 10011 2598 Jan 26 2016 hadoop-metrics2.properties
-rw-r--r--. 1 10011 10011 2490 Jan 26 2016 hadoop-metrics.properties
-rw-r--r--. 1 10011 10011 9683 Jan 26 2016 hadoop-policy.xml
-rw-r--r--. 1 10011 10011 880 Feb 14 10:17 hdfs-site.xml
-rw-r--r--. 1 10011 10011 1449 Jan 26 2016 httpfs-env.sh
-rw-r--r--. 1 10011 10011 1657 Jan 26 2016 httpfs-log4j.properties
-rw-r--r--. 1 10011 10011 21 Jan 26 2016 httpfs-signature.secret
-rw-r--r--. 1 10011 10011 620 Jan 26 2016 httpfs-site.xml
-rw-r--r--. 1 10011 10011 3518 Jan 26 2016 kms-acls.xml
-rw-r--r--. 1 10011 10011 1527 Jan 26 2016 kms-env.sh
-rw-r--r--. 1 10011 10011 1631 Jan 26 2016 kms-log4j.properties
-rw-r--r--. 1 10011 10011 5511 Jan 26 2016 kms-site.xml
-rw-r--r--. 1 10011 10011 11237 Jan 26 2016 log4j.properties
-rw-r--r--. 1 10011 10011 951 Jan 26 2016 mapred-env.cmd
-rw-r--r--. 1 10011 10011 1380 Feb 14 12:03 mapred-env.sh
-rw-r--r--. 1 10011 10011 4113 Jan 26 2016 mapred-queues.xml.template
-rw-r--r--. 1 root root 1179 Feb 14 14:25 mapred-site.xml
-rw-r--r--. 1 10011 10011 758 Jan 26 2016 mapred-site.xml.template
-rw-r--r--. 1 10011 10011 10 Jan 26 2016 slaves
-rw-r--r--. 1 10011 10011 2316 Jan 26 2016 ssl-client.xml.example
-rw-r--r--. 1 10011 10011 2268 Jan 26 2016 ssl-server.xml.example
-rw-r--r--. 1 root root 0 Feb 14 14:06 vim
-rw-r--r--. 1 10011 10011 2250 Jan 26 2016 yarn-env.cmd
-rw-r--r--. 1 10011 10011 4564 Feb 14 12:05 yarn-env.sh
-rw-r--r--. 1 10011 10011 1201 Feb 14 14:32 yarn-site.xml
[root@hadoop101 hadoop]#
下面把四个模块和这些配置文件做一个简单的对应关系列表:
模块 | 配置文件名 | 环境变量配置脚本 |
---|---|---|
Hadoop Common | core-site.xml | hadoop-env.sh |
HDFS | hdfs-site.xml | - |
YARN | yarn-site.xml | yarn-env.sh |
MapReduce | mapred-site.xml | mapred-env.sh |
2. Hadoop三种运行模式
- 单机模式
不需要启动任何守护进程,所有的程序都直接运行在同一个JVM上执行。在独立模式下调试MR程序非常高效方便。所以一般该模式主要是在学习或者开发阶段调试使用 。
- 伪分布运行模式
Hadoop的所有守护进程都运行在一台机器上,模拟一个小规模的集群,换句话说,可以配置一台机器的Hadoop集群,伪分布式是完全分布式的一个特例。
3、分布式运行模式
Hadoop守护进程分散运行在一个集群上。
注意:所谓分布式要启动守护进程 ,即:使用分布式hadoop时,要先启动一些准备程序进程,然后才能使用比如start-dfs.sh start-yarn.sh。而本地模式不需要启动这些守护进程
3. 三种运行模式与配置文件关系
下表是三种运行模式的“集群”所需要的最小化必需配置:
组件名称 | 配置文件 | 属性名称 | 本地模式 | 伪分布式 | 完全分布式 |
---|---|---|---|---|---|
Common | core-site.xml | fs.defaultFs指定HDFS中NameNode的地址
|
file:///(默认) | hdfs://localhost/ | hdfs://nanmenode |
HDFS | hdfs-site.xml | dfs.replication指定HDFS副本的数量
|
N/A | 1 | 3(默认) |
MapReduce | mapred-site.xml | mapreduce.framework.name 指定MR运行在YARN上
|
local(默认) | yarn | yarn |
Yarn | yarn-site.xml | yarn.resoucemanager.hostname指定YARN的ResourceManager的地址
|
N/A | localhost | resoucemanager |
Yarn | yarn-site.xml |
yarn.nodemanager.aux-services Reducer获取数据的方式
|
N/A | mapreduce_shuffle | maperduce_shuffle |