大数据及hadoop生态思维导图
2021-06-01 15:11:27 6 举报
AI智能生成
大数据及hadoop生态思维导图
作者其他创作
大纲/内容
Hadoop关键技术
Hadoop分布式文件系统(HDFS)
是什么
来源于谷歌发表的一篇论文 GFS,是一个可扩展的分布式系统
提供容错机制,允许使用廉价的计算机集群来提供性能不错的文件存取服务
它是一个文件系统,用来存取文件,通过目录树来定位文件
做什么
为分布式计算框架提供文件存取服务
MapReduce
是什么
MapReduce 是 Apacheh 旗下开源软件 Hadoop 的三大核心之ー,是一款分布式计算编程框架
做什么
整合用户编写的自定义业务逻辑代码和 Mapreduce 框架中的分布式代码,构成一个完成的分布式应用程序,以便完成分布式计算任务
YARN
是什么
是作业调度和集群资源管理的一套框架
做什么
管理内存和CPU资源
Ozone
是什么
专门为Hadoop设计的可扩展的分布式对象存储系统
做什么
Ozone能够轻松管理小文件和大文件
Apache Ozone 从 Hadoop 子项目移至顶级 Apache 项目
其他大数据框架
Spark
是什么
是用于大数据处理的集群计算框架,最大的特点是数据都在内存中完成计算和处理
core: RDD,弹性分布式数据集,在集群中夸多个机器分区存储的对象集合能做什么
做什么
适合于送代计算和交互式分析
Flink
是什么
Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。
做什么
Flink最适合的应用场景是低时延的数据处理(Data Processing)场景:高并发pipeline处理数据,时延毫秒级,且兼具可靠性。
Storm
是什么
Apache Storm是一个分布式、可靠、容错的实时流式数据处理的系统。
做什么
侧重于极低延迟的流处理框架,也许是要求近实时处理的工作负载的最佳选择。该技术可处理非常大量的数据,通过比其他解决方案更低的延迟提供结果
数据库及数据管理
HBase
是什么
面向列的分布式数据库
不是关系型数据库,不支持 SQL
做什么
实时的、随机访问超大规模数据集(上亿行数据,上百列
Cassandra
是什么
Apache Cassandra是一个开源,分布式和分散式/分布式存储系统(数据库)。
它提供高可用性的服务,没有单点故障
做什么
NoSQL类型的数据库
Accumulo
是什么
带有单元级安全的Name-value数据库
一个基于Google’s BigTable的高扩展性存储数据库
做什么
Accumulo支持高效存储和结构多样化,包括范围查询,为MapReduce的job提供input和output支持
提供自动负载均衡和分片,数据压缩和安全机制
Memcached
是什么
开源的,高性能,分布式内存对象缓存系统
一个简洁的key-value存储系统
做什么
一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果
通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性
Kylin
是什么
Hadoop 大数据平台上的一个开源 OLAP 引擎
做什么
通过定义多个 Cube(数据立方体)来构建大数据查询 SQL
Redis
是什么
Remote Dictionary Server,是一个 key- value 存储系统
做什么
数据缓存,快速存取服务
MongoDB
是什么
一个基于分布式文件存储的数据库
一个介于关系数据库和非关系数据库(nosql)之间的产品
做什么
为WEB应用提供可扩展的高性能数据存储解决方案
将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组
Hive
是什么
构建在 Hadoop 上的数据仓库
一般在工作站上运行,把 SQL转换为在 Hadoop 的一系列作业
做什么
通过 Hiveql 对 HDFS 上的数据对象进行管理和操作
数据存储、查询、内部表和外部表的加载与管理
Giraph
是什么
基于Hadoop的开源图形处理平台
做什么
Giraph 的目的是为了解决大规模图的分布式计算问题。通过隐藏分布式和并行计算的细节以及提供一套用于描述图算法的 API,Giraph 不仅拥有了很好的可扩展性,还降低了分布式图计算的使用门槛。
Spark SQL
是什么
是Spark的一个组件,用于结构化数据的计算
做什么
提供了两个编程抽象分别叫做DataFrame和DataSet,它们用于作为分布式SQL查询引擎
Impala
是什么
Impala直接对存储在HDFS、HBase或对象存储服务(OBS)中的Hadoop数据提供快速、交互式SQL查询。
做什么
Impala还使用与Apache Hive相同的元数据,SQL语法(Hive SQL),ODBC驱动程序和用户界面(Hue中的Impala查询UI)。
作为查询大数据的工具的补充,Impala不会替代基于MapReduce构建的批处理框架,例如Hive。
Chukwa
是什么
用于管理大型分布式系统的数据收集系统
做什么
包含了一个强大和灵活的工具集,可用于展示、监控和分析已收集的数据
序列化
Avro
是什么
是Hadoop的一个子项目
Avro是一个数据序列化系统,设计用于支持大批量数据交换的应用
做什么
支持二进制序列化方式,可以便捷,快速地处理大量数据;
动态语言友好,Avro提供的机制使动态语言可以方便地处理Avro数据。
JSON
是什么
是一种轻量级的数据交换格式
做什么
采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言
Protocol Buffers
是什么
是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,不依赖于语言和平台并且可扩展性极强
做什么
可以定义你的数据的结构,并生成基于各种语言的代码
这些你定义的数据流可以轻松地在传递并不破坏你已有的程序。并且你也可以更新这些数据而现有的程序也不会受到任何的影响。
Parquet
是什么
面向分析型业务的列式存储格式,由Twitter和Cloudera合作开发
做什么
基本上通常使用的查询引擎和计算框架都已适配,并且可以很方便的将其它序列化工具生成的数据转换成Parquet格式。查询引擎: Hive, Impala, Pig, Presto, Drill, Tajo, HAWQ, IBM Big SQL计算框架: MapReduce, Spark, Cascading, Crunch, Scalding, Kite数据模型: Avro, Thrift, Protocol Buffers, POJOs
管理与监控
Ambari
是什么
一种基于Web的工具,支持Apache Hadoop集群的创建、管理和监控
做什么
从集群节点和服务收集大量信息,并把它们表现为容易使用的,集中化的接口:Ambari Web.
Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等;除此之外,Ambari还支持Spark、Storm等计算框架及资源调度平台YARN。
HCatalog
是什么
是Hadoop的表存储管理工具
做什么
HCatalog的表抽象向用户提供了Hadoop分布式文件系统(HDFS)中数据的关系视图,并确保用户不必担心数据存储在哪里或以什么格式存储
HCatalog支持读写任意格式的SerDe(序列化 - 反序列化)文件。
Nagios
是什么
Nagios是一个监视系统运行状态和网络信息的监视系统
做什么
Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等
Puppet
是什么
一种Linux、Unix、windows平台的集中配置管理系统
做什么
管理配置文件、用户、cron任务、软件包、系统服务等
能够帮助系统管理员管理基础设施的整个生命周期: 供应(provisioning)、配置(configuration)、联动(orchestration)及报告(reporting)
Chef
是什么
一个自动化部署框架
做什么
对所管理的对象实行自动化配置,如系统管理,安装软件等
ZooKeeper
是什么
Hadoop 的一个子项目,为分布式应用提供协调服务
提供一种可靠的、可扩展的、分布式的、可配置的协调机制,确保分布式服务的一致性
做什么
分布式共享锁:通过锁机制来确保一致性
统一命名服务:通过路径来探索资源
统一配置管理:分布式程序中的共享资源配置
集群管理:master 节点选举、服务节点动态上下线
队列管理:同步队列,FIFO队列控制
数据发布订阅
负载均衡:通过 Zookeeper:来实现服务动态注册、机器上线与下线的动态感知,扩容方便容错性好,且无中心化结构能够解决之前使用负载均衡设备所帯来的单点故障问题
Kafka
是什么
是一种高吞吐量的分布式发布订阅消息系统,基于 zookeeper 协调的分布式消息系统
Kafka 的目的是通过 Hadoop 的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息
做什么
可以实时的处理各种大数据场景,比如,基于 hadoop 的批处理系统、低延迟的实时系统 storm/ Spark 流式处理引擎,web/ nginx 日志、访问日志,消息服务等等
Oozie
是什么
数据协作框架,够提供对 Mapreduce 和 Pig Jobs 的任务调度与协调
Oozie需要部署到 Java Servlet 容器中
做什么
定义job,定时触发 workflow、绑定多个 coordinator
Ganglia
是什么
开源集群监控项目
做什么
设计用于测量和监控数以千计的节点。主要是采用监控系统性能,如cpu,内存,硬盘使用率,I/O负载,网络流量情况等
分析辅助
MapReduce接口
现在基本不用
分析库
自行搭建的分析平台,如算法
Pig
是什么
一个支持并行计算的高级的数据流语言和执行框架。它是 MapReduce 编程的复杂性的抽象。
做什么
Pig是一种高级编程语言,分析大数据集非常有用
Hadoop Streaming
是什么
Hadoop数据流是Hadoop自带发行的实用程序
做什么
该实用程序允许创建和运行Map/Reduce任务的任何可执行文件或脚本映射器和/或减速器。
Mahout
是什么
可扩展的机器学习和数据挖掘库
做什么
它提供的 MapReduce 包含很多实现方法,包括聚类算法、回归测试、统计建模
MLLib
是什么
Spark的专属机器学习工具
做什么
通用的学习算法和工具组成,包括分类、回归、聚类、协同过滤、降维等,同时还包括底层的优化原语和高层的管道 API
Hadoop图像处理接口(HIPI)
是什么
HIPI是hadoop图片处理的框架
做什么
提供了用于在分布式计算环境中执行图片处理任务的API
SpatialHadoop
是什么
开源的MapReduce扩展,
做什么
内置了空间高级语言,空间数据类型、空间索引和高效的空间操作
专门用于在ApacheHadoop集群上处理空间数据
Submarine
是什么
云原生机器学习平台
做什么
一个统一的 AI 平台,允许工程师和数据科学家在分布式集群中运行机器学习和深度学习工作负载。
数据传输
Sqoop
是什么
用于在 Hadoop 与传统数据库之间传递数据
做什么
数据抽取、转储
Flume
是什么
一个批量的数据传输工具,适合高并发、分布式的数据传输
做什么
日志采集、聚合、传输
DistCp
是什么
DistCp(Distributed Copy)是用于大规模集群内部或者集群之间的高性能拷贝工具
做什么
Distcp则可以实现的是A(hdfs)集群的数据拷贝到B(hdfs)集群,而分布式使得数据拷贝时,可以实现A级群的DN节点同时向B集群的DN节点发送数据,突破了单机拷贝的网卡速率限制,拷贝效率更高。
Distcp它使用Map/Reduce任务实现文件分发,错误处理和恢复,以及报告生成。 它把文件和目录的列表作为map任务的输入,每个任务会完成源列表中部分文件的拷贝。(实际上Distcp只用到了map,没用用到reduce)。
Storm
是什么
是一个分布式的,可靠的,容错的数据流处理系统
做什么
Storm是内存级计算,数据直接通过网络导入内存。读写内存比读写磁盘速度快n个数量级
容错性。Storm会管理工作进程和节点的故障。
水平扩展。计算是在多个线程、进程和服务器之间并行进行的。
Spark Streaming
是什么
Spark 核心 AP 的一个扩展,可以实现高吞吐量的,具备容错机制的实时流数据处理
做什么
接收 Kafka、Fume、HDFS 等各种来源的实时输入数据,进行处理后,处理结构保存在 H DFS、Database 等各种地方
安全、访问控制和审计
Sentry
是什么
Cloudera 公司发布的一个Hadoop开源组件,它提供细粒度基于角色的安全控制
做什么
安全授权:Sentry可以控制数据访问,并对已通过验证的用户提供数据访问特权。
细粒度访问控制:Sentry支持细粒度的Hadoop数据和元数据访问控制。
基于角色的管理
多租户管理
统一平台:Sentry为确保数据安全,提供了一个统一平台,使用现有的Hadoop Kerberos实现安全认证
Kerberos
是什么
Kerberos协议主要用于计算机网络的身份鉴别(Authentication)
做什么
该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。
Knox
是什么
Apache Knox Gateway是用于与Apache Hadoop部署的RESTAPI和UI交互的应用程序网关。
做什么
代理服务:Apache Knox项目的主要目标是通过代理HTTP资源提供对Apache Hadoop的访问。
认证服务:对USTAPI访问以及UIS的WebSSO流进行身份验证。LDAP/AD,基于头的PROAUTH,Kerberos,SAML,OAUTH都是可用的选项。
客户服务:可以通过DSL编写脚本或直接将Knox Shell类作为SDK来完成客户端开发。
云计算和虚拟化
Docker
是什么
开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。
做什么
运行应用程序的容器,也包括Hadoop节点
收藏
收藏
0 条评论
下一页