大数据hadoop生态技术简介

Hadoop 生态是指围绕 Hadoop 大数据处理平台形成的一系列开源软件和工具,用于支持大规模数据处理、存储、管理、分析和可视化等应用场景。暂时将其核心技术分为9类: 

  1. 数据采集技术框架: Flume、Logstash、FileBeat;Sqoop和Datax; Cannal和Maxwell
  2. 数据存储技术框架: HDFS、HBase、Kudu、Kafka
  3. 分布式资源管理框架: YARN、Kubernetes和Mesos
  4. 数据计算技术框架
    1. 离线数据计算 : MapReduce、Tez、Spark
    2. 实时数据计算:Storm、Flink、Spark中的SparkStreaming
  5. 数据分析技术框架: Hive、Impala、Kylin、Clickhouse、Druid、Drois
  6. 任务调度技术框架:Azkaban、Ooize、DolphinScheduler
  7. 大数据底层基础技术框架:Zookeeper
  8. 数据检索技术框架:Lucene、Solr和Elasticsearch
  9. 大数据集群安装管理框架:HDP、CDH、CDP

 目前常用的Hadoop 生态包括:

  1. HDFS: Hadoop Distributed File System(HDFS)是 Hadoop 的分布式文件系统,用于存储大规模数据集,提供了高容错性、高吞吐量的数据访问。
  2. MapReduce: Hadoop 的分布式计算框架,用于处理大规模数据集,可实现分布式计算、数据清洗、批处理等任务。
  3. YARN:Yet Another Resource Negotiator(YARN)是 Hadoop 的资源管理框架,用于将计算和存储分离,实现集群资源的统一管理与调度。
  4. Hive:Hadoop 中的数据仓库工具,类似于传统的 SQL 数据库,可通过 HiveQL 进行数据存储、查询和分析等操作。
  5. HBase:Hadoop 中的分布式数据库,基于 HDFS 构建,支持高速查询和随机读写。
  6. Pig:Pig 是基于 Hadoop 的数据流语言,用于在 Hadoop 平台上执行复杂的数据处理任务。
  7. Sqoop:Hadoop 的数据导入和导出工具,用于在 Hadoop 平台和关系型数据库之间进行数据传输。
  8. Flume:Hadoop 的数据收集和汇聚工具,用于将数据从多个源收集到 Hadoop 中进行处理。
  9. Spark: Hadoop 的高性能数据处理框架,支持分布式计算、机器学习、数据挖掘等任务,是 Hadoop 生态中的一个重要组成部分。
  10. Zeppelin: Hadoop 的数据分析和可视化工具,将数据存储、查询、分析、展示等功能都聚合在一个交互式的笔记本中。

下满我们简单对比一下这9类技术中各个技术栈的差异。

1、数据采集技术框架

数据分析的前提是先要采集数据,因此数据采集是大数据的基础。

数据采集的技术框架有以下几种: 

1.1 Flume、Logstash和FileBeat常用于日志数据实时监控采集

flume、logstash、fileBeat 对比
对比项FlumelogstashFilebeat
来源ApacheElasticElastic
开发语言Javajrubygo
内存消耗
CPU消耗
容错性高,内部事务机制高,内部持久化队列
负载均衡支持支持支持
插件丰富的输入输出插件丰富的输入输出插件只支持文件数据采集
数据过滤提供拦截器强大过滤能力弱有过滤能力
二次开发对java程序员容易

1.2 Sqoop和Datax常用于关系型数据库离线数据采集

Sqoop、DataX
对比项SqoopDataX
来源Apache阿里
开发语言JavaJava
运行模式MapReduce        单进程多线程
分布式支持不支持
执行效率
数据源类型仅支持关系型数据库和Hadoop相关存储系统支持20多种
扩展性一般

1.3 Cannal和Maxwell常用于关系型数据库实时数据采集

Canal、Maxwell
对比项canalMaxwell
来源阿里zendesk
开发语言JavaJava
数据格式自由       json格式
HA支持不支持
bootstrap不支持支持
分区支持支持
随机读支持支持

2.数据存储技术框架

数据存储技术框架包括HDFS、HBase、Kudu、Kafka等

  • HDFS: 解决海量数据存储问题, 但是不支持数据修改
  • HBase: 是一个基于HDFS的分布式NoSQL数据库, 它可以利用HDFS的海量数据存储能力,并支持修改操作。
  • Kudu: 介于HDFS和HBase 之间的技术组件, 及支持数据修改,也支持基于SQL的数据分析。也因此它的定位比较尴尬,属于一个折中的方案,实际应用有限。
  • kafka: 常用语海量数据的临时缓冲存储,对外提供高吞吐量的读写能力。

