Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Hadoop生态系统-一般详细

Hadoop生态系统-一般详细

作者头像
全栈程序员站长
发布于 2022-08-31 07:41:54
发布于 2022-08-31 07:41:54
1.1K0
举报

大家好,又见面了,我是你们的朋友全栈君。

首先我们先了解一下Hadoop的起源。然后介绍一些关于Hadoop生态系统中的具体工具的使用方法。如:HDFS、MapReduce、Yarn、Zookeeper、Hive、HBase、Oozie、Mahout、Pig、Flume、Sqoop。

Hadoop的起源

Doug Cutting是Hadoop之父 ,起初他开创了一个开源软件Lucene(用Java语言编写,提供了全文检索引擎的架构,与Google类似),Lucene后来面临与Google同样的错误。于是,Doug Cutting学习并模仿Google解决这些问题的办法,产生了一个Lucene的微缩版Nutch。

后来,Doug Cutting等人根据2003-2004年Google公开的部分GFS和Mapreduce思想的细节,利用业余时间实现了GFS和Mapreduce的机制,从而提高了Nutch的性能。由此Hadoop产生了。

Hadoop于2005年秋天作为Lucene的子项目Nutch的一部分正式引入Apache基金会。2006年3月份,Map-Reduce和Nutch Distributed File System(NDFS)分别被纳入Hadoop的项目中。 关于Hadoop名字的来源,是Doug Cutting儿子的玩具大象。

Hadoop是什么

Hadoop是一个开源框架,可编写和运行分布式应用处理大规模数据。 Hadoop框架的核心是HDFS和MapReduce。其中 HDFS 是分布式文件系统,MapReduce 是分布式数据处理模型和执行环境。

在一个宽泛而不断变化的分布式计算领域,Hadoop凭借什么优势能脱颖而出呢? 1. 运行方便:Hadoop是运行在由一般商用机器构成的大型集群上。Hadoop在云计算服务层次中属于PaaS(Platform-as-a- Service):平台即服务。 2. 健壮性:Hadoop致力于在一般的商用硬件上运行,能够从容的处理类似硬件失效这类的故障。 3. 可扩展性:Hadoop通过增加集群节点,可以线性地扩展以处理更大的数据集。 4. 简单:Hadoop允许用户快速编写高效的并行代码。

Hadoop的生态系统

  • 2) Nutch,互联网数据及Nutch搜索引擎应用
  • 3) HDFS,Hadoop的分布式文件系统
  • 5) MapReduce,分布式计算框架
  • 6) Flume、Scribe,Chukwa数据收集,收集非结构化数据的工具。
  • 7) Hiho、Sqoop,将关系数据库中的数据导入HDFS的工具
  • 8) Hive数据仓库,pig分析数据的工具
  • 10)Oozie作业流调度引擎
  • 11)Hue,Hadoop自己的监控管理工具
  • 12)Avro 数据序列化工具
  • 13)mahout数据挖掘工具
  • 14)Hbase分布式的面向列的开源数据库

Hadoop生态系统的特点

  • 源代码开源
  • 社区活跃、参与者众多
  • 涉及分布式存储和计算的方方面面
  • 已得到企业界验证

Hadoop生态系统的各组成部分详解

我们用一个简易的Hadoop生态系统图谱来描述Hadoop生态系统中出现的各种数据工具。

Hadoop1.0时代的生态系统如下:

Hadoop2.0时代的生态系统如下:


Hadoop的核心


由上图可以看出Hadoop1.0与Hadoop2.0的区别。Hadoop1.0的核心由HDFS(Hadoop Distributed File System)和MapReduce(分布式计算框架)构成。而在Hadoop2.0中增加了Yarn(Yet Another Resource Negotiator),来负责集群资源的统一管理和调度。


HDFS(分布式文件系统)


HDFS源自于Google发表于2003年10月的GFS论文,也即是说HDFS是GFS的克隆版。

此处只是HDFS的概述,如果想了解HDFS详情,请查看HDFS详解这篇文章。

HDFS具有如下特点:
  1. 良好的扩展性
  2. 高容错性
  3. 适合PB级以上海量数据的存储
HDFS的基本原理
  • 将文件切分成等大的数据块,存储到多台机器上
  • 将数据切分、容错、负载均衡等功能透明化
  • 可将HDFS看成容量巨大、具有高容错性的磁盘
HDFS的应用场景
  • 海量数据的可靠性存储
  • 数据归档

Yarn(资源管理系统)


Yarn是Hadoop2.0新增的系统,负责集群的资源管理和调度,使得多种计算框架可以运行在一个集群中。

