我正在研究 Hadoop / Cassandra 集成我有几个问题希望有人能帮助我。
首先,我似乎需要使用 WITH COMPACT STORAGE 选项创建源表/cf,否则我会收到错误无法读取 map/reduce 代码中的键空间。
我想知道这是否就是它需要的样子?
如果是这种情况,我的第二个问题是,是否有可能/如何将 WITH COMPACT STORAGE 选项添加到预先存在的表中?..或者我将不得不重新创建它们并移动数据。
我正在使用 Cassandra 1.2.6
提前感谢格里
我正在研究 Hadoop / Cassandra 集成我有几个问题希望有人能帮助我。
首先,我似乎需要使用 WITH COMPACT STORAGE 选项创建源表/cf,否则我会收到错误无法读取 map/reduce 代码中的键空间。
我想知道这是否就是它需要的样子?
如果是这种情况,我的第二个问题是,是否有可能/如何将 WITH COMPACT STORAGE 选项添加到预先存在的表中?..或者我将不得不重新创建它们并移动数据。
我正在使用 Cassandra 1.2.6
提前感谢格里
我假设你正在使用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。
@格里
“WITH COMPACT STORAGE”是 CQL3 语法,用于创建与 Thrift 客户端和遗留列族兼容的表结构。
本质上,当使用这个选项时,表,或者我应该说是列族,是在不使用任何 Composite 的情况下创建的。
您应该知道 CQL3 表严重依赖组合来工作。
现在回答你的问题:
我想知道这是否就是它需要的样子?
可能是因为您的 map/reduce 代码无法处理复合材料。但我相信在 Cassandra 1.2.6 版本中,您拥有处理 CQL3 表所需的所有代码。查看包org.apache.cassandra.hadoop中的类。
是否有可能/如何将 WITH COMPACT STORAGE 选项添加到预先存在的表中?
不,一旦创建,就不可能修改/更改表结构。您将需要某种迁移。