【大白话理解Hadoop】—— 一文了解Hadoop、HDFS、MapReduce

大家好,我是摇光~

最近一直在学习Hadoop,之前总是觉得Hadoop高深莫测,其实就是专业词带偏我们了。

Hadoop一点也不难,让我用大白话讲给你们,你们就知道了~

一、Hadoop是什么?

1、Hadoop是什么?
Hadoop是一个开源的分布式计算和存储框架。

  • 开源的:免费的
  • 分布式计算:例如一个统计数据的计算,分成几个计算机计算然后再合起来汇总。
  • 存储框架:将文件存储在各种计算机中,这样就可以存放很多数据了。

看到上面的解释,应该都明白了,其实Hadoop就是用很多计算机进行数据存储和数据计算的,也可以几台,几十台,甚至几千台计算机。所以其实Hadoop就相当于一个大型的计算机。

2、为什么要使用Hadoop?
大数据时代产生的数据都是TB、PB等级别的,所以一台计算机已经无法满足数据分析、数据存储的要求了,所以我们需要像Hadoop这样的系统来处理大数据,使用大量的计算机同时运算,以此来加快运算速度。

我用一个例子来再解释一下为什么用Hadoop。

比如我们百度里面这么多文章、这么多的内容。

按照之前传统的方式,就是使用一台计算机进行存储和计算,如果你想查询东西,要在海量的数据查找,你必须提高计算机的性能,那样的话计算机的建造和维护成本巨高。

如果使用Hadoop,Hadoop只需要将数百个廉价的计算机联合起来,同步进行数据查询,这样不仅提高的搜索效率,还降低了建造和维护成本。

3、Hadoop由什么组成?
我们把Hadoop想成一台大型计算机。Hadoop的核心组成就是 HDFS和MapReduce

  • HDFS:相当于计算机的硬盘,进行数据存储
  • MapReduce:相当于计算机的CPU控制器,进行计算等

HDFS是什么?

1、HDFS是什么?

  • 前一章其实已经说了,HDFS就相当于计算机的硬盘,进行存储。但是因为Hadoop是由很多计算机构成的大计算机,那他具体怎么存储的呢?
  • 计算机的存储都要求高效和稳定,他又是怎么保证高效和稳定呢?

2、HDFS是怎么进行存储的?

  • 我们把每台计算机都称为节点,HDFS有三类节点,命名节点(Namenode)、数据节点(DataNode)、副命名节点(Secondary NameNode)
  • 数据节点:主要用来存储数据块,它具有存储数据、读取数据的功能,可以有成千上百个。
  • 命名节点:HDFS的“管理员”,有且只有一个,它主要用于指挥其他节点工作。例如你想知道一个数据节点的信息,肯定需要节点的信息、及其里面数据的路径和内容信息。所以这些数据节点的信息就会存放在命名节点中,方便之后传递信息。
  • 副命名节点:HDFS命名节点的“秘书”,主要负责分摊命名节点的压力,备份命名节点的状态并执行一些管理工作。所以副命名节点可以有很多个,如果命令节点坏了,可以从副命名节点的备份数据恢复数据。

从下图可以看出 HDFS 是如何运作的。

在这里插入图片描述

请求元数据:客服端向NameNode发起请求,获取元数据信息,元数据信息包括命名空间、块映射信息及DataNode的位置
返回元数据:NameNode根据请求,返回元数据信息。
读取数据:客户端根据得到的元数据信息,到 DataNode 上读/写信息
心跳信息:DataNode会定期向NameNode发送心跳信息,将自身节点的信息传递给 NameNode
同步数据:相互关联的 DataNode之间会复制数据,以达到数据复制

3、HDFS怎么保证高效稳定?

  • 高效: 以前的数据处理是客服端发出数据存储请求,服务器有时候在处理其他的请求,就会开始等待;但是HDFS是直接对数据服务器进行操作,也就是上图的步骤③
  • 稳定: 因为HDFS的DataNode之间会相互备份数据,所以即使一台服务器坏了,另外一台也可以继续顶替他的工作,数据也不会丢失。

三、MapReduce

1、什么是MapReduce?
在第一章已经说过,MapReduce相当于计算机的CPU,其实就是进行数据计算。MapReduce就可以分成两块:Map(映射)和Reduce(归纳)

在解释这两个词语之前,我们先来举个例子。

比如你现在有一堆数据(PB级别),里面包含近十年的每个城市天气信息,如果叫你找出近十年来,每个城市最高温度是多少?

如果就使用一台计算机,就是每条数据进行对比,然后找到最高的温度,由于数据数量达到了PB级别,可能你电脑的CPU都要干冒烟,而且计算的速度也会很慢。

如果换做MapReduce进行计算,第一步:我们就可以将十年的数据分成十个任务,分发给十个服务器同步计算每一年的最高温度。第二步:将十个结果进行汇总,计算出十年来每个城市的最高温度。

按照MapReduce的计算,就可以知道,我们只需要十台廉价的计算机同时进行数据计算,然后再进行数据汇总。即成本低,又效率高。

通过上面的例子,我们其实就知道第一步就是Map,第二步就是Reduce

  • Map:进行数据映射,将任务分发下去进行数据计算
  • Reduce:进行数据汇总,将计算结果进行汇总处理,得到最终结果

上面的内容都是Hadoop的一些基础概念,想学习Hadoop的存储系统搭建,可以看
大数据存储系统搭建(一站式搭建,适合新手)

最近我都会写一些关于大数据相关的文章,都是一些简单易理解的大白话文,希望大家喜欢~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值