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 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的地址
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