【问题标题】:Use Hector edit exists Columnfamily and meanwhile add new columns get Error?使用 Hector 编辑存在的 Columnfamily 并同时添加新列得到错误?
【发布时间】:2013-03-30 16:54:35
【问题描述】:

我正在学习使用 Hector,但在尝试添加包含一些新列的列族时出现错误。

以下代码有效,我只编辑没有新定义的列的列族。

KeyspaceDefinition kd = gameCluster
.describeKeyspace("testKeySpace");
//here i am try to add new columns in the columnfamily in the meanwhile
//BasicColumnDefinition cd1 = new BasicColumnDefinition();
//cd1.setName(StringSerializer.get().toByteBuffer("basicColumnname1"));
//cd1.setIndexName("testIndex");
//cd1.setValidationClass(ComparatorType.BYTESTYPE.getClassName());


BasicColumnFamilyDefinition bcf = new BasicColumnFamilyDefinition();
//add it to the new columnfamily
//bcf.addColumnDefinition(cd1);

bcf.setKeyspaceName("testKeySpace");
bcf.setName("testColumnFamily");
bcf.setComparatorType(ComparatorType.UTF8TYPE);

gameCluster.addColumnFamily(bcf);

如果我移动评论,则会收到一条错误消息:

Exception in thread "main" me.prettyprint.hector.api.exceptions.HectorException:        java.lang.NullPointerException
at me.prettyprint.cassandra.service.ExceptionsTranslatorImpl.translate(ExceptionsTranslatorImpl.java:67)
at me.prettyprint.cassandra.service.ThriftCluster$4.execute(ThriftCluster.java:105)
at me.prettyprint.cassandra.service.ThriftCluster$4.execute(ThriftCluster.java:92)
at me.prettyprint.cassandra.service.Operation.executeAndSetResult(Operation.java:104)
at me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:258)
at me.prettyprint.cassandra.service.ThriftCluster.addColumnFamily(ThriftCluster.java:109)
at me.prettyprint.cassandra.service.ThriftCluster.addColumnFamily(ThriftCluster.java:84)
at game.cassandra.conn.DataPrepopulate.testAddColumnFamily(DataPrepopulate.java:91)
at game.cassandra.conn.DataPrepopulate.main(DataPrepopulate.java:101)

原因:

java.lang.NullPointerException
at me.prettyprint.cassandra.service.ThriftColumnDef.indexTypeToThrift(ThriftColumnDef.java:105)
at me.prettyprint.cassandra.service.ThriftColumnDef.toThrift(ThriftColumnDef.java:97)
at me.prettyprint.cassandra.service.ThriftColumnDef.toThriftList(ThriftColumnDef.java:88)
at me.prettyprint.cassandra.service.ThriftCfDef.toThrift(ThriftCfDef.java:265)
at me.prettyprint.cassandra.service.ThriftCluster$4.execute(ThriftCluster.java:99)
... 7 more

谁能帮帮我?

【问题讨论】:

    标签: java cassandra hector


    【解决方案1】:

    如果指定索引名称,则还必须指定索引类型

    尝试添加

    cd1.setIndexType(ColumnIndexType.KEYS);
    

    【讨论】:

      猜你喜欢
      • 2020-02-28
      • 2016-12-12
      • 2020-10-16
      • 2015-01-01
      • 2016-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多