此处只是Yarn的概述,如果想了解Yarn详情,请查看Yarn详解这篇文章。

Yarn具有如下特点:
  1. 良好的扩展性、高可用性
  2. 对多种数据类型的应用程序进行统一管理和资源调度
  3. 自带了多种用户调度器,适合共享集群环境

MapReduce(分布式计算框架)


MapReduce源自于Google发表于2004年12月的MapReduce论文,也就是说,Hadoop MapReduce是Google MapReduce的克隆版。

此处只是MapReduce的概述,如果想了解MapReduce详情,请查看MapReduce详解这篇文章。

MapReduce具有如下特点:
  1. 良好的扩展性
  2. 高容错性
  3. 适合PB级以上海量数据的离线处理

Hive(基于MR的数据仓库)


Hive由facebook开源,最初用于解决海量结构化的日志数据统计问题;是一种ETL(Extraction-Transformation-Loading)工具。它也是构建在Hadoop之上的数据仓库;数据计算使用MR,数据存储使用HDFS。

Hive定义了一种类似SQL查询语言的HiveQL查询语言,除了不支持更新、索引和事务,几乎SQL的其他特征都能支持。它通常用于离线数据处理(采用MapReduce);我们可以认为Hive的HiveQL语言是MapReduce语言的翻译器,把MapReduce程序简化为HiveQL语言。但有些复杂的MapReduce程序是无法用HiveQL来描述的。

Hive提供shell、JDBC/ODBC、Thrift、Web等接口。

此处只是Hive的概述,如果想了解Hive详情,请查看Hive详解这篇文章。

Hive应用场景

  1. 日志分析:统计一个网站一个时间段内的pv、uv ;比如百度。淘宝等互联网公司使用hive进行日志分析
  2. 多维度数据分析
  3. 海量结构化数据离线分析
  4. 低成本进行数据分析(不直接编写MR)

Pig(数据仓库)


Pig由yahoo!开源,设计动机是提供一种基于MapReduce的ad-hoc数据分析工具。它通常用于进行离线分析。

Pig是构建在Hadoop之上的数据仓库,定义了一种类似于SQL的数据流语言–Pig Latin,Pig Latin可以完成排序、过滤、求和、关联等操作,可以支持自定义函数。Pig自动把Pig Latin映射为MapReduce作业,上传到集群运行,减少用户编写Java程序的苦恼。

Pig有三种运行方式:Grunt shell、脚本方式、嵌入式。

此处只是Pig的概述,如果想了解Pig详情,请查看Pig详解这篇文章。

Pig与Hive的比较


Mahout(数据挖掘库)


Mahout是基于Hadoop的机器学习和数据挖掘的分布式计算框架。它实现了三大算法:推荐、聚类、分类。


HBase(分布式数据库)


HBase源自Google发表于2006年11月的Bigtable论文。也就是说,HBase是Google Bigtable的克隆版。

HBase可以使用shell、web、api等多种方式访问。它是NoSQL的典型代表产品。

此处只是HBase的概述,如果想了解HBase详情,请查看HBase详解这篇文章。

HBase的特点

  1. 高可靠性
  2. 高性能
  3. 面向列
  4. 良好的扩展性

HBase的数据模型

下面简要介绍一下:

  • Table(表):类似于传统数据库中的表
  • Column Family(列簇):Table在水平方向有一个或者多个Column Family组成;一个Column Family 中可以由任意多个Column组成。
  • Row Key(行健):Table的主键;Table中的记录按照Row Key排序。
  • Timestamp(时间戳):每一行数据均对应一个时间戳;也可以当做版本号。

Zookeeper(分布式协作服务)


Zookeeper源自Google发表于2006年11月的Chubby论文,也就是说Zookeeper是Chubby的克隆版。

Zookeeper解决分布式环境下数据管理问题:

  1. 统一命名
  2. 状态同步
  3. 集群管理
  4. 配置同步

Zookeeper的应用

  • HDFS
  • Yarn
  • Storm
  • HBase
  • Flume
  • Dubbo
  • Metaq

Sqoop(数据同步工具)


Sqoop是连接Hadoop与传统数据库之间的桥梁,它支持多种数据库,包括MySQL、DB2等;插拔式,用户可以根据需要支持新的数据库。

Sqoop实质上是一个MapReduce程序,充分利用MR并行的特点,充分利用MR的容错性。

此处只是Sqoop的概述,如果想了解Sqoop详情,请查看Sqoop详解这篇文章。