3、分布式资源管理框架

企业的服务器资源(内存、CPU等)是有限的,也是固定的。但是,服务器的应用场景却是灵活多变的,随着大数据时代的到来,临时任务的需求量大增,这些任务往往需要大量的服务器资源。因此服务器资源的分配,入股完全依赖运维人员人工对接,太过耗时耗力。因此需要分布式资源管理系统, 常见的有YARN、Kubernetes、Mesos。 

  • YARN主要应用与大数据领域
  • Kubernetes主要应用与云计算领域
  • Mesos主要应用与云计算领域

4、数据极端技术框架

数据计算分为离线数据计算和实时数据计算

4.1 离线数据计算

  • MapReduce 大数据行业的第一代离线数据计算引擎,主要用于解决大规模数据集的分布式并行计算。它是将计算逻辑抽象成map和reduce两个阶段进行处理。
  • Tez计算引擎在大数据生态圈中使用的比较少
  • Spark最大的特点是内存计算,任务执行阶段的中间结果全部会放在内存中,不需要读写磁盘,提高了数据的计算性能。且spark提供了很多高阶函数,可以实现各种复杂逻辑的迭代计算,适用于海量数据的快速且复杂计算。

4.2 实时数据计算

  • Storm 主要应用与实现实时数据分布式计算,适用于小型、独立的实时项目
  • Flink 新一代实时数据分布式计算引擎,计算性能和生态圈都优于Storm,高吞吐低延迟。
  • Spark的SparkStreaming组件也可以提供基于秒级的实时数据分布式计算
storm、SparkStreaming、Flink
比较项stormSparkStreamingFlink
计算模型NativeMicro-BatchNative
API类型组合式        声明式声明式
语义级别At-Least-Once        Exectly-OnceExectly-Once
容错机制AckCheckpointcheckpoint
状态管理

5、数据分析技术框架

数据分析技术框架包括Hive、Impala、Kylin、Clickhouse、Druid、Drois等

Hive、Impala、Kylin 属于离线OLAP数据分析引擎:

  • Hive 执行效率一般,但稳定性极高
  • Impala 基于内存可以提供很高的执行效率, 但是稳定性一般
  • Kylin通过预计算可以提供PB级别数据ms级响应
Hive、Impala、Kylin
比较项HiveImpalaKylin
计算引擎MapReduce自研appMapReduce/Spark
计算性能
稳定性
数据规模TB级别TB级别TB、PB级别
SQL支持度

HQL

兼容HQL标准SQL

Clickhouse、Druid、Doris 属于实时OLAP数据分析引擎:

  • Druid支持高并发,SQL支持有限,目前成熟度较高
  • Clickhouse并发能力有限,支持非标准SQL。目前成熟度较高
  • Doris 支持高并发,支持标准SQL,还处于告诉发展阶段
Druid、ClickHouse、Doris
比较项DruidClickHouseDoris
查询性能
高并发
实时数据插入支持支持支持
实时数据更新不支持
join 操作有限有限支持
SQL支持有限非标准SQL较好
成熟度
运维复杂度

6、任务调度技术框架:

任务调度技术框架包括Azkaban、ooiz、DolPhinScheduler等。 主要适用于普通定时任务执行,以及包含复杂依赖关系的多级任务进行调度,支持分布式,保证调度系统的性能和稳定性。

Azkaban、ooiz、DolphinScheduler
比较项AzkabanooizDolphinScheduler
任务类型shell脚本及大数据任务shell脚本及大数据任务shell脚本及大数据任务
任务配置自定义DSL语法配置XML文件配置页面拖拽配置
任务暂停不支持支持支持
高可用(HA)通过DB支持通过DB支持支持( 多master 多worker )
多租户不支持不支持支持
邮件告警支持支持支持
权限控制粗粒度粗粒度细粒度
成熟度
易用性
所属公司LinkedlnCloudeara中国易观

7、大数据底层技术框架

大数据底层技术框架只要指zookeeper。

大数据生态圈中的hadoop、HBase、Kafka等技术组件的运行都会用到zookeeper, 它主要提供基础功能,如:命名空间、配置服务等

8、数据检索技术框架

数据检索主流的技术是Elasticseacrch, 其它的还有Lucene、Solr等。

Lucene、Solr、ES
对比项LuceneSolrElasticsearch
易用性
扩展性
稳定性
集群运维难度不支持集群
项目集成度
社区活跃度

