大数据hadoop生态技术简介

news2024/11/26 12:33:09

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.coloradmin.cn/o/649785.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Spring】循环依赖

一、什么情况下会出现循环依赖? 二、解决方案 (一)一级缓存:存放完整的Bean实例对象 缺点:一级缓存的方式无法保证多线程下的一级缓存Bean的完整性,可以用加锁的方式来解决此问题。 (二&#…

Nerf如何制作自己的llff数据集

Nerf三维重建使用Pycharm运行自己的数据集 ------------------------------------20230427更新---------------------------------------------- Nerf代码讲解,从零简单复现论文代码 Nerf环境配置教程 你好! 这里是“出门吃三碗饭”本人,本…

数字化时代,数据治理中有哪些误区?

数据治理也不是什么简单的事情,或者说企业想要利用数据资产、数字化、数字化转型等加速企业的发展,就势必会在路途中遇到很多困难,数据治理只是用来解决数据问题的一种方案。所以当数据的价值开始被不断挖掘,企业数据资产的地位越…

分析了上百份最新的大中小厂的面经,我总结出了这份2023国内最新最强Java面试八股文

最近分析了上百份最新的大中小厂的面经,整理了 Java 面试中最最最常问的一些问题!大家可以对照着这篇文章学习或者准备面试。 开始之前,先说一下我非常推荐的一种学习方式: 带着问题学习或者准备面试。 之前分享过一位字节朋友的…

数据预处理:标准化、正则化、最大最小归一化、绝对值标准化

https://scikit-learn.org/stable/modules/preprocessing.html 标准化 公式 : 优点:适用大多数类型的数据,标准化之后的数据是以0为均值,方差为1的正态分布 缺点 :是一种中心化方法,会改变原有数据得分…

《离散数学》:集合、关系和函数

〇、前言 这章将会对集合、以及集合之上的关系、以及两个集合之间的映射情况做一个细致的讨论。集合作为数学和其他领域中的基础概念,具有广泛的应用和重要的地位。它为数学建立了基本的体系和推理方法,为各个领域的研究和应用提供了一种统一的描述和分…

DDD领域驱动

为什么需要DDD? 我们经常讲技术为业务服务,架构设计需要对业务充分理解,在面向复杂的业务场景时,会面临诸多问题: 复杂系统设计:业务系统多、业务类型多、业务相互耦合,有没有合适的方法来指导…

深度分析高性能计算工程师和传统互联网开发有何不同?

数字化时代来袭,各类开发工程师层出不穷。在移动互联网时代,互联网开发享用了10年的行业红利;在即将到来的超算互联网时代、数字化浪潮汹涌而来的时代,高性能计算工程师这个原本在科研院所熠熠生辉的工程师群体也从技术的神坛走下…

刁钻面试问题?超全接口测试面试题总结+答案,面试看这篇就够了

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 面试题&#xff1…

通过Xshell连接远程服务器搞懂SSH非对称加密的实际应用

最近阿里云服务器即将到期,正好618入手了腾讯云很便宜的轻量级服务器,之前阿里云服务器远程控制都是用Xshell密码登录,这次腾讯云试了试SSH免密登录,还是很好用的,正好借这个机会研究了下SSH原理 SSH是“非对称加密”…

在做性能测试时会遇到的瓶颈

针对网络瓶颈,现在冒似很少,不过也不是没有,首先想一下如果有网络的阻塞,断网,带宽被其他资源占用,限速等情况,应用程序或系统会是什么情况,针对WEB,无非是超时&#xff…

【ros2】ros2环境安装与基础入门

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍ros2环境安装与基础入门。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷…

【RF-SSA-LSTM】随机森林-麻雀优化算法优化时间序列预测研究(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

红帽认证考试难倒你?这些知识点可以帮你一臂之力

话不多说直接上干货,本篇文章适用于备考Linux红帽认证的同学。 常用的RPM软件包命令 常用的Yum命令 systemd与system V init的区别以及作用 如果想要将系统默认的运行目标修改为“多用户的文本界面”模式,可直接用ln命令把多用户模式目标文件链接到/e…

Pytest教程__用例分组(6)

用例分组 pytest进行分组测试的方法是使用装饰器 pytest.mark.标记名称,被标记为相同名称的用例可以看做为同一个组。 分组用例的运行方式是在执行命令中追加 -m "标记名称"的参数。 执行结果如下: 从结果可以看出,未被标记的用例…

aPaaS平台和低代码开发平台是一回事吗?哪个更好?

零代码、低代码、APaaS系统应从哪些指标考察选型?低代码、零代码、APaaS哪一个更好? 零代码、低代码、APaaS的概念在行业内已经流行了很长一段时间。那这3个概念分别指的是什么?企业如果要用该如何选?又有哪些好用的低代码平台推…

Oracle集群管理 -CRSD层进程启动过程与故障分析

1 CRSD启动过程 整体以及依赖关系如图展示: crsd.bin从OCR中获取所需要的资源列表。 crsd.bin启动对应的代理进程。代理进程oraagent_root启动集群的公网资源之后集群的VIP和scan vip资源也被启动。代理进程oraagent_grid启动进而vip对应的listener资源,…

unity制作愤怒的小鸟

文章目录 一、 介绍SpringJoint2D 、line renderer制作发射绳基类bird脚本的基础功能给bird添加飞行拖尾效果pig类游戏胜利的小星星烟花界面摄像机跟随移动游戏失败的界面多种小鸟的制作:黄鸟、绿鸟、黑鸟地图选择关卡选择数据保存制作多个关卡场景异步加载游戏全局…

Unity基础4——LineRenderer

一、参数面板 二、参数介绍 Loop:是否首尾相连 Positions:线段的点 Width:线段宽度曲线的调整 Color:颜色变化 需要搭配材质才有效果 Corner Vertices:角顶点、圆角 此属性指,在一条线中绘制角时使用了…

模块化互联产品 --青翼自研 模拟采集FMC子卡产品资料

FMC121是一款基于FMC标准规范,实现2路14-bit、1GSPS ADC同步采集,2路16-bit 2.5GSPS DAC同步回放功能子卡模块。该模块遵循VITA57.1标准,可直接与FPGA载卡配合使用,板卡ADC器件采用ADI的AD9680芯片,该芯片具有两个模拟…