查看原文
其他

Hadoop 框架学习笔记之整体认知

SpringForAll社区 SpringForAll社区 2021-05-27

点击上方☝SpringForAll社区 轻松关注!

及时获取有趣有料的技术文章

Hadoop 框架学习笔记

  • 大数据技术解决什么问题?

主要解决海量数据存储和计算。

  • Hadoop的广义和狭义之分?

狭义:Hadoop 由三部分组成:HDFS:分布式文件系统存储  MapReduce:分布式离线计算框架 YARN:资源调度框架

广义:不仅是Hadoop框架,之外还有周边框架,比如 Flume:日志数据采集;Sqoop:关系型数据库的采集、导出;Hive:深度依赖Hadoop框架完成计算(SQL) Hbase:大数据领域的数据库

广义的Hadoop是一个大数据生态圈。

大数据简介

大数据的定义

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

大数据的特点

大数据的特点可以用IBM 曾经提出的 “5V”来描述,如下:

Volume Velocity Variety Veracity Value

  • 大量

采集、存储和计算的数据量都非常大。

计算机存储单位一般用B、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB来表示,换算关系:

1GB = 1024MB

1TB = 1024GB

1PB = 1024TB

1EB = 1024PB

1ZB = 1024EB

1YB = 1024ZB

1BB = 1024YB

1NB = 1024BB

1DB = 1024NB

以PB为例,PB级别数据量有多大?是怎样的一个概念?

假如手机播放MP3每分钟1MB,而1首歌曲的平均时长为4分钟,那么1PB存量的歌曲可以存放2000年。

1PB 相当于50%的全美学术研究图书馆书咨询内容。

(1)1986年,全球只有0.02EB也就是约21000TB的数据量

(2)2007 年,全球也就280EB,也就是约300000000的数据量,翻了14000倍

(3)这些年,由于移动互联网以及物联网的出现,各种终端设备接入,各种业务形式的普及,平均每40个月,全球的数据量就会翻倍!2012年,每天会产生2.5EB的数据量;

(4)基于IDC的报告预测,从2013年到2020年,全球数据量会从4.42ZB猛增加到44ZB!到了2025年,全球会有163ZB的数据量!全球的数据量已经大到爆炸了!传统的关系型数据库根本处理不了如此海量的数据!

  • 高速

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

  • 多样

数据形式和来源多样化,包括结构化、半结构化和非结构化数据,具体表现为网络日志、音频、视频、图片、地理位置信息等等,多类型的数据对数据的处理能力提出了更高的要求。

  • 真实

确保数据的真实性,才能保证数据分析的正确性。

  • 低价值

数据价值密度相对较劲,或者说是浪里淘沙却又弥足珍贵。互联网发展催生了大量的数据,信息海量,但是价值密度较低,如何结合业务逻辑并通过强大的机会来进行机器算法来挖掘数据价值,是大数据时代需要解决的问题,也是一个有难度的课题。

大数据的应用场景

随着大数据的发展,大数据技术已经广泛应用在众多行业,比如仓储物流、电商零售、汽车、电信、生物医学、人工智能、智慧城市等领域。包括在疫情防御中,大数据技术也发挥了重要的作用。

Hadoop 简介

什么是Hadoop?

Hadoop 是一个适合大数据的分布式存储和计算平台。

如前所属,狭义说Hadoop就是一个框架平台,广义上将Hadoop代表大数据的一个技术生态圈,包括很多其他软件框架。

Hadoop生态圈技术栈

  • Hadoop(HDFS+MapReduce+Yarn)

  • Hive数据仓库工具

  • HBase 海量列式非关系型数据库

  • Flume 数据采集工具

  • Sqoop ETL 工具

  • Kafka 高吞吐消息中间件

Hadoop 的起源

Hadoop 的发展历程可以用如下过程概述:

Nutch  -----> Google 论文(GFS、Mapreduce)

-----> Hadoop产生

------> 成为Apache顶级项目

