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

  • CDAP概述
  • CDAP的特性
  • CDAP的架构和技术
  • CDAP的适用场景
  • CDAP的优缺点
  • 总结

CDAP概述

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

大数据应用统一集成平台CDAP简介_第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简介_第2张图片

CDAP的特性

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

大数据应用统一集成平台CDAP简介_第3张图片

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简介_第4张图片

CDAP组件及其交互
      Router: 外部客户端接入到CDAP唯一的公共接入点,它转发客户端请求到相应的系统服务或应用程序,还执行认证服务。
      Master: 控制和管理所有服务和应用程序。
      System Services: 提供重要平台功能 (数据集、事务、服务发现日志和指标收集)。运行在application containers中。
      Application containers: 抽象和隔离执行应用程序代码,线性和弹性扩展底层基础设施。
大数据应用统一集成平台CDAP简介_第5张图片

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

大数据应用统一集成平台CDAP简介_第6张图片

       CDAP功能架构
大数据应用统一集成平台CDAP简介_第7张图片

       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简介_第8张图片

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)