前言

整理了一下目前常用的hadoop组件,后续将会对这些组件的具体应用场景和使用细节进行展开分析。如果大家发现有更好的建议欢迎大家在下方留言。

生态圈

数据存储:HDFS

HDFS,它是 Hadoop 技术体系中的核心基石,负责分布式存储数据,你可以把它理解为一个分布式的文件系统。此文件系统的主要特征是数据分散存储,一个文件存储在 HDFS 上时会被分成若干个数据块,每个数据块分别存储在不同的服务器上。

如上图:

  • NameNode:HDFS管理节点,存储元数据,同时负责读,写调度和存储分配。
  • DataNode:数据存储节点,用来存储数据。在DataNode上的每个数据块会根据设置的副本数进行分级复制,保证同一个文件的每个数据块副本都不在同一台机器上。

数据分析:MapReduce

mapreduce是分布式计算模型,离线计算。mapreduce的发展已经经过了15个年头。在大数据的今天,数据量都在PB甚至EB级别,对数据分析效率有了更高的要求。于是,第二代计算模型产生了,比如Tez和Spark。它们大量使用内存,灵活的数据交换,更少的磁盘读写来提高分析效率。

资源管理:Yarn

在Yarn中,支持CPU和内存两种资源管理,资源管理由ResourceManager(RM)、ApplicationMaster(AM)和NodeManager(NM)共同完成。其中,RM负责对各个NM上的资源进行统一管理和调度。而NodeManager则负责资源的供给和隔离。当用户提交一个应用程序时,会创建一个用以跟踪和管理这个程序的AM,它负责向RM申请资源,并要求NM启动指定资源的任务。这就是YARN的基本运行机制。

Yarn作为一个通用的分布式资源管理器,它可以管理多种计算模型,如 Spark、Storm、MapReduce 、Flink 等都可以放到 Yarn 下进行统一管理。

内存管理:Spark

Spark 提供了内存中的分布式计算能力,相比传统的 MapReduce 大数据分析效率更高、运行速度更快。总结一句话:以内存换效率。

说到 Spark,不得不提 MapReduce。传统的 MapReduce 计算过程的每一个操作步骤发生在内存中,但产生的中间结果会储存在磁盘里,下一步操作时又会将这个中间结果调用到内存中,如此循环,直到分析任务最终完成。这就会产生读取成本,造成效率低下。

而 Spark 在执行分析任务中,每个步骤也是发生在内存之中,但中间结果会直接进入下一个步骤,直到所有步骤完成之后才会将最终结果写入磁盘。也就是说 Spark 任务在执行过程中,中间结果不会“落地”,这就节省了大量的时间。

在执行一个分析任务中,如果执行步骤不多,可能看不出 MapReduce 和 Spark 执行效率的区别,但是当一个任务有很多执行步骤时,Spark 的执行效率就体现出来了。

数据仓库:Hive

Hive 定义了一种类似 SQL 的查询语言(HQL),它可以将 SQL 转化为 MapReduce 任务在 Hadoop 上执行。

分布式列存储数据库:Hbase

面向行存储,这个应该接触比较多,比如我们熟悉的 MySQL、Oracle 等就是此种类型的。面向行存储的数据库主要适合于事务性要求严格的场合,这种传统关系型数据库为了实现强一致性,通过严格的事务来进行同步,这就让系统在可用性和伸缩性方面大大折扣。

面向列存储的数据库也叫非关系型数据库(NoSQL),比如Cassandra、HBase等。这种数据库通常将不同数据的同一个属性值存在一起,在查询时只遍历需要的数据,实现了数据即是索引。因此,它的最大优点是查询速度快,这对数据完整性要求不高的大数据处理领域,比如互联网,犹为重要。

Hbase继承了列存储的特性,它非常适合需对数据进行随机读、写操作、比如每秒对PB级数据进行几千次读、写访问是非常简单的操作。 其次,Hbase构建在HDFS之上,其内部管理的文件全部存储在HDFS中。这使它具有高度容错性和可扩展性,并支持Hadoop mapreduce程序设计模型。

