Hadoop2.0介绍

Hadoop2.0介绍

Hadoop是 apache 的开源 项目,开发的主要目的是为了构建可靠,可拓展 scalable ,分布式的系 统, hadoop 是一系列的子工程的 总和,其中包含
1. hadoop common : 为其他项目提供基础设施
2. HDFS :分布式的文件系 统
3. MapReduce : A software framework for distributed processing of large data sets on compute clusters 。一个 简化分布式编程的框架。
4. 其他工程包含: Avro( 序列化系 统 ) , Cassandra( 数据 库项目 ) 等 

Hadoop,以 Hadoop 分布式文件系统( HDFS ,Hadoop Distributed Filesystem )和 MapReduce ( Google MapReduce 的开源实现)为核心的 Hadoop 为用户提供了系统底层细节透明的分布式基础架构。
   对于 Hadoop 的集群来讲,可以分成两大类角色: Master 和 Salve 。一个 HDFS 集群是由一个 NameNode 和若干个 DataNode 组成的。其中 NameNode 作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的 DataNode 管理存 储的数据。 MapReduce 框架是由一个 单独运行在主节点上的 JobTracker 和 运行在每个集群从节点的 TaskTracker 共同 组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。当一个 Job 被提交 时, JobTracker 接收到提交作 业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控 TaskTracker 的 执行。
  从上面的介 绍可以看出, HDFS 和 MapReduce 共同 组成了 Hadoop 分布式系 统体系结构的核心。 HDFS 在集群上 实现分布式文件系统, MapReduce 在集群上 实现了分布式计算和任务处理。 HDFS 在 MapReduce 任 务处理过程中提供了文件操作和存储等支持, MapReduce 在 HDFS 的基 础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了 Hadoop 分布式集群的主要任 务。



为什么要使用2.0版本(来自董的博客)

该版本提供了一些新的、重要的功能,包括:
• HDFS HA ,当前只能 实现人工切换。
Hadoop HA 分支 merge 进了该版本,并支持热切,主要特性包括:
( 1 )      NN 配置文件有改变,使得配置更加简单
( 2 )      NameNode 分 为两种角色: active NN 与 standby NN , active NN 对外提供读写服务,一旦出现故障,便切换到 standby NN 。
( 3 )      支持 Client 端重定向,也就是 说,当 active NN 切 换到 standby NN 过程中, Client 端所有的 进行时操作都可以无缝透明重定向到 standby NN 上, Client 自己感 觉不到切换过程。
( 4 )      DN 同 时向 active NN 和 standby NN 汇报 block 信息。
具体 设计文档参考: https://issues.apache.org/jira/browse/HDFS-1623
当前 Hadoop HA 只能 实现人工切换,该功能在某些情况下非常有用,比如,对 NN 进行升级时,先将 NN 切 换到 standby NN ,并 对之前的 active NN 进行升级,升级完成后,再将 NN 切 换至升级后的 NN 上,然后 对 standby NN 进行升级。

• YARN ,下一代 MapReduce 这是一套资源统一管理和调度平台,可管理各种计算框架,包括 MapReduce 、 Spark 、 MPI 等。
YARN 是一套 资源统一管理和调度平台,可管理各种计算框架,包括 MapReduce , Spark , MPI 等。尽管它是完全重写而成,但其思想是从 MapReduce 衍化而来的,并克服了它在 扩展性和容错性等方面的众多不足。具体参考:
http://hadoop.apache.org/common/docs/r0.23.0/hadoop-yarn/hadoop-yarn-site/YARN.html
• HDFS Federation ,允 许 HDFS 中存在多个 NameNode ,且每个 NameNode 分管一部分目 录,而 DataNode 不 变,进而缩小了故障带来的影响范围,并起到一定的隔离作用。
传统 HDFS 是 master/slave 结构,其中, master (也就是 NameNode )需要存 储所有文件系统的元数据信息,且所有文件存储操作均需要访问多次 NameNode ,因而 NameNode 成 为制约扩展性的主要瓶颈所在。为了解决该问题,引入了 HDFS Federation ,允 许 HDFS 中存在多个 NameNode ,且每个 NameNode 分管一部分目 录,而 DataNode 不 变,也就是 “ 从中央集权 专政改为各个地方自治 ” , 进而缩小了故障带来的影响范围,并起到一定的隔离作用。具体参考:
http://dongxicheng.org/mapreduce-nextgen/nextgen-mapreduce-introduction/
• 基准性能测试
该版本中为 HDFS 和 YARN 添加了性能的基准 测试集,其中 HDFS 测试包括:
( 1 )      dfsio 基准 测试 HDFS I/O 读写性能
( 2 ) slive 基准 测试 NameNode 内部操作的性能
( 3 ) scan 基准 测试 MapReduce 作 业访问 HDFS 的 I/O 性能
( 4 )      shuffle 基准 测试 shuffle 阶段性能
( 5 )      compression 基准 测试 MapReduce 作 业中间结果和最终结果的压缩性能
( 6 )      gridmix-V3 基准 测试集群吞吐率
YARN     测试包括 :
( 1 )      ApplicationMaster 扩展性基准测试
主要 测试调度 task/container 的性能。与 1.0 版本比 较,大约快 2 倍。
( 2 )      ApplicationMaster 恢复性基准 测试
测试 YARN 重 启后,作业恢复速度。稍微解释一下 ApplicationMaster 恢复作 业的功能:在作业执行过程中, Application Master 会不断地将作 业运行状态保存到磁盘上,比如哪些任务运行完成,哪些未完成等,这样,一旦集群重启或者 master 挂掉,重 启后,可复原各个作业的状态,并只需重新运行未运行完成的哪些任务。
( 3 )      ResourceManager 扩展性基准测试
通 过不断向 Hadoop 集群中添加 节点测试 RM 的 扩展性。
( 4 )      小作 业基准测试
专门测试批量小作业的吞吐率
具体参考:
http://hortonworks.com/blog/delivering-on-hadoop-next-benchmarking-performance/
• 通过 protobufs 来提供HDFS 和YARN 的兼容性
Wire-compatibility for both HDFS & YARN
Hadoop RPC采用了Hadoop自己的一套序列化框架 对 各种 对 象 进 行序列化反序列,但存在一个 问题 : 扩 展性差,很 难 添加新的数据类型同 时 保 证 版本兼容性。 为 此,Hadoop 2.0将数据类型模 块 从RPC中独立出来,成 为 一个独立的可插拔模 块 , 这样 允 许 用 户 根据个人 爱 好使用各种序列化/反序列化框架,比如thrift,arvo,protocal Buffer等,默 认 情况采用Protocal Buffer。
http://hortonworks.com/blog/rpc-improvements-and-wire-compatibility-in-apache-hadoop/
除了以上五个特性外, 还 有两个非常重要的特性正在研 发 中,分别是:
• HDFS快照
用 户 可在任意 时间对 HDFS做快照, 这样 ,在HDFS出 现 故障 时 ,可将数据恢复到某个 时间 点的状 态 。具体参考:
http://hortonworks.com/blog/snapshots-for-hdfs/
• HDFS HA自动 切换
前面介 绍 的第一个功能“HDFS HA”当前只能 实现 人工切 换 ,也就是 说 ,管理 员运 行某个命令,使得acitve NN切 换 到standby NN上。以后将支持自 动 切 换 ,也就是 说 , 监 控模 块 可 检测 出active NN何 时 出 现 故障,并自 动 将之切 换 到standby NN上, 这样 可大大 较 小Hadoop集群 运维 人 员 的工作量。具体参考:
http://s.apache.org/hdfs-autofailover

你可能感兴趣的:(hadoop2)