gpt4 book ai didi

hadoop - Cassandra Hadoop map reduce with wide rows ignores slice predicate

转载 作者:可可西里 更新时间:2023-11-01 16:33:34 27 4
gpt4 key购买 nike

我有一个宽行列族,我正在尝试对其运行 map 缩减作业。 CF 是按时间顺序排列的事件集合,其中列名本质上是时间戳。我需要针对 CF 中的特定日期范围运行 MR 作业。

当我在 widerow 属性设置为 false 的情况下运行作业时,预期的列切片将传递到映射器类中。但是当我将 widerow 设置为 true 时,整个列族都会被处理,而忽略切片谓词。

问题是我必须使用 widerow 支持,因为如果一次加载,切片中的列数会变得非常大并消耗所有内存。

我找到了概述问题的这个 JIRA 任务,但由于“无法重现”而被关闭 - https://issues.apache.org/jira/browse/CASSANDRA-4871?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel

我正在运行 cassandra 1.2.6 并在我的 jar 中使用 cassandra-thrift 1.2.4 和 hadoop-core 1.1.2。 CF 是使用 CQL3 创建的。

值得注意的是,无论我是使用 SliceRange 还是使用 setColumn_names() 指定列,都会发生这种情况 - 它仍然处理所有列。

我们将不胜感激任何帮助。

最佳答案

看来这是设计使然。在github中的word_count例子中,存在如下注释:

// this will cause the predicate to be ignored in favor of scanning everything as a wide row
ConfigHelper.setInputColumnFamily(job.getConfiguration(), KEYSPACE, COLUMN_FAMILY, true);

呜呜呜。那么很公平。虽然在使用宽行时没有办法限制列,这似乎很疯狂。

更新

显然,解决方案是使用新的 apache.cassandra.hadoop.cql3 库。引用github上的新例子:https://github.com/apache/cassandra/blob/trunk/examples/hadoop_cql3_word_count/src/WordCount.java

关于hadoop - Cassandra Hadoop map reduce with wide rows ignores slice predicate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17966558/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com