Hadoop基础知识(一)

130 阅读3分钟

本文已参与[新人创作礼]活动,一起开启掘金创作之路。

0. Introduction

这篇文章主要介绍了Hadoop三大组件的基本概念。后续文章将分别介绍它们的核心原理。

1. What

Hadoop是什么?

Hadoop是Apache基金会开发的分布式系统基础架构。主要是为了解决海量数据的存储,以及海量数据的分析计算问题。 简而言之,Hadoop就是一个框架,利用了分布式的特点,在大数据存储、分析计算上有优势。就像SSM(Spring+SpringMVC+MyBatis)框架方便我们做Web项目。

Hadoop核心组件:HDFS(分布式文件系统)、MapReduce(分布式计算系统)、Yarn(分布式资源管理系统)。

在Hadoop1.x版本中,MapReduce同时处理业务运算和资源调度,在2.x版本中,增加了Yarn来专门负责资源调度,降低耦合度。

Hadoop有这些优势:高可靠性、高扩展性、高效性、高容错性。

HDFS是什么?

分布式文件系统,负责把数据存在分布式集群中并进行管理。

专门用来存大文件,专门为了方便大文件读取,专门为了能用廉价的机器可靠地存储大量数据。就像俄罗斯军火一样,结实耐用口径大。

缺点是不适用低延时、大量小文件、多线程写入、修改等场景。

相当于你要这大炮马上发射,做不到;你要10颗大炮弹换成100颗小炮弹打,做不到;你要一会儿瞄准这个目标,一会儿瞄准那个目标,也做不到。

诶,咱儿就不是用来做那精细的活儿。

在底层存储这一块儿,HDFS一枝独秀,所以大数据生态的其他组件,基本都是面向HDFS API去做设计的。

MapReduce是什么?

分布式运算程序的软件框架,用来开发基于Hadoop的数据分析应用。

就是写应用程序时只用写业务逻辑,它帮你用并行的方式,可靠且容错性强地在大规模集群中处理海量数据集。

这一块儿变化很快,目前主流是用Spark、Flink框架。

Yarn是什么?

资源调度平台,相当于操作系统。管理集群硬件的CPU和内存资源。

总结

HDFS把文件存好,用MR框架写程序任务去处理这些文件,Yarn根据任务合理利用硬件资源。

2. Why

为什么要用Hadoop框架?

  1. 因为便宜,Hadoop容易实施,不是很依赖硬件,健壮性强,有各种机制保证了可用性、可靠性。
  2. 能灵活处理各种数据,包括了结构化数据,以及关系数据库很难处理的半结构化、非结构化数据。
  3. 计算能力强,运算速度快,处理大数据比【数据库+磁盘】强。
  4. 生态圈繁荣。

3. How

Hadoop如何实现高可靠性、高扩展性、高效性、高容错性这四大优势?

  • 高可靠性:数据有多个副本,并且在集群中的多个机器上,任一节点宕机都不会丢失数据。
  • 高扩展性:集群中可以很容易地添加节点,来处理临时的大量任务。
  • 高效性:数据在多节点中并发处理,速度很快。
  • 高容错性:任务失败会自动重新分配。

4. Practice

搭建Hadoop完全分布式集群。(会有另外一篇文章专门讲流程)