Hadoop-1-介绍

Hadoop-1-介绍

1、简介

Apache Hadoop软件库是一个框架,它使用简单的编程模型,通过分布式计算机集群,来处理大型数据集。

它旨在从单个服务器扩展到数千台计算机,同时每台计算机都可以提供本地计算和存储的功能。

每台计算机都有可能出现故障,Hadoop本身不是依靠硬件来提供高可用性,而是设计用于检测和处理应用层的故障,从而保证整个计算机集群可以提供高可用的服务。

2、发展历史

Doug Cutting,Hadoop之父,也是Lucene项目的创始人。

Lucene提供了基于Java的全文检索技术。

Nutch则是基于Lucene所开发的Web爬虫程序(搜索引擎)。

同时Google先后发表了三篇论文

2003年10月:GFS(The Google File System)

2004年12月:MapReduce(MapReduce: Simplified Data Processing on Large Clusters)

2006年11月:Bigtable(Bigtable: A Distributed Storage System for Structured Data)

从Nutch的0.8 release版本开始(25 July 2006),Nutch开始基于Hadoop架构。Doug Cutting把Nutch中的分布式文件系统以及实现MapReduce算法的代码独立出来,形成了一个新的开源项目,这就是Hadoop。

3、三大发行版本

1)Apache

这是最原始,也是最基础的版本,适合入门学习

2)Cloudera

CDH是Cloudera Hadoop的发行版,它完全开源,比Apache Hadoop在兼容性、稳定性和安全性上都有所增强

3)Hortonworks

HDP(Hortonworks Data Platform),完全开源,同时它也提供了一款开源的安装和管理系统

4、特性

1)高可靠性

Hadoop会维护多个工作数据的副本,同时在集群出现故障时,会对失败的节点进行重新分布处理

2)高扩展性

在集群间分配任务数据,可方便地扩展上千个节点

3)高效性

并行执行任务,提高任务的处理速度

5、组成

1)Hadoop Common

支持其他Hadoop模块的常用工具模块

2)Hadoop Distributed File System (HDFS™)

提供对应用程序数据的高吞吐量访问的分布式文件系统

3)Hadoop YARN

作业调度和集群资源管理的框架

4)Hadoop MapReduce

基于YARN的,并行处理大量数据的系统

5)Hadoop Ozone

Hadoop对象存储

6)Hadoop Submarine

Hadoop机器学习引擎

6、HDFS

HDFS,用于数据存储。它主要由三部分组成:

  1. NameNode(NN),存储文件的元数据,例如文件名、文件目录结构、文件属性(包括创建时间、文件权限和副本数)、每个文件的块列表和块列表所在的DataNode等
  2. DataNode(DN),在本地文件系统存储文件块数据,以及块数据的校验和
  3. Secondary NameNode(2NN),用于监控HDFS状态的后台辅助程序,它每隔一段时间就会获取HDFS元数据(NN)的快照

7、YARN

YARN,用于资源调度。它主要由四部分组成:

  1. Resource Manager,用于处理客户端请求,资源的分配和调度,启动和监控Application Master以及监控Node Manager
  2. Node Manager,单个节点上的资源管理,负责处理来自Resource Manager和Application Master的命令
  3. Application Master,负责数据的切分和任务的分配、监控与容错,以及为应用程序申请资源
  4. Container,对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息(容器技术)

8、MapReduce

MapReduce,用于计算。对输入数据(key/value 键值对)进行处理,并输出最终结果(key/value 键值对)

计算过程包括两部分:

  1. Map,将输入的数据转换为中间记录的各个任务,转换后的中间记录不需要与输入的数据类型保持一致。每个输入键值对可以映射到零个或多个输出键值对上
  2. Reduce,将映射的结果进行汇总,最终形成输出结果。它有3个主要阶段:shuffle,sort和reduce

一个MapReduce作业的输入输出类型:

(input) <k1, v1> -> map -> <k2, v2> -> combine -> <k2, v2> -> reduce -> <k3, v3> (output)

Google论文:

map      (k1, v1)   → list (k2,v2)
reduce (k2, list (v2) ) → list (v2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值