------> Cloudera 公司成立(Hadoop快速发展)

  • Hadoop 最早起源于Nutch , Nutch 的创始人是Doug Cutting

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

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

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

GFS:Google的分布式文件系统(Google File System)

Mapreduce:Google的分布式计算框架

Bigtable:大型分布式数据库

发展演变关系:

GFS-->HDFS

Google Mapreduce ---> Hadoop Mapreduce

Bigtable --> Hbase

  • 随后,Google公布了部分GFS和Mapreduce思想的细节,Doug Cutting等人用2年的业余时间实现了GFS和Mapreduce机制,使Nutch性能飙升。

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

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

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

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

Hadoop的特点

  • 扩容能力

Hadoop是在计算机集群内分配数据并完成计算任务,集群可以方便的扩展数千个节点;

  • 低成本

Hadoop 通过普通廉价的机器组成服务器集群来分发以及处理数据,以至于成本很低;

  • 高效率

Hadoop 可以在节点之前动态并行的移动数据,使得速度非常快

  • 可靠性

能自动维护数据的多份复制,并且在任务失败后能自动的重新部署计算任务。

Hadoop的发行版本

目前Hadoop发行版本非常多,有Cloudera发行版、Hortonworks发行版、华为发行版、Intel 发行版,所有这些发行版均是基于Apache Hadoop 衍生出来的,之所以这么多版本,是由Apache Hadoop的开源协议决定的(任何人可以对其进行修改,并且作为开源或者商业产品发布/销售)

企业总主要用到的三个版本分别是:Apache Hadoop版本(最原始的,所有发行版均基于这个版本进行改进)、Cloudera版本(Cloudera's Distribution Including Apache Hadoop,简称"CDH")、Hortonworks版本(Hortonworks Data Platform,简称”HDP“)。

  • Apache Hadoop 原始版本

官网地址:http://hadoop.apache.org/

优点:拥有全世界的贡献,代码更新比较快

缺点:版本的升级,版本的维护,以及维护之间的兼容性,学习非常方便

Apache Hadoop所有软件的下载地址(包括各种历史版本):http://archive/apache.org/dist/

  • 软件收费版本CouderaManager CDH版本---生产环境使用

官网地址:http://ww.cloudera.com

Cloudera 主要是美国一家大数据公司在Apache开源的Hadoop版本上,通过自己的公司内部的各种补丁,实现版本之间的稳定运行,大数据生态圈的各个版本的软件都提供了对应的版本,解决了版本的升级困惑,版本兼容性等各种问题,生产换寄给你强烈推荐使用。

  • 免费开源版本HortonWorks HDP版本 -- 生产环境使用

官网地址:http://hortonworks.com

hortonworks 主要是雅虎主导的Hadoop开发的副总裁,带领二十几个核心成员以Hortonworks,核心产品软件HDP(ambari),HDF免费开源,整套的web管理界面,供我们可以通过web界面管理我们的集群状态,web管理界面软件HDF网址:http://ambari.apache.org/

Apache Hadoop版本更迭

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

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

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

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

Hadoop 的优缺点

Hadoop 的优点

  • Hadoop具有存储和处理数据能力的高可用性

  • Hadoop通过可用的计算机集群分配数据,完成存储和计算任务,这些集群可以方便的扩展到数以千计的节点中,具有高扩展性。

  • Hadoop能够在节点之间进行移动数据,并保证各个节点的动态平衡,处理速度非常快,具有高效性。

  • Hadoop 能够自动存储数据的多个副本,并且能够自动将失败的任务冲洗分配,绝具有高容错性。

Hadoop 的缺点

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

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

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


墙裂推荐

【深度】互联网技术人的社群,点击了解!



● 自从用了适配器模式,我的代码清爽多了!!!

● IntelliJ IDEA 2020.3 EAP 3 新特性

● 真实业务订单拆单架构与实战

● 双十一剁手了没?了解下电商系统订单配送模块的架构与设计



关注公众号,回复“spring”有惊喜!!!

如果资源对你有帮助的话


❤️给个「在看」,是最大的支持❤️

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存