草庐IT

Cascading

全部标签

hadoop - Cascalog first-n - 无法连接谓词

我正在处理followingexample在来自cascalogproject的克隆中的leinrepl.我跑过:(defsrc[[1][3][2]])(defqueryx(?y)))(?但是当我尝试这个时:(?我明白了IllegalArgumentExceptionUnabletojoinpredicatestogetherjackknife.core/throw-illegal(core.clj:100)这似乎是查询创建与执行的对比。是否可以创建执行此查询的查询? 最佳答案 根据文档,first-n返回一个查询,并且查询对象也用

scala - mutable.Buffer 不适用于类型安全 API 的 Scalding JobTest

我几乎完成了我的Scalding项目,该项目使用类型安全API而不是字段API。在整个项目设置中留给我的最后一个问题是整个Scalding作业本身的集成测试(我已经完成了类型安全外部操作模式的单元测试耶!)。这意味着运行完整的作业并测试我的作业的各种接收器的输出。然而,一些非常奇怪的事情正在发生。在我的typedSink{scala.collection.mutable.Buffer[]=>Unit}似乎我的程序没有看到缓冲区或对缓冲区做任何事情,所以集成测试总是通过,即使它不应该通过。下面是工作本身和有助于阐明正在发生的事情的测试:objectMyJob{valinputArgPat

hadoop - 如何在 Scalding 中一次对多列进行平均?

作为使用Scalding进行某些计算的最后一步,我想计算管道中列的多个平均值。但是下面的代码不起作用myPipe.groupAll{_average('col1,'col2,'col3)}有没有什么方法可以在不进行多次传递的情况下计算此类函数sum、max、average?我很关心性能,但也许Scalding足够聪明,可以通过编程方式检测到这一点。 最佳答案 这个问题在cascading-user中得到了回答论坛。在这里留下答案作为引用myPipe.groupAll{_.average('col1).average('col2).a

hadoop - 在哪里可以找到安装和运行 cascading.jruby 的教程?

我安装了Hadoop并且测试正常,但是无法在上找到关于n00b的任何说明如何设置级联和cascading.jruby。在哪里放置级联Jar以及如何配置jading以正确构建ruby​​程序集?是否有人使用jenkins自动构建它?编辑:更多细节我正在尝试从https://github.com/etsy/cascading.jruby构建示例字数统计作业我已经安装了hadoop,并成功运行测试。安装jrubygem安装cascading.jrubyJade-https://github.com/etsy/jading安装Ant创建了wordcount示例wc.rb运行jade将wc.rb

Hadoop mapreduce 与级联,在比较基础处理时间时哪个更好?

我也使用过级联以及M/R,与M/R相比,级联作业看起来很慢。看起来我慢了25%到50%。是真的还是我需要在级联中挖掘更多以进行优化。 最佳答案 我无法将Cascading作业的开销与手绘原始MapReduce作业进行比较,因为它实际上取决于工作负载的复杂性、Cascading的版本、您编写每个作业的方式、Amazon内部的天气或您的网络,等等也就是说,Cascading是对MapReduce的抽象,会有一些开销。但作为一种抽象,它有机会更有效地做事(例如,1.2将在排序期间延迟反序列化数据,原始MR开发人员需要通过Comparato

Hadoop "Style"-- 分块与数千 (k, v) 对

我正在处理许多大文件,这些文件包含对应于nasa的MODIS网格的数据矩阵——网格将地球表面分割成一个21,600x43,200像素的阵列。这个特定的数据集为每个像素提供一个整数值。我有大约200个文件,每个月一个文件,需要为每个像素创建一个时间序列。我的问题是,对于采用这些文件之一的maptask——我是否应该将网格切割成block,比如24,000像素,并将它们作为值(以位置和时间段作为键)发出,或者简单地为每个像素发出一个键值对,在规范的字数统计示例中将像素视为一个字?分块会很好地工作,它只是在我的程序中引入了一个任意的“block大小”变量。我的感觉是,这会在IO上节省不少时间

使用hadoop连接同一目录中的两个文件

我完全是hadoopn00b。作为我的第一个hadoop项目,我正在尝试解决以下问题。我在亚马逊S3存储桶中有一百万多个子文件夹。这些文件夹中的每一个都有两个文件。文件1有如下数据:date,purchaseItem,purchaseAmount01/01/2012,Car,1200001/02/2012,Coffee,4....................File2包含以下格式的客户信息:ClientId:Id1ClientName:"SomeName"ClientAge:"SomeAge"在存储桶中的所有文件夹中重复相同的模式。在将所有这些数据写入HDFS之前,我想按如下方式加

Hadoop 级联 : CascadeException "no loops allowed in cascade" when cogroup pipes twice

我正在尝试编写由两个流程组成的Casacading(v1.2)级联(http://docs.cascading.org/cascading/1.2/userguide/htmlsingle/#N20844):1)第一个流输出urls到数据库表,(其中它们通过自动递增的id值自动分配id)。此流程还将url对输出到SequenceFile中。字段名称为“urlTo”、“urlFrom”。2)第二个流程从这两个来源读取并尝试执行CoGroup在“urlTo”(来自SequenceFile)和“url”(来自数据库源)上获取每个“id”的数据库记录“urlTo”。然后它执行CoGroup在“

hadoop - 在 Hadoop 级联中从管道外部的管道获取字段值

关于上述主题,有没有办法从管道中获取字段的值。并在HadoopCascading的管道范围之外使用该值?数据的分隔符为“|”:first_name|descriptionBinod|nothingRohit|nothingRamesh|abc从上面的管道我需要从描述中获取一个值,无论是'nothing'还是'abc'. 最佳答案 HadoopCascading的开发理念是通过在管道之间流动数据并在Map-ReduceHadoop系统上并行执行来创建真实案例场景。java程序的执行不需要依赖于其余的级联流(从创建sourcetap到s

java - 以编程方式确定 Scalding/Cascading Pipe 的字段名称

我正在使用Scalding处理包含许多(>22)个字段的记录。在该过程结束时,我想将最终Pipe的字段名称写到一个文件中。我知道这是可能的,因为Mapper和Reducer日志会显示此信息。我想在工作本身中获取此信息,以将其用作穷人模式的基础。如果这不可能做到,那么是否有一种很好的方法可以将类型安全的PipesAPI用于大型记录(即,无需求助于任意嵌套的元组或案例类)? 最佳答案 .write(Tsv("filename.tsv"),writeHeader=true)通过设置writeHeader=true,您告诉.write函数也