9、大数据集群安装管理框架

如果企业想从传统的数据处理转型到大数据处理, 首先要做的就是搭建一个稳定可靠的大数据平台。 而一个完整的大数据平台包含数据采集、数据存储、数据计算、数据分析、集群监控等,这些组件要部署到上百台甚至上千台机器中。 如果完全依靠运维人员追个安装,工作量太大,且各个技术栈之间还会有版本匹配的问题。 

基于上面的问题, 大数据集群安装管理工具便诞生了。目前常见的包括CDH、HDP、CDP, 他们对大数据组件进行了封装,提供了一体化的大数据平台,可以快速安装大数据组件。

  • HDP,全称Hortonworks Data Platform, 基于Hadoop进行了封装,借助Ambari工具提供界面化安装和管理,且集成了大数据的常见组件,可以提供一站式集群管理。完全开源免费,没有商业化服务,但是从3.x版本后就停止了更新。
  • CDH,全称Cloudera Distribution Including Apache Hadoop 。借助于Cloudera Manager 工具提供界面化安装和管理,且集成了大部分大数据组件,可以提供一站式集群管理。属于商业化收费大数据平台,6.x版本后停止更新。
  • CDP, Cloudera Data Center, 与CDH来自同一家公司,且它的版本号延续了之前的CDH的版本号。 从7.0开始,CDP支持Private Cloud (私有云) 和 Hybrid Cloud (混合云) . CDP将HDP和CDH中比较优秀的组件进行了整合,且增加了一些新的组件。

文章转载自,做个部分修改和补充: 一文看懂大数据生态圈完整知识体系

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/30658.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

防雷抗浪涌插排插座推荐,同为科技(TOWE)防雷桌面PDU安全可靠

同为科技TOWE双排防雷抗浪涌桌面PDU插座 随着夏天天气越来越热,强对流天气增多,雷雨天气频发。在雷电季节,通常影响家用电器安全的主要原因是由于雷电感应的侵入,特别是对绝缘强度低、过电压耐受力差的微电子产品影响甚大。而所谓…

新手Maven入门(一)

Mavenue介绍和基本概念 一、什么是Maven1.1 Maven的组成1.2 安装和配置Maven1.2.1 下载1.2.2 安装 二、Maven 的基本概念2.1 标准的目录结构2.2 POM 大纲2.2.1 pom大纲展示 2.3 构件2.3.1 什么是maven的构建 2.4 POM 文件的用例2.5 GAV 坐标 三、依赖 一、什么是Maven Maven 是…

DNDC模型建模方法及在土壤碳储量、温室气体排放、农田减排、土地变化、气候变化

由于全球变暖、大气中温室气体浓度逐年增加等问题的出现,“双碳”行动特别是碳中和已经在世界范围形成广泛影响。国家领导人在多次重要会议上讲到,要把“双碳”纳入经济社会发展和生态文明建设整体布局。同时,提到要把减污降碳协同增效作为促…

el-element-admin实现双路由菜单

需求: 1、输入用户名登录企业级菜单 2、点击企业级菜单中的首页,右边显示项目列表,点击某一行跳转到项目级菜单 注意: 企业级菜单和项目级菜单,后端分别给接口 具体实施: 1、点击面包靴首页的时候设置标记…

关于nginx,正向代理和反向代理是什么意思

为什么要使用nginx 很多公司会用到nginx做代理服务器,为什么用nginx,tomcat服务器不行吗? tomcat缺点:并发量小,用户使用的少 nginx:高并发,高性能,cpu、内存等资源消耗却非常低&…

06-揭开神秘面纱:Golang method的魅力解析

📃个人主页:个人主页 🔥系列专栏:Golang基础 💬Go(又称Golang)是由Google开发的开源编程语言。它结合了静态类型的安全性和动态语言的灵活性,拥有高效的并发编程能力和简洁的语法。G…

安卓高通机型的基带移植 修改 编译的相关 增加信号 支持5G等【二】

安卓高通机型的基带移植 修改 编译的相关 增加信号 支持5G等【一】 前面分享了这篇帖子,很多友友希望更新下新机型的基带替换方法。今天对其中做一些补充说明。由于安卓机型跨版本幅度较大。有的机型从出厂安卓8有可能官方目前已经更新到安卓12 13等等。所以任何的教…

Visual ChatGPT原理解读——大模型论文阅读笔记四

论文:https://arxiv.org/abs/2303.04671 代码:https://github.com/microsoft/TaskMatrix 一. 整体框架 如图所示,用户上传一张黄花的图像并输入一个复杂的语言指令“请根据该图像的预测深度生成一朵红花,然后逐步使其像卡通一样”…