工作流调度器:Oozie

Oozie 是一个基于工作流引擎的调度器,它其实就是一个运行在 Java Servlet 容器(如 Tomcat)中的 Javas Web 应用,你可以在它上面运行 Hadoop 的 Map Reduce 和 Pig 等任务,。

对于 Oozie 来说,工作流就是一系列的操作(如 Hadoop 的 MR,Pig 的任务、Shell 任务等),通过 Oozie 可以实现多个任务的依赖性。也就是说,一个操作的输入依赖于前一个任务的输出,只有前一个操作完全完成后,才能开始第二个。

ozie 工作流通过 hPDL 定义(hPDL 是一种 XML 的流程定义语言),工作流操作通过远程系统启动任务。当任务完成后,远程系统会进行回调来通知任务已经结束,然后再开始下一个操作。

Sqoop与Pig

通过 Sqoop(SQL-to-Hadoop)就能实现,它主要用于传统数据库和 Hadoop 之间传输数据。数据的导入和导出本质上是 MapreDuce 程序,充分利用了 MR 的并行化和容错性。

通过 Hive 可以把脚本和 SQL 语言翻译成 MapReduce 程序,扔给计算引擎去计算。Pig 与 Hive 类似,它定义了一种数据流语言,即 Pig Latin,它是 MapReduce 编程的复杂性的抽象,Pig Latin 可以完成排序、过滤、求和、关联等操作,支持自定义函数。Pig 自动把 Pig Latin 映射为 MapReduce 作业,上传到集群运行,减少用户编写 Java 程序的苦恼。

日志收集

,Flume 是将数据从产生、传输、处理并最终写入目标路径的过程抽象为数据流,在具体的数据流中,数据源支持在 Flume 中定制数据发送方,从而支持收集各种不同协议数据。

同时,Flume 数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume 还具有能够将日志写往各种数据目标(文件、HDFS、网络)的能力。在 Hadoop 平台,我们主要使用的是通过 Flume 将数据从源服务器写入 Hadoop 的 HDFS 上。

分布式消息队列:kafka

Kafka 是 Apache 组织下的一个开源系统,它的最大特性就是可以实时的处理大量数据以满足各种需求场景:比如基于 Hadoop 平台的数据分析、低时延的实时系统、Storm/Spark 流式处理引擎等。Kafka 现在它已被多家大型公司作为多种类型的数据管道和消息系统使用。

大数据运维工具:Ambari

Ambari 是一个大数据基础运维平台,它实现了 Hadoop 生态圈各种组件的自动化部署、服务管理和监控告警,Ambari 通过 puppet 实现自动化安装和配置,通过 Ganglia 收集监控度量指标,用 Nagios 实现故障报警。目前 Ambari 已支持大多数 Hadoop 组件,包括 HDFS、MapReduce、Oozie、Hive、Pig、 Hbase、ZooKeeper、Sqoop、Kafka、Spark、Druid、Storm 等几十个常用的 Hadoop 组件。

作为大数据运维人员,通过 Ambari 可以实现统一部署、统一管理、统一监控,可极大提高运维工作效率。

