• Apache Pig


    Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。Pig为复杂的海量数据并行计算提供了一个简单的操作和编程接口。
    Pig的实现有5个主要的部分构成:如图所示:
    1.Pig自己实现的一套框架对输入、输出的人机交互部分的实现,就是Pig Latin 。2.Zebra是Pig与HDFS/Hadoop的中间层、Zebra是MapReduce作业编写的客户端,Zerbra用结构化的语言实现了对hadoop物理存储元数据的管理也是对Hadoop的数据抽象层,在Zebra中有2个核心的类 TableStore(写)/TableLoad(读)对Hadoop上的数据进行操作。3.Pig中的Streaming主要分为4个组件: 1. Pig Latin 2. 逻辑层(Logical Layer) 3. 物理层(Physical Layer) 4. Streaming具体实现(Implementation),Streaming会创建一个Map/Reduce作业,并把它发送给合适的集群,同时监视这个作业的在集群环境中的整个执行过程。 4.MapReduce在每台机器上进行分布式计算的框架(算法)。5.HDFS最终存储数据的部分。

    点击次数   官方主页【官方主页】   下载地址【下载地址】

    网友留言/评论

    我要留言/评论

    相关开源项目

    Java分布式系统 Apache River: Apache River是一个推动Jini技术发展和进步的开源项目。
    Jini 是以 Java 技术为核心的分布式系统,它通过使用一个简易的"即插即用"模型,能够随时改变硬件或者软件的配置,从而提供了一个支持快速配置的分布式计算环境。Jini 的迷人之处在于它能够使各种数字设备无需配置、安装或者人工干预,就能够在一个临时的称为服务联盟(federations of services)的设备集合中共同工作。联盟中的任何设备无论大小都可以自行管理,共同组成一个服务网络,联盟中的每一个成员都可以为其它成员提供资源或服务,同时又可以从其它成员那里获取自己所需的资源和服务,Jini 提供一套完善的机制使得硬件设备或者软件组件能够随时加入或者退出联盟。
    Jini 是一个主动的、响应式的分布式基础结构,它提供了在分布式环境中进行服务的建立、查找、通讯和调用的一整套机制。Jini 技术被设计成可以运用在任何有能力连入网络的器件上,而不论该器件运行什么软件或运行在哪种硬件设备之上。Jini 技术是以网络器件中的一个构件的面貌出现的,它为器件如何连入网络、共享信息和与网络进行互操作建立了一套规则,而同时又保持了对用户的完全透明。Jini 本身与平台无关,采用它的器件不再受到所用软件、处理器、设备驱动器,或传统网络协议的制约,其唯一要求只是一个能够运行 Java 字节码的虚拟机。
    可以这么理解:JINI是由Java技术构建的,在分布式环境中动态共享资源的一种编程模型。
    JOTM:JOTM 是一个基于Java开放源代码的事务处理管理器。它遵循JTA APIs规范与Business Transaction Protocol(BTP)规范以提供了对Web Service的支持。
    Commons Compress: Commons Compress提供了一组API用于操作(解压/压缩)ar、cpio、tar、zip、gzip和bzip2等格式的文件。ZipArchiveEntry entry = new ZipArchiveEntry(name);entry.setSize(size);zipOutput.putArchiveEntry(entry);zipOutput.write(contentOfEntry);zipOutput.closeArchiveEntry();

    Enhydra Octopus:Octopus是一个基于Java的ETL工具(数据抽取:Extract、转换:Transform、装载:Load)。它可以连接任何JDBC数据源并通一个XML文件完成数据转换。一个loadjob生成器提供从现存的数据库中生成Octopus loadjob构架.多种不同的数据可以被混合在一起(MSSQL, Oracle, DB2, QED, JDBC-ODBC with Excel and Access, MySQL, CSV-files, XML-files,..) Octopus自带三个特殊的JDBC驱动用来支持通过JDBC访问CSV-files (CSV-JDBC), MS-SQL (FreeTDS)和XML. Octopus支持用Ant和Junit创一个数据库/表并能在构建或测试过程中可以抽取/装载数据.
    Apache Continuum: Apache Continuum是一个企业级持续集成服务器。提供的特性包括:自动构建、发布管理、基于角色的权限管理、源码控制系统、与其它流行构建工具相集成。不管你是否需要集中构建,还是开发人员手动控制发布。Continuum都能够帮助你改进质量和维护一个协调的构建环境。
    MEDOR:MEDOR管理分布式对象请求的中间件.
    MEDOR与JORM结合为JOnAS J2EE应用服务器提供CMP2.0。
    MEDOR与JORM结合为Speedo提供JDO支持。
    Apache SSHD: Apache SSHD是一个100%纯Java类库用于在基于Java开发的客户端与服务器提供SSH协议支持。这个类库采用Apache MINA开发,它是一个可扩展和高性能的异步IO类库。
    Apache Tika: Apache Tika是一个Java工具包用于利用现有的解析类库,从不同格式的文档中(例如HTML,PDF,Doc),检测和提取出元数据和结构化内容。 功能包括: 1.检测文档的类型,字符编码,语言,等其他现有文档的属性。2.提取结构化的文字内容。3.该项目的目标使用群体主要为搜索引擎以及其他内容索引和分析工具。目前支持的文档格式和对应的解析类库如下: 



    文档格式
    相应的解析类库

    HTML
    TagSoup

    XML
    自定义

    微软的Office文档
    Apache POI

    OpenDocument format (ODF)
    自定义

    PDF
    Apache PDFBox

    EPUB
    自定义

    Rich Text Format (RTF)
    自定义

    压缩文件格式(如 ar, cpio, tar, zip, gzip, bzip2等)
    Apache组织的Commons Compress

    Txt
    ICU

    音频格式
    主要采用Java的标准图像处理包javax.sound

    图像格式
    Java的标准图像处理包javax.imageio, 以及 metadata-extractor软件包。

    视频格式
    目前只支持Flash格式。

    Java类文件
    自定义

    邮件mbox文件格式
    自定义
    Apache UIMA: Apache UIMA 是UIMA定义的Apache开源实现。UIMA是一个用于分析非结构化内容(比如文本、视频和音频)的组件架构和软件框架实现。这个框架的目的是为非结构化分析提供一个通用的平台,从而提供能够减少重复开发的可重用分析组件。 UIMA 架构允许您轻松插入定制的分析组件,并将它们与其他组件合并。您的 UIMA 应用程序不需要知道分析组件共同合作生成结果的细节。集成和组织多个分析组件是 UIMA 框架的工作。 UIMA 应用程序可能分析纯文本并识别人员、位置和组织;它也可能识别关系,比如为谁工作或在什么地方工作。应用程序通常可以拆分成组件。例如 “语言识别” => “特定于语言的部分” => “句子范围检测” => “实体检测(人员/位置的名称等等)”。
    Apache Cassandra: Apache Cassandra是一套开源分布式Key-Value存储系统。它最初由Facebook开发,用于储存特别大的数据。拥有:分布式;基于column的结构化;高伸展性等特点。它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能 是比较简单的事情,只管在群集里面添加节点就可以了。Cassandra是一个混合型的非关系的数据库,类似于Google的BigTable。其主要功能比Dynomite(分布式的Key-Value存 储系统)更丰富,但支持度却不如文档存储MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库 的。支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。)Cassandra最初由Facebook开发,后转变成了开源项目。它是一个网络社交云计算方面理想的数据库。以Amazon专有的完全分布式的Dynamo为基础,结合了Google BigTable基于列族(Column Family)的数据模型。P2P去中心化的存储。很多方面都可以称之为Dynamo 2.0。