|
|
1
25
我已经使用级联技术好几年了。我觉得这非常有帮助。归根结底,这关乎生产率的提高。与普通java代码相比,我可以更有效地创建和维护M/R作业。原因如下:
虽然有很多预构建的组件可以组合在一起,但是如果处理逻辑的某个特定部分似乎更容易用纯Java编写,那么您可以创建一个级联函数来包装它。这允许您获得级联的好处,但是非常定制的操作可以编写为直接的java函数(实现级联接口)。 |
|
|
2
51
记住我是级联的作者。。。 我的建议是使用猪或蜂箱,如果他们对你的问题有意义,尤其是猪。 但是,如果您从事的是数据业务,而不仅仅是在数据周围寻找见解,您会发现级联方法对于大多数问题来说比原始MapReduce更有意义。
此外,如果必须在映射器和还原器之间不断移动函数,那么重构和创建可重用代码将变得更加困难。或者从映射器到以前的缩减器来获得优化。这就导致了脆性的问题。 级联相信尽可能快地失败。在Hadoop集群开始工作之前,规划器会尝试解析并满足所有这些字段名之间的依赖关系。这意味着90%以上的问题会在等待作业在执行期间找到之前被发现。
Cascalog 查看一个基于Clojure的框架示例,该框架用于简单地创建复杂的流程。或者 Bixo 对于一个比Nutch更容易定制的web挖掘工具包和框架来说。 最后,Hadoop永远不会单独使用,这意味着您的数据总是从某个外部源提取,并在处理后推送到另一个源。Hadoop的秘密在于它是一个非常有效的ETL框架(因此,听到ETL供应商谈论使用他们的工具将数据推送到Hadoop或从Hadoop拉入数据是愚蠢的)。级联允许您独立于集成端点编写操作、应用程序和单元测试,从而在一定程度上减轻了这种痛苦。级联在生产中用于加载系统,如Membase、Memcached、Aster Data、Elastic Search、HBase、Hypertable、Cassandra等(不幸的是,并非所有的适配器都是由作者发布的) 如果你愿意的话,请给我一份你在界面上遇到的问题列表。我一直在寻找更好的方法来改进API和文档,用户社区也一直在提供帮助。 |
|
|
3
6
我使用Bixo级联来为一个大型社交网络编写完整的反垃圾邮件链接分类管道。
与蜂巢或猪IMHO相比的一大优势是级联是一个单独的jar,您可以将其与您的工作捆绑在一起。Pig和Hive有更多的依赖关系(例如MySQL),或者没有那么容易嵌入。 免责声明: 虽然我认识克里斯·温塞尔,但我真的认为层叠是一个好主意。考虑到它的复杂性,令人印象深刻的是,我还没有发现一个bug使用它。 |
|
|
4
6
我在级联中看到的最大优势是,它允许您从字段操作的角度考虑数据处理工作流,并且(大部分)避免担心如何将这种世界视图转换到键/值模型上,而键/值模型本质上是任何map reduce实现的一部分。 层叠的最大挑战是,它是一种不同的数据处理工作流的思考方式,在一切开始变得有意义之前,您需要克服相应的概念“驼峰”。另外,错误消息可以提醒lex/yacc的一个输出(“shift/reduce中的冲突”):) --肯 |
|
|
5
2
我认为Cascading的优势开始显现出来的地方是这样一个例子:您有一堆简单的函数,这些函数在源代码中应该保持独立,但它们都可以被收集到映射器或reducer中的一个组合中。把它们放在一起会让你的基本地图减少代码的可读性,把它们分开会让程序非常慢。级联的优化器可以将它们放在一起,即使您单独编写它们。Pig和Hive在某种程度上也可以做到这一点,但是对于大型程序,我认为级联有一个可维护性优势。 几个月后,flume可能会成为表现力的竞争对手,但如果您有真正的程序要在生产环境中编写和运行,那么级联可能是您的最佳选择。 |
|
|
6
1
级联允许您使用简单的字段名和元组来代替Hadoop提供的基本类型, "... 对于创建复杂的、高度可组合的、可在不同开发人员之间共享的代码来说,往往处于错误的粒度级别” ( Tom White , Hadoop The Definitive Guide 我相信你已经有了这个,但这是用户指南: http://www.cascading.org/1.1/userguide/pdf/userguide.pdf . 它为典型的级联应用程序中的数据流提供了一个良好的遍历。 |
|
7
1
我在级联上工作了几年,下面是 useful things in cascading
|
|
|
8
0
层叠是围绕Hadoop的包装器,它提供与Hadoop之间的连接和接收。 为所有任务编写映射器和缩减器将是乏味的。尝试编写一个级联作业,然后就可以避免编写任何映射器和缩减器。
有了这两种能力,即避免编写带有缩减器的特殊Hadoop映射器的能力和使用各种数据源的能力,您可以非常快速有效地解决许多数据处理问题。 级联不仅仅是一个简单的hadoop包装器,我试图保持简单的答案。例如,我使用级联jdbc tap将一个包含数TB数据的大型mysql数据库移植到日志文件中 |