2011-08-30 179 views
1

首先,我讀了這個thisCassandra啓動問題

我無法獲得Cassandra並再次運行。 我使用Hector作爲我的客戶端連接到Cassandra 0.8.2的一個實例&加載我的模式。通過Hector,我使用2個不同的類來創建2個不同的列族 - 文章& TagsArticlesCF。

通過主類,我創建了一個名爲「公司章程」和「TagsArticlesCF」這樣的列族:

public static void main(String[] args) { 
    cluster = HFactory.getOrCreateCluster("test cluster", "xxx.xxx.xxx.xxx:9160"); 
    newKeyspaceDef = HFactory.createKeyspaceDefinition(keyspaceName); 
    if((cluster.describeKeyspace(keyspaceName)) == null){ 
     createSchema(); 
    } 


    Keyspace ksp = HFactory.createKeyspace(keyspaceName, cluster); 
    Articles art = new Articles(cluster, newKeyspaceDef,ksp); 
TagsArticlesCF tags = new TagsArticlesCF(cluster,newKeyspaceDef,ksp); 

這裏是什麼我列族的樣子/他們是如何創造了一個例子:

public Articles(Cluster cluster, KeyspaceDefinition ksp, Keyspace ksp2) { 
BasicColumnFamilyDefinition bcfDef = new BasicColumnFamilyDefinition(); 
     bcfDef.setName("Articles"); 
     bcfDef.setKeyspaceName("test3"); 
     bcfDef.setDefaultValidationClass(ComparatorType.UTF8TYPE.getClassName()); 
     bcfDef.setKeyValidationClass(ComparatorType.UTF8TYPE.getClassName()); 
     bcfDef.setComparatorType(ComparatorType.UTF8TYPE); 

     ColumnFamilyDefinition cfDef = new ThriftCfDef(bcfDef); 
     BasicColumnDefinition columnDefinition = new BasicColumnDefinition(); 
     columnDefinition.setName(StringSerializer.get().toByteBuffer("title")); 
     columnDefinition.setIndexType(ColumnIndexType.KEYS); 
     columnDefinition.setValidationClass(ComparatorType.UTF8TYPE.getClassName()); 
     cfDef.addColumnDefinition(columnDefinition); 
... 

我想將一個完整的模式添加到卡桑德拉,這將支持我計劃在加載的數據上執行的查詢。我運行了幾次主要方法來將新的列族加載到數據庫中。在多次運行main方法並調整了一些東西(檢查列系列是否已經在KeyspaceDefinition中)之後,Cassandra的運行實例就停止了。

我很好奇使用赫克託/ java的幾件事情:

  1. 我計劃有不同的列(以支持不同的查詢),10家左右的列族。組織我的課程是否是最佳做法,以便我爲每個專欄家庭提供課程?

  2. 究竟是一個KeyspaceDefinition &一個Keyspace之間的區別是什麼?爲什麼區分呢?

我們試圖讓卡桑德拉&的新實例,這裏是我們碰上了。我想更好地瞭解發生了什麼事情的話,任何意見,並有助於避免這些類型的錯誤,將不勝感激:

[[email protected] bin]# ./cassandra -p cassandra.pid 
[[email protected] bin]# INFO 10:52:36,437 Logging initialized 
INFO 10:52:36,484 JVM vendor/version: Java HotSpot(TM) 64-Bit Server VM/1.6.0_25 
INFO 10:52:36,485 Heap size: 1046937600/1046937600 
INFO 10:52:36,490 JNA not found. Native methods will be disabled. 
INFO 10:52:36,526 Loading settings from file:/opt/cassandra/apache-cassandra-0.8.2/conf/cassandra.yaml 

[[email protected] bin]# INFO 10:52:36,872 DiskAccessMode 'auto' determined to be mmap, indexAccessMode is mmap 
INFO 10:52:37,346 Global memtable threshold is enabled at 332MB 
INFO 10:52:37,348 Removing compacted SSTable files (see http://wiki.apache.org/cassandra/MemtableSSTable) 
INFO 10:52:37,497 Removing compacted SSTable files (see http://wiki.apache.org/cassandra/MemtableSSTable) 
INFO 10:52:37,617 Removing compacted SSTable files (see http://wiki.apache.org/cassandra/MemtableSSTable) 
INFO 10:52:37,984 Removing compacted SSTable files (see http://wiki.apache.org/cassandra/MemtableSSTable) 
INFO 10:52:38,252 Removing compacted SSTable files (see http://wiki.apache.org/cassandra/MemtableSSTable) 
INFO 10:52:38,259 Removing compacted SSTable files (see http://wiki.apache.org/cassandra/MemtableSSTable) 
INFO 10:52:38,545 Opening /opt/cassandra/persist8/data/system/IndexInfo-g-73 
INFO 10:52:38,661 Opening /opt/cassandra/persist8/data/system/Schema-g-169 
INFO 10:52:38,685 Opening /opt/cassandra/persist8/data/system/Schema-g-170 
INFO 10:52:38,730 Opening /opt/cassandra/persist8/data/system/Schema-g-171 
INFO 10:52:38,751 Opening /opt/cassandra/persist8/data/system/Migrations-g-171 
INFO 10:52:38,763 Opening /opt/cassandra/persist8/data/system/Migrations-g-170 
INFO 10:52:38,776 Opening /opt/cassandra/persist8/data/system/Migrations-g-169 
INFO 10:52:38,795 Opening /opt/cassandra/persist8/data/system/LocationInfo-g-2 
INFO 10:52:38,827 Opening /opt/cassandra/persist8/data/system/LocationInfo-g-1 
INFO 10:52:39,048 Loading schema version ec437ac0-d28a-11e0-0000-c4ffed3367ff 
INFO 10:52:39,645 Removing compacted SSTable files (see http://wiki.apache.org/cassandra/MemtableSSTable) 
INFO 10:52:39,663 Removing compacted SSTable files (see http://wiki.apache.org/cassandra/MemtableSSTable) 

...(更多的相同)...

INFO 10:52:40,463 Removing compacted SSTable files (see http://wiki.apache.org/cassandra/MemtableSSTable) 
INFO 10:52:41,390 Opening /opt/cassandra/persist8/data/test3/Articles-g-367 
ERROR 10:52:41,392 Missing sstable component in /opt/cassandra/persist8/data/test3/Articles-g-367=[Index.db, Data.db]; skipped because of /opt/cassandra/persist8/data/test3/Articles-g-367-Index.db (No such file or directory) 
INFO 10:52:41,863 Removing compacted SSTable files (see http://wiki.apache.org/cassandra/MemtableSSTable) 
INFO 10:52:41,865 Removing compacted SSTable files (see http://wiki.apache.org/cassandra/MemtableSSTable) 

...(更多同...)

INFO 10:52:41,892 Removing compacted SSTable files (see http://wiki.apache.org/cassandra/MemtableSSTable) 
ERROR 10:52:41,898 Exception encountered during startup. 
java.lang.RuntimeException: javax.management.InstanceAlreadyExistsException: org.apache.cassandra.db:type=ColumnFamilies,keyspace=test3,columnfamily=TagsArticlesCF 
     at org.apache.cassandra.db.ColumnFamilyStore.<init>(ColumnFamilyStore.java:315) 
     at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:466) 
     at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:436) 
     at org.apache.cassandra.db.Table.initCf(Table.java:369) 
     at org.apache.cassandra.db.Table.<init>(Table.java:306) 
     at org.apache.cassandra.db.Table.open(Table.java:111) 
     at org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:187) 
     at org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:341) 
     at org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:80) 
Caused by: javax.management.InstanceAlreadyExistsException: org.apache.cassandra.db:type=ColumnFamilies,keyspace=test3,columnfamily=TagsArticlesCF 
     at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:453) 
     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(DefaultMBeanServerInterceptor.java:1484) 
     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:963) 
     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:917) 
     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:312) 
     at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:482) 
     at org.apache.cassandra.db.ColumnFamilyStore.<init>(ColumnFamilyStore.java:311) 
     ... 8 more 
Exception encountered during startup. 
java.lang.RuntimeException: javax.management.InstanceAlreadyExistsException: org.apache.cassandra.db:type=ColumnFamilies,keyspace=test3,columnfamily=TagsArticlesCF 
     at org.apache.cassandra.db.ColumnFamilyStore.<init>(ColumnFamilyStore.java:315) 
     at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:466) 
     at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:436) 
     at org.apache.cassandra.db.Table.initCf(Table.java:369) 
     at org.apache.cassandra.db.Table.<init>(Table.java:306) 
     at org.apache.cassandra.db.Table.open(Table.java:111) 
     at org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:187) 
     at org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:341) 
     at org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:80) 
Caused by: javax.management.InstanceAlreadyExistsException: org.apache.cassandra.db:type=ColumnFamilies,keyspace=test3,columnfamily=TagsArticlesCF 
     at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:453) 
     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(DefaultMBeanServerInterceptor.java:1484) 
     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:963) 
     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:917) 
     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:312) 
     at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:482) 
     at org.apache.cassandra.db.ColumnFamilyStore.<init>(ColumnFamilyStore.java:311) 
     ... 8 more 

[[email protected] bin]# 

謝謝!

+0

好的。我想出了KeyspaceDefinition和Keyspace之間的區別。從這裏(http://groups.google.com/group/hector-users/browse_thread/thread/405dbc1b03e97e05) – Henry

+0

我得到的實例備份,但我不明白爲什麼我得到這個錯誤的第一位。這似乎是一個不穩定的情況。 – Henry

回答