5G技术学习——5GNR帧结构和空口资源

这里写目录标题 4G时域定义:资源划分 5GNR中时域 频域 与空域资源 循环前缀CP:背景和原理5G帧结构:基本框架5G slot分类 5G 频域资源5G频域资源基本概念信道带宽与传输带宽BWP定义及其应用场景 4G 时域定义: 帧:10ms,…

【使用Hystrix实现服务容错和熔断】—— 每天一点小知识

💧 使用 H y s t r i x 实现服务容错和熔断 \color{#FF1493}{使用Hystrix实现服务容错和熔断} 使用Hystrix实现服务容错和熔断💧 🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的博客&#x1f390…

SpringBoot + Vue前后端分离项目实战 || 一:Vue前端设计

文章目录 环境配置开发工具下载Vue前端模板前端项目启动前端说明及修改修改导航栏自定义菜单与子菜单增加导航标签功能 前端数据格式 B站视频讲解:2023全网最简单但实用的SpringBootVue前后端分离项目实战 不想看视频可浏览此文章笔记,比较详细 环境配置…

Java版企业工程项目管理系统源码+java版本+项目模块功能清单+spring cloud +spring boot

工程项目各模块及其功能点清单 一、系统管理 1、数据字典:实现对数据字典标签的增删改查操作 2、编码管理:实现对系统编码的增删改查操作 3、用户管理:管理和查看用户角色 4、菜单管理:实现对系统菜单的增删改查操…

青大数据结构【2020】【三分析计算】

关键字: 无相连通图、Prim算法最小生成树、哈希函数、线性探测法、平均查找长度 1.对于一个带权连通无向图G,可以采用Prim算法构造出从某个顶点v出发的最小生成树,问该最小生成树是否一定包含从顶点v到其他所有顶点的最短路径。如果回答是&a…

kafka 报错 - Cannot assign requested address

背景 在华为云服务器上跑了 zookeeper 和 kafka 的 broker,想内外网分流,重点就是做不到从外网去消费,比如用自己的 windows 笔记本去消费。 配置 server.properties 的 listener 为 broker 所在机子的的内网 IP 后,终于能 star…

Vulnhub项目:Aragog

1、靶机地址: HarryPotter: Aragog (1.0.2) ~ VulnHub 死亡圣器三部曲之第一部,Aragog是海格养的蜘蛛的名字, 并且又牵扯到了密室 2、渗透过程 确定靶机ip,攻击机ip,扫描靶机开放端口 只有22,80端口&a…

数学建模常用模型(一):灰色预测法

数学建模常用模型(一):灰色预测法 灰色预测法是一种用于处理少量数据、数据质量较差或者缺乏历史数据的预测方法。它适用于一些非线性、非平稳的系统,尤其在短期预测和趋势分析方面有着广泛的应用。灰色预测法作为一种强大的数学…

辅助驾驶功能开发-功能算法篇(3)-ACC-弯道速度辅助

1、功能架构:ACC弯道速度辅助(CSA) 2、CSA功能控制 2.1 要求 2.1.1 CSA ASM:弯道速度辅助 1. 模式管理器:驾驶员应能够激活/关闭功能 应存在处理 CSA 功能的模式管理器。模式管理器由驾驶员输入和系统状态控制。 模式管理器有两个由 CSAStatus 定义的状态。状态转换定义…

RabbitMQ高阶使用消息推送

目录 1 从打车开始说起1.1 需要解决的问题1.2 消息推送 2 消息推送2.1 什么是消息推送2.2 方案介绍2.2.1 ajax短轮询2.2.2 长轮询2.2.3 WebSocket 2.3 WS实现消息推送2.3.1 架构介绍2.3.2 暂存数据2.3.2.1 什么是MongoDB2.3.2.2 插入数据2.3.2.3 查询数据 2.4.1 轮询任务2.4.1.…

软件工程导论期末急救包(上)

目录 什么是软件工程?它的目标和内容是什么? 软件文档作用及包含 软件过程模型 瀑布模型 快速原型模型 增量模型 螺旋模型 喷泉模型 软件生存周期 需求分析阶段的基本任务是什么? 可行性研究的任务是什么? 软件是什…

vue+el-select下拉实现:全选、反选、清空功能

问题描述: el-select下拉框要求实现全选功能。具体功能包括: 当选择【全选】时,所有选项全部被勾选;当选择【反选】时,已选择选项变为未选择选项,未选项变为已选项当选择【清空】时,所有选项变…