Flume(日志收集工具)


Flume是Cloudera开源的日志收集系统。

Flume的特点

  1. 分布式
  2. 高可靠性
  3. 高容错性
  4. 易于定制与扩展

Flume OG与Flume NG的对比

  • Flume OG:Flume original generation 即Flume 0.9.x版本,它由agent、collector、master等组件构成。
  • Flume NG:Flume next generation ,即Flume 1.x版本,它由Agent、Client等组件构成。一个Agent包含Source、Channel、Sink和其他组件。

Oozie(作业流调度系统)


目前计算框架和作业类型种类繁多:如MapReduce、Stream、HQL、Pig等。这些作业之间存在依赖关系,周期性作业,定时执行的作业,作业执行状态监控与报警等。如何对这些框架和作业进行统一管理和调度?

解决方案有多种:

  1. Linux Crontab
  2. 自己设计调度系统(淘宝等公司)
  3. 直接使用开源系统(Oozie)

Hadoop发行版(开源版)介绍

  • Apache Hadoop

推荐使用2.x.x版本

下载地址:http://hadoop.apache.org/releases.html

  • CDH(Cloudera Distributed Hadoop)

推荐使用CDH5版本

下载地址:http://archive.cloudera.com/cdh5/cdh/5/

详细安装步骤查看文章:搭建5个节点的hadoop集群环境(CDH5)

  • HDP(HortonWorks Data Platform)

推荐使用HDP2.x版本

下载地址:http://zh.hortonworks.com/downloads/#data-platform

最后建议:关于不同发行版在架构、部署和使用方法一致,不同之处仅在于内部实现。建议选择公司发行版,比如CDH或者HDP,因为它们经过集成测试,不会面临版本兼容性问题。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144352.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Hadoop生态系统介绍「建议收藏」
Hadoop是一个能够对大量数据进行分布式处理的软件框架。具有 可靠、高效、可伸缩的特点。
全栈程序员站长
2022/08/26
1.2K0
Hadoop生态系统介绍「建议收藏」
快速认识Hadoop生态系统
就目前来说Hadoop已经成为处理大数据的问题的必备的组件,许多的大厂都已经在使用Hadoop软件栈处理自己的问题,那为什么Hadoop技术栈这么流行?
Tim在路上
2020/08/05
7950
快速认识Hadoop生态系统
hadoop生态圈各个组件简介
Hadoop 是一个能够对大量数据进行分布式处理的软件框架。具有可靠、高效、可伸缩的特点。
全栈程序员站长
2022/08/31
1.1K0
hadoop生态圈各个组件简介
大数据Hadoop生态圈各个组件介绍(详情)
-coordination and management(协调与管理) -query(查询) -data piping(数据管道) -core hadoop(核心hadoop) -machine learning(机器学习) -nosql database(nosql数据库)
全栈程序员站长
2022/08/31
5.1K0
大数据Hadoop生态圈各个组件介绍(详情)
hadoop生态圈相关技术_hadoop的生态
  最早Doug Cutting(后面被称为hadoop之父)领导创立了Apache的项目Lucene,然后Lucene又衍生出子项目Nutch,Nutch又衍生了子项目Hadoop。Lucene是一个功能全面的文本搜索和查询库,Nutch目标就是要试图以Lucene为核心建立一个完整的搜索引擎,并且能达到提到Google商业搜索引擎的目标。网络搜索引擎和基本文档搜索区别就在规模上,Lucene目标是索引数百万文档,而Nutch应该能处理数十亿的网页。因此Nutch就面临了一个极大的挑战,即在Nutch中建立一个层,来负责分布式处理、冗余、故障恢复及负载均衡等等一系列问题。
