Hadoop
Hadoop 2.0提供分布式存储(HDFS)和分布式操作系统(Yarn)两大功能软件包
Hadoop 1.0项目模块
- Hadoop Common:支持其他模块的公用组件
- Hadoop Distributed File System(HDFS):Hadoop的分布式文件系统
- Hadoop MapReduce:分布式计算框架。
Common是联系HDFS和MapReduce的纽带,它一方面为另外两组件提供一些公用jar包,另一方面也是程序员访问其他两个模块的接口。
HDFS主要提供分布式存储服务。MapReduce模块主要负责资源管理、任务调度和MapReduce算法实现。
Hadoop工作环境的构建模式
- 单机模式:单机模式不需要与其他节点交互,因此不需要使用HDFS,直接读写本地的文件系统,该模式主要用于开发调试MapReduce程序的应用逻辑。
- 伪分布模式:伪分布模式也在一台单机上运行,但是用不同的进程模仿分布式运行中的各类节点。
- 分布式模式:在不同的机器上部署系统。
实际上,完全模式部署Hadoop时,最低需要两台机器(一个主节点,一个从节点)即可实现完全分布式模式部署。分布式模式部署中需要使用的机器并非一定是物理实体机器,实 际上,用户可以提供两台或多台实体机器,也可以提供两台或多台虚拟机器,即用户可以 使用虚拟化技术,将一台机器虚拟成两台或多台机器,并且虚拟后的机器和实体机器使用 上无任何区别,用户可认为此虚拟机就是实体机器。
Hadoop 2.0体系结构
Hadoop 2.0虽包含Common、HDFS、Yarn和MapReduce这四个模块,但实际对外提供 服务时,只能看到HDFS和Yarn,Common主要为其他模块提供服务,MapReduce其实只 是Yarn模块里Yarn编程的一种方式
Common
Common的定位是其他模块的公共组件,定义了程序员取得集群服务的编程接口,为 其他模块提供公用API。它里面定义的一些功能一般对其他模块都有效,通过设计方式, 降低了Hadoop设计的复杂性,减少了其他模块之间的耦合性,大大增强了Hadoop的健壮性。
Common不仅包含了大量常用API,同时它提供了mini集群、本地库、超级用户、服 务器认证和HTTP认证等功能,除了mini集群用于测试或快速体验,其他都是Hadoop功能里的基本模块
下面是Common模块里最常用的几个包。
org.apache.hadoop.conf:定义了Hadoop全局配置文件类。
org.apache.hadoop.fs:HDFS文件系统接口。
org.apache.hadoop.io:提供大量文件系统操作流。
org.apache.hadoop.security:Hadoop安全机制接口类。
org.apache.hadoop.streaming:其他语言编写的代码转化为Hadoop语言的接口。
org.apache.hadoop.util:常用类包,提供大量常用API。
org.apache.hadoop.examples:Hadoop示例代码包。
以Configuration为例,它是conf包下定义的类,用于指定Hadoop的某些配置参数,但 HDFS里配置文件类却是HdfsConfiguration类,Yarn里则是YarnConfiguration, HdfsConfiguration与YarnConfiguration皆继承自Configuration,它们两者之间并没有关系。
分布式文件系统 HDFS
Hadoop分布式文件系统HDFS可以部署在廉价硬件之上,能够高容错、可靠地存储海 量数据(可以达到TB甚至PB级)。它还可以和Yarn中的MapReduce编程模型很好地结合,为应用程序提供高吞吐量的数据访问,适用于大数据集应用程序
HDFS的定位是提供高容错、高扩展、高可靠的分布式存储服务,并提供服务访问接 口(如API接口、管理员接口)。 为提高扩展性