1

我正在研究 Hadoop / Cassandra 集成我有几个问题希望有人能帮助我。

首先,我似乎需要使用 WITH COMPACT STORAGE 选项创建源表/cf,否则我会收到错误无法读取 map/reduce 代码中的键空间。

我想知道这是否就是它需要的样子?

如果是这种情况,我的第二个问题是,是否有可能/如何将 WITH COMPACT STORAGE 选项添加到预先存在的表中?..或者我将不得不重新创建它们并移动数据。

我正在使用 Cassandra 1.2.6

提前感谢格里

4

2 回答 2

3

我假设你正在使用job.setInputFormatClass(ColumnFamilyInputFormat.class);

相反,请尝试使用job.setInputFormatClass(CqlPagingInputFormat.class);

映射器的输入是Map<String, ByteBuffer>, Map<String,ByteBuffer>

同样,如果您需要将 CqlPagingOutputFormat 和相应的输出类型写入 Cassandra。

有关更多信息,请参阅http://www.datastax.com/dev/blog/cql3-table-support-in-hadoop-pig-and-hive

于 2013-09-26T19:59:01.910 回答
0

@格里

“WITH COMPACT STORAGE”是 CQL3 语法,用于创建与 Thrift 客户端和遗留列族兼容的表结构。

本质上,当使用这个选项时,表,或者我应该说是列族,是在不使用任何 Composite 的情况下创建的。

您应该知道 CQL3 表严重依赖组合来工作。

现在回答你的问题:

我想知道这是否就是它需要的样子?

可能是因为您的 map/reduce 代码无法处理复合材料。但我相信在 Cassandra 1.2.6 版本中,您拥有处理 CQL3 表所需的所有代码。查看包org.apache.cassandra.hadoop中的类。

是否有可能/如何将 WITH COMPACT STORAGE 选项添加到预先存在的表中?

不,一旦创建,就不可能修改/更改表结构。您将需要某种迁移。

于 2013-09-26T19:37:08.847 回答