Hadoop总结

Hadoop相关概念

1、Hadoop简述

Hadoop是Apache的一个分布式计算开源框架,它可以运行于大中型集群的廉价硬件设备上,为应用程序提供了一组稳定可靠的接口。同时它是Google集群系统的一个开源项目总称。底层是Google文件系统(GFS)。

基于java语言构建的Hadoop框架实际上一种分布式处理大数据平台,其包括软件和众多子项目。在近十年中Hadoop已成为大数据革命的中心。

2、其子项目简述:

◎MapReduce 分布式数据处理模型和执行环境,运行于大型商用机集群。

◎HDFS 分布式文件系统,运行于大型商用机集群。

◎Pig 一种数据流语言和运行环境,用以检索非常大的数据集。Pig运行在MapReduce和HDFS 的集群上。

◎Hive 一个分布式、按列存储的数据仓库。Hive管理HDFS中存储的数据,并提供基于SQL 的查询语言(由运行时引擎翻译成MapReduce作业)用以查询数据。

◎ZooKeeper 一个分布式、可用性高的协调服务。ZooKeeper提供分布式锁之类的基本服务用于构建分布式应用。
◎Sqoop 在数据库和HDFS之间高效传输数据的工具。

◎Common 一组分布式文件系统和通用I/O的组件与接口(序列化、javaRPC和持久化数据结构)。

◎Avro 一种支持高效,跨语言的RPC以及永久存储数据的序列化系统。

3、Hadoop的优点

◎可扩展性:不论是存储的可扩展还是计算的可扩展都是Hadoop设计的根本。

◎经济:框架可以运行在任何普通的PC上。

◎可靠:分布式文件系统的备份恢复机制以及MapReduce的任务监控保证了分布式处理的可靠性。

◎高效:分布式分拣系统的高效数据交互实现以及MapReduce结合Local Data处理的模式,为高效处理海量的信息作了基础准备。

二 Hadoop的核心

Hadoop 的核心是HDFS和MapReduce。HDFS 实现存储,而MapReduce实现分析处理。HDFS 和MapReduce实现是完全分离的,并不是没有HDFS就不能MapReduce运算。

1、HDFS

1.1HDFS的基本概念

Hadoop跟其他云计算项目有共同点和目标:实现海量数据的计算。而进行海量计算需要一个稳定的,安全的数据容器,才有了Hadoop分布式文件系统(HDFS。HDFS是GFS的开源实现,是Hadoop的底层实现部分,存储Hadoop集群中所有存储节点上的文件。

数据块(block)

HDFS默认的最基本的存储单位是64M的数据块。和普通文件系统相同的是,HDFS中的文件是被分成64M一块的数据块存储的。不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间。

NameNode和DataNode

NameNode用来管理文件系统的命名空间,其将所有的文件和文件夹的元数据保存在一个文件系统树中。它还保存了一个文件包括哪些数据块,分布在哪些DataNode上。这些是在系统启动的时候从DataNode收集而成的。

DataNode是文件系统中真正存储数据的地方。

HDFS
构建一个非常庞大的分布式文件系统,在集群中节点失效是正常的。节点的数量在Hadoop 中不是固定的。单一的文件命名空间,保证数据的一致性,写入一次多次读取。典型的128MB 的数据块大小,每一个数据块在多个DataNode有复制。客户端通过NameNode得到数据块的位臵,直接访问DataNode获取数据。
文件操作

HDFS 并不是一个万能的文件系统。它的主要目的是支持以流的形式访问写入的大型文件。如果客户机想将文件写到 HDFS 上,首先需要将该文件缓存到本地的临时存储。如果缓存的数据大于所需的 HDFS 块大小,创建文件的请求将发送给 NameNode。NameNode 将以DataNode 标识和目标块响应客户机。同时也通知将要保存文件块副本的 DataNode。当客户机开始将临时文件发送给第一个 DataNode 时,将立即通过管道方式将块内容转发给副本DataNode。客户机也负责创建保存在相同 HDFS 名称空间中的校验和(文件。在最后的文件块发送之后,NameNode 将文件创建提交到它的持久化元数据存储

HDFS的适用情况

适用情况:

◎为以流式数据访问模式存储超大文件而设计的文件系统。

◎流式数据访问:HDFS建立的思想是一次写入、多次读取模式是最高效的。

◎商用硬件:不需要运行在昂贵并且高可靠的硬件上。

不适用情况:

◎大量的小文件。
◎低延迟数据访问。

◎多用户写入,任意修改。

2、MapReduce

2.1MapReduce概念

MapReduce是一种编程模型。Map/Reduce主要包括两个步骤:Map和Reduce。一个MapReduce 作业通常会把输入的数据集切分为若干独立的数据块,由map任务以完全并行的方式处理。框架会对map的输出进行排序,然后把结果输入给reduce任务。每一步都有Key-Value对作为输入和输出:

◎map阶段的Key-Value对的格式是由输入的格式决定的。

◎map阶段的输出Key-Value对的格式必须同reduce阶段的输入key-value对的合适相对应。

◎reduce过程中,将map过程中的输出作为其输入。

Hadoop学习总结

MapReduce数据流

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值