一文读懂大数据的黄色小象帮手——Hadoop

大数据 Hadoop
继云计算之后,大数据(Big Data)接棒成为最热门的科技潮字,和大数据有关的技术和科技接二连三成为科技圈注目的焦点。如果你也关注云端跟大数据的资讯,Hadoop 这个字出现频率一定挺高的,这个黄色小象 Logo 也应该经常亮相。

继云计算之后,大数据(Big Data)接棒成为最热门的科技潮字,和大数据有关的技术和科技接二连三成为科技圈注目的焦点。如果你也关注云端跟大数据的资讯,Hadoop 这个字出现频率一定挺高的,这个黄色小象 Logo 也应该经常亮相。

 

一文读懂大数据的黄色小象帮手——Hadoop

 

究竟 Hadoop 是什么?能够用来解决什么问题?又为什么重要?比起解释一大堆技术上的细节,倒不如把重点放在 Hadoop 处理巨量资料的角度切入了解,看 Hadoop 能够带来什么好处,同时也从这个方向反过来理解大数据。

Hadoop 的雏形 Nutch 最初是由 Doug Cutting 和 Mike Cafarella 针对网页相关的资料搜寻而开发,2006 年 Doug Cutting 进入 Yahoo 后成立了专业的团队继续研究发展这项技术,正式命名为 Hadoop。

Hadoop 这个名称并不代表任何英文字汇或者缩写代号,「Hadoop」来自于 Doug Cutting 儿子的一个黄色大象填充玩具1,主要塬因是开发过程中他需要为这套软体提供一个代号方便沟通,而 Hadoop 这个名字发音简单拼字容易,而且毫无意义、也没有在任何地方使用过,因此雀屏中选,黄色小象也因而成为 Hadoop 的标誌。

值得一提的是,在 Hadoop 之后所发展的几个相关软件和模组也都参考了这样的命名方式,名称不会与主要功能实际相关,而是採用与大象或其他动物有关的名称作为其开发代号,像是 Pig、Hive、ZooKeeper 等等。

 

[[129607]]

 

什么是 Hadoop?

首先,想像有个档案大小超过 PC 能够储存的容量,那便无法储存在你的电脑裡,对吧?

Hadoop 不但让你储存超过一个伺服器所能容纳的超大档案,还能同时储存、处理、分析几千几万份这种超大档案,所以每每提到大数据,便会提到 Hadoop 这套技术。

简单来说,Hadoop 是一个能够储存并管理大量资料的云端平台,为 Apache 软体基金会底下的一个开放塬始码、社群基础、而且完全免费的软体,被各种组织和产业广为採用,非常受欢迎。

#p#

而要懂 Hadoop,你必须先了解它最主要的两项功能:

Hadoop 如何储存资料(Store)

Hadoop 怎么处理资料(Process)

分散式档案系统 HDFS

Hadoop 是一个丛集系统(cluster system),也就是由单一伺服器扩充到数以千计的机器,整合应用起来像是一台超级电脑。而资料存放在这个丛集中的方式则是採用 HDFS 分散式档案系统(Hadoop Distributed File System)。

HDFS 的设计概念是这样的,丛集系统中有数以千计的节点用来存放资料,如果把一份档案想成一份藏宝图,机器中会有一个机器老大(Master Node)跟其他机器小弟(Slave/Worker Node),为了妥善保管藏宝图,先将它分割成数小块(block),通常每小块的大小是 64 MB,而且把每小块拷贝成叁份(Data replication),再将这些小块分散给小弟们保管。机器小弟们用「DataNode」这个程式来放藏宝图,机器老大则用「NameNode」这个程式来监视所有小弟们藏宝图的存放状态。

如果老大的程式 NameNode 发现有哪个 DataNode 上的藏宝图遗失或遭到损坏(例如某位小弟不幸阵亡,顺带藏宝图也丢了),就会寻找其他 DataNode 上的副本(Replica)进行复製,保持每小块的藏宝图在整个系统都有叁份的状态,这样便万无一失。

 

一文读懂大数据的黄色小象帮手——Hadoop

 

透过 HDFS,Hadoop 能够储存上看 TB(Tera Bytes)甚至 PB(Peta Bytes)等级的巨量资料,也不用担心单一档案的大小超过一个磁碟区的大小,而且也不用担心某个机器损坏导致资料遗失。

来看看 Yahoo 的 Hadoop cluster 系统:

 

[[129608]]

 

MapReduce 平行运算架构

上一段提到,HDFS 将资料分散储存在 Hadoop 电脑丛集中的数个机器裡,现在我们要谈谈 Hadoop 如何用 MapReduce 这套技术处理这些节点上的资料。

在函数程式设计(Functional programming)3中很早就有了 Map(映射)和 Reduce(归纳)的观念,类似于演算法中个别击破(Divide and Conquer)的作法,也就是将问题分解成很多个小问题之后再做总和。

MapReduce 顾名思义是以 Map 跟 Reduce 为基础的应用程式。一般我们进行资料分析处理时,是将整个档案丢进程式软体中做运算出结果,而面对巨量资料时,Hadoop 的做法是採用分散式计算的技术处理各节点上的资料。

在各个节点上处理资料片段,把工作分散、分佈出去的这个阶段叫做 Mapping;接下来把各节点运算出的结果直接传送回来归纳整合,这个阶段就叫做 Reducing。这样多管齐下、在上千台机器上平行处理巨量资料,可以大大节省资料处理的时间。

黄色小象以及小象的朋友们

总和来看,Hadoop 透过 HDFS 和 MapReduce 这两项核心功能,解决了档案存放的问题、解决了系统扩张的问题、解决了系统备份的问题、解决了资料处理的问题,非常适合应用于大数据储存和大数据分析,因此被广泛接受成为大数据的主流技术。

当然 Hadoop 并没有解决所有巨量资料带来的难题,所以许多与 Hadoop 相关的技术被开发来应付巨量资料的其他需求4。像是用来处理资料的 script 语言「Pig」、类似 SQL 语法查询功能的「Hive」、专门用在 Hadoop 上的资料库系统「HBase」等。

Hadoop 生态系:

 

一文读懂大数据的黄色小象帮手——Hadoop

 

对 Hadoop 有初步的认识后,如果想进一步学习相关的大数据技术,可以参考《成为大数据时代的精英学子:Big Data 的推荐好课!》一文,其中列出了许多线上的 Hadoop 推荐好课。

责任编辑:王雪燕 来源: 数据分析精选
相关推荐

2014-04-29 09:59:44

2018-04-03 13:08:31

2018-03-17 09:00:21

大数据 区块链

2021-07-05 10:48:42

大数据实时计算

2017-05-05 12:59:00

大数据物联网安全

2022-10-20 08:01:23

2024-05-07 08:49:36

Hadoop数据存储-分布式存储

2019-01-30 09:30:50

大数据互联网人工智能

2022-08-27 10:37:48

电子取证信息安全

2023-12-22 19:59:15

2021-08-04 16:06:45

DataOps智领云

2019-11-29 17:26:56

大数据分布式计算技术

2022-05-04 17:43:28

元数据大数据

2017-06-02 15:32:09

大数据数据可视化

2023-06-19 13:57:00

数据系统

2021-09-04 19:04:14

配置LogbackJava

2023-05-20 17:58:31

低代码软件

2021-12-29 18:00:19

无损网络网络通信网络

2022-07-05 06:30:54

云网络网络云原生

2022-07-26 00:00:03

语言模型人工智能
点赞
收藏

51CTO技术栈公众号