我正在开发Hadoop / Cassandra集成我有几个问题我希望有人可以帮助我。
首先,我似乎要求使用选项WITH COMPACT STORAGE创建源表/ cf,否则我得到错误无法读取map / reduce代码中的键空间。
我想知道这是否真的需要它?
如果是这种情况,我的第二个问题是,是否有可能/如何将WITH COMPACT STORAGE选项添加到预先放置的表中? ..或者我将不得不重新创建它们并移动数据。
我正在使用Cassandra 1.2.6
提前谢谢 格里答案 0 :(得分:3)
我假设你正在使用job.setInputFormatClass(ColumnFamilyInputFormat.class);
相反,请尝试使用job.setInputFormatClass(CqlPagingInputFormat.class);
Mapper输入为Map<String, ByteBuffer>, Map<String,ByteBuffer>
同样,如果你需要向Cassandra写出CqlPagingOutputFormat和相应的输出类型。
有关详细信息,请参阅http://www.datastax.com/dev/blog/cql3-table-support-in-hadoop-pig-and-hive。
答案 1 :(得分:0)
@Gerry
“WITH COMPACT STORAGE”是一种CQL3语法,用于创建与Thrift客户端和传统列族兼容的表结构。
基本上,当使用此选项时,表格,或者我应该说列族,是在不使用任何复合材料的情况下创建的。
你应该知道CQL3表很大程度上依赖于复合材料来工作。
现在回答你的问题:
我想知道这是不是它需要怎样?
可能是因为你的map / reduce代码无法处理Composites。但我相信Cassandra的1.2.6版本,你拥有处理CQL3表所需的所有代码。查看包 org.apache.cassandra.hadoop 中的类。
是否可以/如何将WITH COMPACT STORAGE选项添加到预先放置的表格上?
不,一旦创建,就无法修改/更改表结构。你需要某种迁移。