|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
java比较简单,没有C++的烦琐,但学习时最好有C++为基础.与JSP和SQL起应用,功能强大.
ApacheCrunch(孵化器项目)是基于Google的FlumeJava库编写的Java库,用于创立MapReduce流水线。与其他用来创立MapReduce功课的高层工具(如ApacheHive、ApachePig和Cascading等)相似,Crunch供应了用于完成如毗连数据、实行聚合和排序纪录等罕见义务的形式库。而与其他工具分歧的是,Crunch其实不强迫一切输出遵守统一数据范例。相反,Crunch利用了一种定制的范例体系,十分天真,可以间接处置庞大数据范例,如工夫序列、HDF5文件、ApacheHBase表和序列化对象(像protocolbuffer或Avro纪录)等。
Crunch其实不想制止开辟者以MapReduce体例思索,而是实验使之简化。只管MapReduce有诸多长处,但对良多成绩而言,并不是准确的笼统级别:年夜部分成心思的盘算都是由多个MapReduce功课构成的,情形常常是如许——出于功能思索,我们必要将逻辑上自力的操纵(如数据过滤、数据投影和数据变更)组合为一个物理上的MapReduce功课。
实质上,Crunch计划为MapReduce之上的一个薄层,但愿在不就义MapReduce力气(大概说不影响开辟者利用MapReduceAPI)的条件下,更简单在准确的笼统级别办理手头成绩。
只管Crunch会让人想起汗青久长的CascadingAPI,可是它们各自的数据模子有很年夜分歧:依照知识复杂总结一下,能够以为把成绩看作数据流的人会偏幸Crunch和Pig,而思索SQL作风毗连的人会偏幸Cascading和Hive。
Crunch的理念
PCollection和PTable<K,V>是Crunch的中心笼统,前者代表一个散布式、不成变的对象汇合,后者是Pcollection的一个子接口,个中包括了处置键值对的分外办法。这两个中心类撑持以下四个基础操纵:
parallelDo:将用户界说函数使用于给定PCollection,前往一个新的PCollection作为了局。groupByKey:将一个PTable中的元素依照键值排序并分组(同等于MapReduce功课中的shuffle阶段)
combineValues:实行一个联系关系操纵来聚合来自groupByKey操纵的值。
union:将两个或多个Pcollection看作一个假造的PCollection。
Crunch的一切高阶操纵(joins、cogroups和setoperations等)都是经由过程这些基础原语完成的。Crunch的功课企图器(jobplanner)吸收流水线开辟者界说的操纵图,将操纵分化为一系列相干的MapReduce功课,然后在Hadoop集群上实行。Crunch也撑持内存实行引擎,可用于当地数据下流水线的测试与调试。
有些成绩能够从可以操纵定制数据范例的年夜量用户界说函数受害,而Crunch就是为这类成绩计划的。Crunch中的用户界说函数计划为轻量级的,为满意使用程序的必要,仍旧供应了完全的会见底层MapReduceAPI的功效。Crunch开辟者也能够利用Crunch原语来界说API,为客户供应触及一系列庞大MapReduce功课的初级ETL、呆板进修和迷信盘算功效。
Crunch起步
能够从Crunch的网站:http://incubator.apache.org/crunch/download.html下载最新版本的源代码或二进制文件,大概利用在MavenCentral发布的dependencies。
<p>
C#跟java类似,但是在跨平台方面理论上可以跨平台,实际上应用不大,执行性能优于java,跟C++基本一致,但是启动速度还是慢.代码安全,但容易性能陷阱. |
|