全栈程序员站长
2022/11/17
8190
hadoop生态圈相关技术_hadoop的生态
Hadoop极简教程
学习大数据必先学习Hadoop,因为它是目前世界上最流行的分布式数据处理框架。 Tips:所谓大数据,是指数据量庞大、产生数度快、结构多样的价值密度低的数据。其中,数据量庞大是指数据规模超出了1,2台高性能主机所能处理范围;结构多样性是指除了关系型数据库能够处理的结构化数据还包含半结构化数据(如各类传感设备必如地镑、卫星、GPS设备等产生的纯文本格式的数据,还有良心网站NASA官网公布的txt格式的空间天气数据等成行成列的数据)和非结构化数据(视频、图像等)。这些数据的价值密度普遍较低(和具体的应用范围也有
架构师小秘圈
2018/04/02
2.8K0
Hadoop极简教程
Hadoop的生态系统介绍
Hadoop分布式文件系统是Hadoop项目的两大核心之一,是针对谷歌文件系统(GoogleFileSystem,GFS)的开源实现。是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。
全栈程序员站长
2022/08/31
1.2K0
Hadoop的生态系统介绍
大数据技术分享:Hadoop的相关工具
Apache的Hadoop项目已几乎与大数据划上了等号。它不断壮大起来,已成为一个完整的生态系统,众多开源工具面向高度扩展的分布式计算。
加米谷大数据
2019/01/08
4220
Hadoop体系_集团架构
自从大数据的概念被提出后,出现了很多相关技术,其中对大数据发展最有影响力的就是开源分布式计算平台Hadoop,它就像软件发展史上的Window、Linux、Java一样,它的出现给接下来的大数据技术发展带来了巨大的影响。很多知名公司都加入Hadoop相关项目的开发中,如Facebook、Yahoo等,围绕大数据Hadoop技术产生了一系列大数据的相关技术
全栈程序员站长
2022/11/03
1.1K0
Hadoop体系_集团架构
Hadoop生态圈各种组件介绍
好多初入学习大数据的人不是很清楚,今天分享一个图,并介绍一下大致的组件,其他还有一些组件是没有包含在其中的,但是大部分这个图片是有了的。
全栈程序员站长
2022/08/31
2.1K0
Hadoop生态圈各种组件介绍
Hadoop大数据生态系统及常用组件
什么是大数据,多大算大,100G算大么?如果是用来存储1080P的高清电影,也就是几部影片的容量。但是如果100G都是文本数据,比如云智慧透视宝后端kafka里的数据,抽取一条mobileTopic的数据如下:【107,5505323054626937,局域网,局域网,unknown,0,0,09f26f4fd5c9d757b9a3095607f8e1a27fe421c9,1468900733003】,这种数据100G能有多少条,我们可想而知。
程序狗
2021/12/16
8710
Hadoop 生态系统的构成(Hadoop 生态系统组件释义)
现在先让我们了解一下 Hadoop 生态系统的构成,主要认识 Hadoop 生态系统都包括那些子项目,每个项目都有什么特点,每个项目都能解决哪一类问题,能回答这三个问题就可以了(本段属于热身…重在理解 Hadoop 生态系统组成,现状,发展,将来)。
全栈程序员站长
2022/08/26
9320
Hadoop 生态系统的构成(Hadoop 生态系统组件释义)
Hadoop简介
摘 要 当今大数据最火爆的一个名词就是Hadoop,那么Hadoop是什么呢? Hadoop是什么 Hadoop是一个由Apache基金会的发布的开源的,可靠的,可扩展的,分布式的运算存储系统。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 Hadoop可以解决什么问题 海量数据的存储(HDFS) 海量数据的分析(MapReduce) 资源管理调度(YARN) Hadoop来源与历史 Hapdoop是Google的集群系统的开源实现 -Google集群系统:
天策
2018/06/22
1.5K0
Hadoop及其生态系统的基本介绍【转载】
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
foochane
2019/05/23
6020
Hadoop及其生态系统的基本介绍【转载】
hadoop生态系统到底谁最强?
当你打开linkedin时,你会看到数百种不同的东西。例如,您的个人资料属性,您的朋友列表,您的技能,为您推荐的群组,朋友建议,为您推荐的公司,谁查看过您的个人资料等。
哒呵呵
2018/08/06
9000
一文了解大数据生态体系-Hadoop
大数据(big data):指无法在一定时间范围内用常规软件工具进行捕捉、管理 和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程 优化能力的海量、高增长率和多样化的信息资产。
架构狂人
2023/08/16
8890
一文了解大数据生态体系-Hadoop
Hadoop生态系统简介
Hadoop生态系统主要包括:Hive、HBase、Pig、Sqoop、Flume、ZooKeeper、Mahout、Spark、Storm、Shark、Phoenix、Tez、Ambari。
全栈程序员站长
2022/08/31
2.6K0
HADOOP生态圈知识概述
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。具有可靠、高效、可伸缩的特点。
全栈程序员站长
2022/08/31
2.7K0
HADOOP生态圈知识概述
Hadoop基础知识总结
Hadoop这个单词本身并没有什么特殊的含义,而只是其作者Doug Cutting孩子的一个棕黄色的大象玩具的名字。
石晓文
2019/06/17
1.6K0
HADOOP生态圈简介
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143277.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
7940
HADOOP生态圈简介
相关推荐
Hadoop生态系统介绍「建议收藏」
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档