hadoop01-概述

第一章 Hadoop概述

1.1 什么是大数据

1. 大数据的概念

大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

2. 大数据的特点

可以用IBM曾经提出的"5V"来描述大数据的特点:

  • Volume(大量)

    采集、存储和计算的数据量都非常大。基于IDC的报告预测,从2013年到2020年,全球数据量会从4.4ZB猛增到44ZB!而到了2025年,全球会有163ZB的数据量。

  • Velocity(高速)

    数据的创建、存储、分析都需要被高速处理。比如电商网站的个性化推荐尽可能要求实时完成推荐,这也是大数据区别于传统数据挖掘的显著特征。

  • Variety(多样)

    数据形式和来源多样化。包括结构化数据,半结构化数据,非结构化数据,具体表现为,网络日志、音频、视频、图片、地理位置等等。

  • Veracity(真实)

    确保数据真实性,才能获取数据有效的价值。

  • Value(低价值)

    数据价值密度低,互联网产生的大量数据都是无效的低价值的,从海量数据里挖掘出价值,是大数据时代最需要解决的难题。

3. 大数据的运用场景

仓储物流、电商零售、汽车、电信、生物医学、人工智能、智慧城市等等领域。

1.2 什么是Hadoop

Hadoop是由apache基金会发布的一个分布式基础架构,主要为了解决海量数据存储和分析计算的问题。
在这里插入图片描述

1. 狭义的Hadoop

指Hadoop框架,由三个部分组成:

  • HDFS:分布式文件系统,用于存储
  • MapReduce:分布式计算框架,用于计算
  • Yarn:资源调度框架,用于协调资源

2. 广义的Hadoop

指Hadoop生态圈,除了Hadoop之外还包括了一些辅助框架,如:

  • Flume:日志数据采集
  • Sqoop:关系型数据库数据采集
  • hive:基[Hadoop的一个数据仓库工具
  • Hbase:一个分布式的、面向列的开源数据库

1.3 Hadoop的起源和发展

1.起源

  • hadoop起源于Nutch

    Nutch是一个开源的搜索引擎,它提供了我们运行自己的搜索引擎所需的全部工具,包括全文搜索和Web爬虫。但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题

  • 2003年、2004年谷歌发布两篇论文GFS和MapReduce,提供了可行的解决方案。GFS,可用于处理海量网页的存储;MapReduce,可用于处理海量网页的索引计算问题。

  • Google的三篇论文(三驾马车)

    GFS:Google的分布式文件系统(Google File System)MapReduce:Google的分布式计算框架

    BigTable:大型分布式数据库

    发展演变:

    GFS —> HDFS

    Google MapReduce —> Hadoop MapReduce

    BigTable —> HBase

  • Doug Cutting等人用2年的业余时间实现了DFS和MapReduce机制,使Nutch性能飙升。

  • 2005年,Hadoop 作为Lucene的子项目Nutch的一部分引入Apache

  • 2006年,Hadoop从Nutch剥离出来独立

  • 2008年,Hadoop成为Apache的顶级项目

  • Hadoop这个名字来源于Hadoop之父Doug Cutting儿子的毛绒玩具象

2. 发展

  • 0.x 系列版本:Hadoop当中最早的一个开源版本,在此基础上演变而来的1.x以及2.x的版本

  • 1.x 版本系列:Hadoop版本当中的第二代开源版本,主要修复0.x版本的一些bug等

  • 2.x 版本系列:架构产生重大变化,引入了yarn平台等许多新特性

  • 3.x 版本系列:EC技术、YARN的时间轴服务等新特性

1.4 hadoop的特点

1.有点

  • 扩展能力(Scalable)

    Hadoop的数据存储和计算都在集群中进行,集群可以方便的扩展到数以千计节点。

  • 低成本(Economical)

    Hadoop通过普通廉价的机器组成服务器集群处理数据,对节点机器没有太多性能要求。

  • 高效率(Efficient)

    分布式并行处理数据,使得处理熟读非常快。

  • 可靠性(Reliable)

    多副本策略,保证数据安全避免丢失,失败的计算任务重新自动分配部署。

2. 缺点

  • 不适用于低延迟数据访问。

  • 不能高效存储大量小文件。

  • 不支持多用户写入并任意修改文件。

1.5 Apache Hadoop的组成

Hadoop=HDFS(分布式文件系统)+MapReduce(分布式计算框架)+Yarn(资源协调框架)+Common模块

1. Hadoop HDFS

Hadoop Distribute File System ,一个高可靠、高吞吐量的分布式文件系统,采用分而治之的思想,将数据拆分为数据块,分别存储。HDFS主要作用:数据切割、制作副本、分散储存。

Hadoop HDFS的角色:

  • NameNode(nn): 存储文件的元数据,比如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等

  • SecondaryNameNode(2nn): 辅助NameNode更好的工作,用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据快照。

  • DataNode(dn): 在本地文件系统存储文件块数据,以及块数据的校验

既是角色名、也是进程名,也指代所在计算机节点名称。

2. Hadoop MapReduce

一个分布式的离线并行计算框架,主要作用:拆解任务、分散处理、汇整结果。MapReduce计算= Map阶段 + Reduce阶段,Map阶段就是“分”的阶段,并行处理输入数据; Reduce阶段就是“合”的阶段,对Map阶段结果进行汇总。

3. Hadoop Yarn

作业调度与集群资源管理的框架
在这里插入图片描述

Hadoop Yarn 的角色:

  • ResourceManager(rm): 处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度;
  • NodeManager(nm): 单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令;
  • ApplicationMaster(am): 数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。
  • Container: 对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。
  • ResourceManager是老大,NodeManager是小弟,ApplicationMaster是计算任务专员。

既是角色名、也是进程名,也指代所在计算机节点名称。

4. Hadoop Common

支持其他模块的工具模块(Configuration、RPC、序列化机制、日志操作)

任务运行相关的信息。

  • ResourceManager是老大,NodeManager是小弟,ApplicationMaster是计算任务专员。

既是角色名、也是进程名,也指代所在计算机节点名称。

4. Hadoop Common

支持其他模块的工具模块(Configuration、RPC、序列化机制、日志操作)

喜欢可以订阅专栏: 大数据笔记之Hadoop
下一篇: Hadoop-HDFS介绍

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值