Cascading介绍

1.1 关于Cascading

Cascading是一个数据处理的API和查询处理计划,用于定义,共享数据处理工作流,还能在单一计算节点或分布式计算集群上执行数据处理工作流。在单一计算节点,Cascading的本地模式(local mode)可以在部署到集群之前,用于测试代码和处理本地文件。在一个部署了Apache Hadoop的分布式计算集群上,Cascading在Hadoop API上增加了一个抽象层,大大简化了Hadoop 应用程序的开发,job的创建和调度。


1.2 Cascading使用场景

为什么用Cascading?

Cascading的开发是为了使企业能够使用Hadoop快速开发复杂的数据处理应用。Cascading的典型使用需求,是以下两种情况之一:

  1. 不断增加的数据超过单个计算系统的处理能力。对此,开发商可能采取Apache的Hadoop作为基础计算设施,但发现在Hadoop上开发有用的应用程序不是件小事。Cascading减轻了这些开发商的负担,使他们能够在成比例增长的计算集群上快速创建,重构,测试和执行复杂的应用。

  2. 不断增加的数据处理复杂性导致一次性的数据处理应用随意蔓延到数据中心中任何可用的磁盘空间或CPU上。Apache Hadoop通过全局命名空间的文件系统来解决这个问题,它提供了一个单一的可靠的存储框架。在这种情况下,Cascading减轻了开发人员的学习曲线,同时能让开发者能转换现有的程序以提高可靠性和可扩展性,并顺利在Hadoop集群上执行。此外,它可以让开发人员创建可重用的库和应用程序,分析师还可用这些应用程序和类库来从Hadoop的文件系统中提取数据。

谁是Cascading的使用者?

Cascading的用户通常分为三种人:

  1. 申请执行人是一个人(例如,一个开发商或分析师)或进程(例如,cron作业),在给定的集群上运行一个数据处理应用。这通常是通过命令行完成的,使用编译的Apache的Hadoop和Cascading库预先打包的Java Jar文件。这个应用程序可以接受命令行参数来定制给定的执行,并且通常从Hadoop的文件系统中导出一个数据组用于某种特定的目的。

  2. 过程装配工是一个把数据处理的工作流装配到单一应用程序的人。这一工作一般是一个开发任务,涉及链接操作,作用于一个或多个输入数据集,产生一个或多个输出数据集。可以用原始的Cascading Java API来完成,或用脚本语言,如Scala,Clojure,Groovy,JRuby,或Jython(或通过在这些语言实现的DSL的一种)。

  3. 操作开发者是写独立的函数或操作(通常用Java)或可重复使用的组件的人,这些东西作用于数据处理工作流。一个简单的例子是一个分析器,它接受一个字符串,并将其转换为整数。操作等同于读取输入参数并返回数据的Java函数。他们可以在任何粒度执行,从简单的解析字符串,或使用第三方库在参数上执行复杂的处理过程。

所有这三个角色可以由开发人员来充当,但是因为Cascading支持这些职责完全分离,一些组织可能选择使用非开发人员在Hadoop集群上运行专门的应用程序或建立工序。


1.3 什么是Apache Hadoop?

引用自Hadoop的网站,它“是一个软件平台,可以让一身轻松编写和运行处理海量数据的应用程序”。 Hadoop提供一个数据存储层保存大量数据,并提供一个执行层运行并行的跨集群的应用程序,它通过调度存储数据的子集来实现数据处理。


1.4 Hadoop 1 VS Hadoop 1 

Cascading2.6通过提供了两个Java的依赖实现同时支持Hadoop的1.x和2.x,Cascading-hadoop.jar和Cascading-hadoop2-mr1.jar。这些依赖关系可以互换,但hadoop2-mr1.jar引入了新API并在适当的地方调用了废弃的老API。应当指出的hadoop1-mr1.jar仅支持的MapReduce1 API约定。有了这个命名方案,新API约定可以引入并避免命名冲突。


翻译链接:http://docs.cascading.org/cascading/2.6/userguide/html/

初次翻译,只是在Google翻译的基础上进行了修正,方便看而已,要求高的自觉绕过看原文。

转载注明。


你可能感兴趣的:(Cascading介绍)