0


一、初识hadoop

一、初识hadoop

1.1 大数据

​ 麦肯锡全球研究所给出的定义是:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模快速的数据流转多样的数据类型价值密度低四大特征。

狭义上:对海量数据进行处理的软件技术体系

广义上.数字化、信息化时代的基础支撑,以数据为生活赋能

1.2 hadoop

​ Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构。
​ 主要解决,海量数据的存储和海量数据的分析计算问题。
​ 广义上来说,Hadoop 通常是指一个更广泛的概念 —— Hadoop 生态圈。

Hadoop 的发展历史

​ Lucene 框架是 Doug Cutting 开创的开源软件,用 java 书写代码,实现与 Google 类似的全文搜索功能,它提供了全文检索引擎的架构,包括完整的查询引擎和索引引擎 。

2001年年底 Lucene 成为 apache 基金会的一个子项目。

对于海量数据的场景,Lucene 面对与 Google 同样的困难:存储数据困难,检索速度慢。

学习和模仿 Google 解决这些问题的办法 :微型版 Nutch。

可以说 Google 是 hadoop 的思想之源(Google 在大数据方面的三篇论文)。

GFS —>HDFS
Map-Reduce —>MR
BigTable —>Hbase

2003-2004 年,Google 公开了部分 GFS 和 Mapreduce 思想的细节,以此为基础 Doug Cutting 等人用了 2 年业余时间实现了 DFS 和 Mapreduce机制,使 Nutch 性能飙升 。

2005 年Hadoop 作为 Lucene 的子项目 Nutch 的一部分正式引入 Apache 基金会。

2006 年 3 月份,Map-Reduce 和 Nutch Distributed File System (NDFS) 分别被纳入称为 Hadoop 的项目中。

名字来源于 Doug Cutting 儿子的玩具大象。

Hadoop 就此诞生并迅速发展,标志这云计算时代来临。

Hadoop 三大发行版本

Apache、Cloudera、Hortonworks

​ Apache 版本最原始(最基础)的版本,对于入门学习最好。

Cloudera在大型互联网企业中用的较多。

Hortonworks 文档较好。

Hadoop 的优势

高可靠性: Hadoop 底层维护多个数据副本,所以即使 Hadoop 某个计算元素或存储出现故障,也不会导致数据的丢失。
高扩展性: 在集群间分配任务数据,可方便的扩展数以千计的节点。
高效性: 在 MapReduce 的思想下,Hadoop 是并行工作的,以加快任务处理速度。
高容错性: 能够自动将失败的任务重新分配。

hadoop的生态系统

HDFS

Hadoop生态系统的基础组件是Hadoop分布式文件系统(HDFS)。HDFS的机制是将大量数据分布到计算机集群上,数据一次写入,但可以多次读取用于分析。它是其他一些工具的基础,例如HBase。

MapReduce

Hadoop的主要执行框架即MapReduce,它是一个用于分布式并行数据处理的编程模型,将作业分为mapping阶段和reduce阶段(因此而得名)。开发人员为Hadoop编写MapReduce作业,并使用HDFS中存储的数据,而HDFS可以保证快速的数据访问。鉴于MapReduce作业的特性,Hadoop以并行的方式将处理过程移向数据,从而实现快速处理。

HBase

一个构建在HDFS之上的面向列的NoSQL数据库,HBase用于对大量数据进行快速读取/写入。HBase将Zookeeper用于自身的管理,以保证其所有组件都正在运行。

Zookeeper

Zookeeper是Hadoop的分布式协调服务。Zookeeper被设计成可以在机器集群上运行,是一个具有高度可用性的服务,用于Hadoop操作的管理,而且很多Hadoop组件都依赖它。

Oozie

一个可扩展的Workflow系统,Oozie已经被集成到Hadoop软件栈中,用于协调多个MapReduce作业的执行。它能够处理大量的复杂性,基于外部事件(包括定时和所需数据是否存在)来管理执行。

Pig

对MapReduce编程复杂性的抽象,Pig平台包含用于分析Hadoop数据集的执行环境和脚本语言(Pig Latin)。它的编译器将Pig Latin翻译为MapReduce程序序列。

Hive

类似于SQL的高级语言,用于执行对存储在Hadoop中数据的查询,Hive允许不熟悉MapReduce的开发人员编写数据查询语句,它会将其翻译为Hadoop中的MapReduce作业。类似于Pig,Hive是一个抽象层,但更倾向于面向较熟悉SQL而不是Java编程的数据库分析师。

Sqoop

是一个连通性工具,用于在关系型数据库和数据仓库与Hadoop之间移动数据。Sqoop利用数据库来描述导入/导出数据的模式,并使用MapReduce实现并行操作和容错。

Flume

是一个分布式的、具有可靠性和高可用性的服务,用于从单独的机器上将大量数据高效地收集、聚合并移动到HDFS中。它基于一个简单灵活的架构,提供流式数据操作。它借助于简单可扩展的数据模型,允许将来自企业中多台机器上的数据移至Hadoop。

Mahout

一个机器学习和数据挖掘的库,提供用于聚类、回归测试和统计建模常见算法的MapReduce实现。

Ambari

该项目致力于简化Hadoop的管理,提供对Hadoop集群进行供应、管理和监控的支持。

hadoop的版本

Hadoop 1.x 和 hadoop 2.x 的区别

在 Hadoop 1.x 时代,Hadoop 中的 MapReduce 同时处理业务逻辑运算和资源调度,耦合性较大。
在 Hadoop 2.x 时代,增加了 Yarn。Yarn 只负责资源的调度,MapReduce 只负责运算。


本文转载自: https://blog.csdn.net/qq_68830486/article/details/138272653
版权归原作者 故港♡ 所有, 如有侵权,请联系我们删除。

“一、初识hadoop”的评论:

还没有评论