【大数据学习】写给前端看的大数据技术之Hadoop起源

466 阅读5分钟

freysteinn-g-jonsson-s94zCnADcUs-unsplash.jpg

概要:由于部门前端业务需求减少,所以,后面会做一些大数据相关的工作,包括集群的部署测试,性能调优、功能开发之类的工作,所以之后会花大量的时间学习大数据相关的知识,对于知识的学习最有效的方式无疑是能够输出你所学的知识,除了实践操作之外,整理所学的知识脉络也尤为重要,后面会边学边整理总结,一方面记录梳理总结所学知识,另外一方面,如果能对同样是前端又对大数据感兴趣的小伙伴们提供一点点帮助或者参考那就再好不过了。

什么是大数据

其实从事前端以来很多时间都在大数据部门,各种大数据的名词概念耳熟能详,什么Spark,Kafka,Hadoop集群,MapReduce,实时计算,批处理,分布式,高可用,但是你要问我什么是大数据?对呀,什么是大数据。

什么是数据

在讨论什么是大数据之前,我们先讨论下什么是数据。

对于从事Web的我们来说数据就可能是页面上用户输入的文本,填的表单,亦或是前后端交互相互之间传递的JSON串,再往大了说,在计算机领域,数据是以二进制的形式存储和处理,利用算法工具进行分析和利用;再大一点,在日常生活中,数据是可以被采集、记录、存储、处理、分析的各种不同形式的信息。从形态上它可以是文本,图像,声音和视频,从目的上来讲,数据帮助我们来了解现象、支持决策、解决问题,它是事实的表述,观察的结果,客观事物规律的总结等等。后面我们以在计算机中被处理的数据作为核心讨论对象

2da329464bbfc7631b3c1e43ecd660e.png

数据是为了帮助我们解决问题,所以我们需要对其进行加工处理,那么,首先要做的是对数据进行存储,我们先一起看下计算机中存储数据的单位以及之间的换算关系:

    8Bit = 1Byte   1024Byte = 1KB  1024KB = 1MB    1024MB = 1GB  
    1024GB = 1TB   1024TB = 1PB    1024PB = 1EB    1024EB = 1ZB   
    1024ZB = 1YB   1024YB = 1BB    1024BB = 1NB    1024BB = 1DB

我们日常生活中最多GB,TB。但是在大数据领域可能起步都是TB、PB。 所以要习惯这些单位,特别是比较大的单位。

直观感受,大数据就是大的数据,那么这个大字怎么理解,怎样的数据才算大?

数据怎样才算大

为了搞清楚数据怎样才算大,搜了百度,Google,问了ChatGPT。总结成我所能理解的大致如下:

  • 不用大数据技术就不法处理(采集、加工、分析)的数据就是大数据(有点循环论证的嫌疑)
  • 数据体量大(Volumn),通俗理解占用计算机硬盘的空间大。
  • 数据种类多(Variety),结构化,非结构化数据。
  • 低价值密度(Value),另外一个侧面反映数据的体量大,非常规手段不能处理,例如数据挖掘,机器学习
  • 速度快(Velocity),通俗理解就是处理数据要高效、因为你要应对数据超快的增长,所以需要更快速的处理

上面就是对这个字的不同维度的理解,所谓的4V(Volumn、Variety、Value、Velocity),看看就好

dd9472254aafd14a3847ce3b7f4e3b3.png

上面有一句话很重要不用大数据的技术就无法处理的数据叫大数据,那么问题来了,为什么传统的技术处理不了,为了搞明白这个问题,可能我们要先搞清楚处理数据包含哪几个部分,数据的处理方式纷繁复杂,但抽象概括,可能核心要素两点,存储和计算。

所以我们大数据要解决的问题就是,如何存储具有4V特性的数据,然后如何对这些数据进行高效的计算。针对这个问题,Google在2003、2004、2006年,分别抛出了三篇重磅论文,也就是后来人们常说的“大数据”的三架马车:GFS、MapReduce和Bigtable。

怎样解决大数据量的问题

  • GFS:主要解决存储问题,一台机器不够,那就联合多台机器进行分布式存储。
  • MapReduce:主要解决计算问题,一台机器无法计算,同样利用多台计算进行分布式计算。
  • Bigtable:主要是解决数据的高性能随机读写问题。

我理解,这三篇论文真正的拉开了整个大数据快速发展的大幕。鼎鼎大名的Hadoop就诞生于Google的第二篇论文发表之后,雅虎的工程师Doug Cutting想要开发一种能够处理大规模数据的分布式系统,以解决雅虎在处理搜索引擎数据时遇到的问题。他参考了Google的GFS和MapReduce技术,并结合了自己的一些想法,最终开发出了Hadoop分布式文件系统(HDFS)和Hadoop分布式计算框架(MapReduce)。Hadoop后来就成为大数据处理领域重要的基石,被广泛应用。

这里需要重点说明的一点,也是困扰我很久的问题,就是你周边的人都在说Hadoop,而且还是在不同的场景下,以至于完全搞不清楚他们说的是什么,后来才明白,Hadoop原来有侠义和广义之分。 c6b6442f62718421d0646f5e6091665.png

  • 狭义的Hadoop:就是指Apache的开源软件(开源之后提交给Apache基金会,成为其顶级项目),说白了就是用java开发的开源软件,主要包含三个核心组件HDFS、YARN和MapReduce,就单只一个软件。
  • 广义的Hadoop:泛指围绕Hadoop打造的大数据生态圈,如下图所示的大数据生态圈

Ch09-Fig13.webp

在我们初步了解了Hadoop的起源后,下一节会重点梳理Hadoop的相关知识脉络。

本节重点讨论了数据,大数据,以及Hadoop出现的契机和要解决的问题,完全是学习整理,如有不正确的地方还请大家多多包涵和指正。