大数据—Hadoop生态圈相关推荐

  1. 大数据Hadoop生态圈介绍

    大数据Hadoop生态圈-组件介绍 Hadoop是目前应用最为广泛的分布式大数据处理框架,其具备可靠.高效.可伸缩等特点. Hadoop的核心组件是HDFS.MapReduce.随着处理任务不同,各种 ...

  2. 大数据架构师:如何从零基础搭建大数据hadoop生态圈

    从年初起,几家国际大厂的开发者大会,无论是微软Build.Facebook F8还是稍后的Google I/O,莫不把"AI优先"的大旗扯上云霄.如果这一波AI大潮只是空喊几句口号 ...

  3. 2021年大数据Hadoop(一):​​​​​​​Hadoop介绍

    2021大数据领域优质创作博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习. 有对大数据感兴趣的可以关注微信公众号:三帮大数据 Hadoop介绍 Hadoo ...

  4. 《尚硅谷大数据Hadoop》教程

    尚硅谷大数据Hadoop教程 概论 入门 HDFS MapReduce YARN 由于对这方面的知识只是做一个了解,所以详细的东西并不会做笔记. 概论 大数据的特点 海量.高速.多样.低价值密度 入门 ...

  5. 03 大数据hadoop发展简史及环境安装

    文章目录 大数据hadoop发展简史及环境安装 1.hadoop的介绍以及发展历史 2.hadoop的历史版本介绍 3.hadoop三大公司发型版本介绍 3.1免费开源版本apache: 3.2免费开 ...

  6. 大数据Hadoop(一)

    大数据Hadoop(一) 大数据引言 什么是大数据? 体量很大的数据,起步存储当量为TB级或者日均数据增长GB级. 在海量数据下,可以进行分析,挖掘,进而发现数据内在的规律,从而为企业或者国家创造价值 ...

  7. 大数据Hadoop教程-学习笔记01【大数据导论与Linux基础】

    视频教程:哔哩哔哩网站:黑马大数据Hadoop入门视频教程,总时长:14:22:04 教程资源:https://pan.baidu.com/s/1WYgyI3KgbzKzFD639lA-_g,提取码: ...

  8. 大数据Hadoop教程-学习笔记02【Apache Hadoop、HDFS】

    视频教程:哔哩哔哩网站:黑马大数据Hadoop入门视频教程 教程资源:https://pan.baidu.com/s/1WYgyI3KgbzKzFD639lA-_g 提取码: 6666 [P001-P ...

  9. 2021年大数据Hadoop(三十):Hadoop3.x的介绍

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 Hadoop3.x的介绍 介绍 Hadoop 3.0新特性 ...

最新文章

  1. C语言实现AES加解密
  2. 一小时搞明白自定义注解(Annotation)
  3. 钉钉小程序数据传递——子传父,父传子
  4. JVM 问题排查常用命令
  5. extjs 按钮小箭头展开panel_汽车按钮都是英文看不懂?视频教你认清车内所有按钮,看完秒懂...
  6. 3.14 以子类取代类型码
  7. 8155_QFIL烧录
  8. EC20 4G模块 *99# 拨号上网
  9. Unity5.3官方VR教程重磅登场-系列4 VR中的用户界面
  10. 强制退出scrapy
  11. 给WPS文档加密码的多种方法
  12. FusionCharts 参数设置
  13. 成都拓嘉辰丰电商:拼多多全店推广的作用
  14. 视频教程-大数据搜索技术-大数据
  15. 2022-2028全球与中国自动输送分拣系统市场现状及未来发展趋势
  16. 数值策划到底需要多高的水平
  17. 我能贡献什么-《卓有成效的管理者》第3章
  18. scau 9502 ARDF一个变量的问题
  19. 数论在ACM中的应用
  20. 全国计算机等级考试-数据库四级备考资料

热门文章

  1. 2019迪拜电子展-Gitex2019
  2. android虚线包裹布局,Android控件封装之虚线(一)
  3. 申请单位和协作单位的任务分工
  4. OPPO A59s官方固件刷机包线刷救砖教程图解
  5. 你,远程工作倦怠了吗?
  6. 布施的功德_【中台世界】佛典故事 ─ 布施的五大功德
  7. 取证APP在杭州发布 将区块链、电子签名、电子数据鉴定等技术运用于取证全过程
  8. Shell 四剑客AWK第一集
  9. 今天继续去新交房的小区地推
  10. 如何将计算机硬盘导出,win7系统电脑下硬盘导入与导出数据的一些注意事项