您的位置:首页 > 大数据

大数据应用统一集成平台CDAP简介

2017-09-22 09:53 309 查看
CDAP概述

CDAP的特性

CDAP的架构和技术

CDAP的适用场景

CDAP的优缺点

总结

CDAP概述

CDAP (CAST DATA APPLICATION PLATFORM)是一个开源的大数据应用统一集平台,帮助应用开发者和系统管理员基于Hadoop技术栈来构建、测试、部署、管理数据应用程序。CDAP由Datasets、Programs、 Services、Tools等组件组成,如图1 所示:



其中:

CDAP Datasets:是存储在HDFS和HBase中数据的逻辑表示,Datasets提供从应用中写数据的接口层,不关心底层存储引擎,允许以重用库的方式封装应用数据。

CDAP Programs:应用程序可使用不同的开源框架如MapReduce、Spark和realtime Flow来处理,CDAP附带App container来整合每个处理框架,并提供一种标准化的方式来开发、部署和管理程序。

CDAP Services:系统级服务,在开发和生产环境中支持数据和应用程序,包括应用管理,元数据管理,数据流和安全。

CDAP Tools: 包括开发工具如:Maven、SDK、调试工具、测试框架和操作界面(UI)。

CDAP支持多种运行环境,基于内存、单机和集群,CDAP子项目提供和CDAP交互的SDK和工具、applications和可重用的大数据组件(packs)



CDAP的特性

数据提取

通过流的方式提供了可扩展、可靠的实时和批量数据提取,支持push和pull,支持Flume, Kafka 和 REST,支持SQL-like 数据查询,如下图所示。



ETL管道

实现无代码配置,通过ETL模板部署和管理ETL管道

事务处理

CDAP为HBase和HDFS集成了一个可扩展的分布式事务处理引擎,称为Tephra。

实时,批量和SQL

CDAP公开进行实时、批处理和SQL访问所有数据,而无需任何数据复制。

运行可移植性

CDAP支持三种不同的运行模式:基于内存、本地和分布式。其中基于内存和单机模式主要用于测试和调试。

复杂的数据模式

CDAP支持跨越多个表,行和非幂等操作。

Tigon Flows

CDAP允许与Tigon Flows进行可扩展的实时流处理。

流程

CDAP提供通过时间或数据的可用性实现工作流的自动化批处理。

服务

CDAP应用通过定制的HTTP服务对外部客户端提供服务

Namespace

CDAP命名空间对集群中相互隔离的多用户提供应用程序和数据

安全

CDAP集群提供周边安全和可插拔的认证机制。

管理

CDAP控制台对集群和应用程序提供一站式操作和管理

CDAP的架构和技术

CDAP应用程序

Streams:用于实时数据采集;

Programs:Flows、MapReduce、Spark用于实时或批量数据处理;

Datasets:抽象为数据存储;

Services:为外部客户端提供数据服务。



CDAP组件及其交互

Router: 外部客户端接入到CDAP唯一的公共接入点,它转发客户端请求到相应的系统服务或应用程序,还执行认证服务。

Master: 控制和管理所有服务和应用程序。

System Services: 提供重要平台功能 (数据集、事务、服务发现日志和指标收集)。运行在application containers中。

Application containers: 抽象和隔离执行应用程序代码,线性和弹性扩展底层基础设施。



CDAP抽象

CDAP从底层基础架构解耦数据和应用程序,使具有可移植性。允许在Hadoop的生态系统的各个组件的抽象层上抽象数据和应用。访问和操作数据,通过CDAP的Datasets,而不是如HDFS和HBase这样的实际存储引擎。使用CDAP提供的开发接口去编写程序并在内部应用程序容器运行,容器为逻辑抽象并可在多个环境中运行,如内存,单机或分布式集群,无需修改代码就可在不同的环境中部署和运行。



CDAP功能架构



CDAP抽象

数据抽象

在CDAP应用程序中,你通过Datasets与数据交互。Datasets提供了抽象通过:

抽象了数据的实际存储,在写代码和查询过程中,不必知道数据存储在哪里;

数据访问模式和业务逻辑封装在可重用的、托管的Java代码中;

使用CAST Tephra事务机制,保证高并发时访问数据的一致性;

数据集可在不同的编程模式下运行,只需数据在Datasets中,能在实时、批处理、ad-hoc SQL查询中直接使用。

应用抽象

CDAP的编程接口在不同运行环境有多种实现,通过CDAP Developer API构建应用程序,该API隐藏了编程模式和执行环境的低层细节。它丰富了通常大数据应用需要的众多有用服务的基础设施,如服务发现,日志和指标的收集和配置等。这些服务的环境特定的实现是通过CDAP注入到该应用程序的运行的app container,程序并不需要根据环境而改变。这允许在自己的环境中独立开发、测试,然后无缝地在不同的分布式集群环境中部署它们。

应用程序的部署以及其生命周期的管理、监测是通过CDAP Client API来完成。同Developer API ,环境的改变对其无影响。

CDAP编程接口

Developer Interface:开发者接口用于构建应用程序,并提供只运行在内部app container代码的各种Java API。

Client interface:客户端接口是一个RESTful API,是外部客户端可以与CDAP和应用程序进行交互的唯一途径。这些API不能从容器内访问,如应用程序生命周期管理和监控。作为一种替代HTTP,客户端库中含有不同的编程语言,包括Java、Python和Ruby。



CDAP的适用场景

时间序列数据分析

日志处理Web应用分析

实时网络应用分析

社交应用分析

推荐引擎

OLAP与多维数据分析

CDAP的优缺点

简单

CDAP提供了一个high-level的综合框架使开发人员和操作人员轻松学习,集成和管理各个开源项目。构建在CDAP上的应用程序分离业务逻辑和基础架构API,大大降低复杂性和总体成本。

综合能力强大,避免时间浪费在常规任务上;

概念完整,只需与标准层整合一次;

框架严密,不必担心应用程序逻辑出错;

快速

CDAP使开发人员能够快速通过丰富的用户界面和交互shell获得具有内置的数据提取,探索和转换功能。可重用的抽象层使开发人员快速构建以数据为中心的应用程序,并投入实际生产。

丰富的用户界面和交互shell可在使用Hadoop时无需编写代码;

应用程序模板和数据模式,方便编写特定API逻辑;

运行时服务和工具,确保可以可靠地测试,并迅速转移到实际生产;

创新

CDAP使得Hadoop中的所有数据可实时访问,批量处理和Ad-hoc SQL分析,而无需编写代码、管理元数据或复制任何数据。先进的功能扩展、高吞吐实时提取和事务处理、同时保持数据一致性,将颠覆应用案例。

实时、批处理和SQL整合意味着数据可用于所有的访问模式;

灵活的实时和批处理提取,可从任何来源摄取任何类型的数据;

事务和一致性,打造面向用户的大规模实时应用。

总结

CDAP是在原有Hadoop 生态系统组件上进行一层封装并集成成单一平台,Datasets 逻辑标识Hadoop的平台数据,使开发人员不用关注数据存储在哪里。CDAP将数据和应用抽象使得开发者能够简化和加速应用开发,并能够解决实时和批量问题。提供的服务和工具,能够实现更快的应用程序创作。CDAP提出的思想较新颖但旨在提高开发速度,而不能提高现有运算框架性能,暂不支持Spark,目前CDAP社区活跃度不够,只有少数爱好者和Cast公司在研究,并鲜有公司实际投入开发,无可参考例子,建议交通大数据项目暂不考虑此方案。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop 大数据 CDAP