2011-08-04 8 views
8

मैं कैसंड्रा-0.8.2 के साथ काम कर रहा हूं। मैं हेक्टर & का नवीनतम संस्करण के साथ काम कर रहा हूँ मेरे जावा संस्करण 1.6.0_26हेक्टर और कैसंद्रा की मूल बातें

मैं बहुत कैसेंड्रा & हेक्टर के लिए नया हूँ है।

मैं जो करने की कोशिश कर रहा हूं: 1. एक अलग सर्वर पर & कैसंड्रा के चल रहे उदाहरण से कनेक्ट करें। मुझे पता है कि यह बी/सी चल रहा है मैं अपने टर्मिनल के माध्यम से इस कैसंद्रा उदाहरण को चलाने वाले सर्वर में एसएसएच कर सकता हूं और पूर्ण कार्यक्षमता के साथ सीएलआई चला सकता हूं। 2. फिर मैं एक कुंजीपटल & से कनेक्ट करना चाहता हूं, कॉलम परिवार बनाएं और उसके बाद हेक्टर के माध्यम से उस कॉलम परिवार में एक मान जोड़ें।

मुझे लगता है कि मेरी समस्या यह है कि इस सर्वर पर कैसंड्रा का यह चल रहा उदाहरण स्थानीय आदेश नहीं होने के लिए कॉन्फ़िगर नहीं किया जा सकता है। मुझे लगता है कि मेरा अगला कदम सीपीयू पर कैसंद्रा का एक स्थानीय उदाहरण जोड़ना है जिस पर मैं काम कर रहा हूं और इसे स्थानीय रूप से करने की कोशिश करता हूं। तुम क्या सोचते हो?

import me.prettyprint.cassandra.serializers.StringSerializer; 
import me.prettyprint.cassandra.service.CassandraHostConfigurator; 
import me.prettyprint.hector.api.Cluster; 
import me.prettyprint.hector.api.Keyspace; 
import me.prettyprint.hector.api.ddl.ColumnFamilyDefinition; 
import me.prettyprint.hector.api.ddl.ComparatorType; 
import me.prettyprint.hector.api.factory.HFactory; 
import me.prettyprint.hector.api.mutation.Mutator; 

    public class MySample { 


     public static void main(String[] args) { 


      Cluster cluster = HFactory.getOrCreateCluster("Test Cluster", "xxx.xxx.x.41:9160"); 
      Keyspace keyspace = HFactory.createKeyspace("apples", cluster); 
      ColumnFamilyDefinition cf = HFactory.createColumnFamilyDefinition("apples","ColumnFamily2",ComparatorType.UTF8TYPE); 
      StringSerializer stringSerializer = StringSerializer.get(); 
      Mutator<String> mutator = HFactory.createMutator(keyspace, stringSerializer); 
      mutator.insert("jsmith", "Standard1", HFactory.createStringColumn("first", "John")); 
} 
} 

मेरे त्रुटि है:

16:22:19,852 INFO CassandraHostRetryService:37 - Downed Host Retry service started with queue size -1 and retry delay 10s 
16:22:20,136 INFO JmxMonitor:54 - Registering JMX me.prettyprint.cassandra.service_Test Cluster:ServiceType=hector,MonitorType=hector 
Exception in thread "main" me.prettyprint.hector.api.exceptions.HInvalidRequestException: InvalidRequestException(why:Keyspace apples does not exist) 
    at me.prettyprint.cassandra.connection.HThriftClient.getCassandra(HThriftClient.java:70) 
    at me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:226) 
    at me.prettyprint.cassandra.service.KeyspaceServiceImpl.operateWithFailover(KeyspaceServiceImpl.java:131) 
    at me.prettyprint.cassandra.service.KeyspaceServiceImpl.batchMutate(KeyspaceServiceImpl.java:102) 
    at me.prettyprint.cassandra.service.KeyspaceServiceImpl.batchMutate(KeyspaceServiceImpl.java:108) 
    at me.prettyprint.cassandra.model.MutatorImpl$3.doInKeyspace(MutatorImpl.java:222) 
    at me.prettyprint.cassandra.model.MutatorImpl$3.doInKeyspace(MutatorImpl.java:219) 
    at me.prettyprint.cassandra.model.KeyspaceOperationCallback.doInKeyspaceAndMeasure(KeyspaceOperationCallback.java:20) 
    at me.prettyprint.cassandra.model.ExecutingKeyspace.doExecute(ExecutingKeyspace.java:85) 
    at me.prettyprint.cassandra.model.MutatorImpl.execute(MutatorImpl.java:219) 
    at me.prettyprint.cassandra.model.MutatorImpl.insert(MutatorImpl.java:59) 
    at org.cassandra.examples.MySample.main(MySample.java:25) 
Caused by: InvalidRequestException(why:Keyspace apples does not exist) 
    at org.apache.cassandra.thrift.Cassandra$set_keyspace_result.read(Cassandra.java:5302) 
    at org.apache.cassandra.thrift.Cassandra$Client.recv_set_keyspace(Cassandra.java:481) 
    at org.apache.cassandra.thrift.Cassandra$Client.set_keyspace(Cassandra.java:456) 
    at me.prettyprint.cassandra.connection.HThriftClient.getCassandra(HThriftClient.java:68) 
    ... 11 more 

आपकी मदद के लिए अग्रिम धन्यवाद

यहाँ मेरी जावा कोड है।

+0

क्या आपने देखा कि 'कीस्पेस सेब मौजूद नहीं है'? – Mat

उत्तर

8

अपवाद आप हो रही है है,

why:Keyspace apples does not exist 

अपने कोड में, इस लाइन वास्तव में keyspace पैदा नहीं करता,

Keyspace keyspace = HFactory.createKeyspace("apples", cluster); 

के रूप में वर्णित here, इस कोड को आप परिभाषित करने की जरूरत है आपकी कीस्पेस,

ColumnFamilyDefinition cfDef = HFactory.createColumnFamilyDefinition("MyKeyspace", "ColumnFamilyName", ComparatorType.BYTESTYPE); 

KeyspaceDefinition newKeyspace = HFactory.createKeyspaceDefinition("MyKeyspace", ThriftKsDef.DEF_STRATEGY_CLASS, replicationFactor, Arrays.asList(cfDef)); 

// Add the schema to the cluster. 
// "true" as the second param means that Hector will block until all nodes see the change. 
cluster.addKeyspace(newKeyspace, true); 
+0

आपकी प्रतिक्रिया के लिए धन्यवाद। मेरी समस्या यह है कि जब मैं इस कोड को चलाने का प्रयास करता हूं तो प्रतिकृति फ़ैक्टर को अपरिभाषित प्रतीत होता है। मैंने यहां प्रदान की गई चीज़ों की प्रतिलिपि बनाई है: https: //github.com/rantav/hector/wiki/Getting-started-%285-minutes%29, उपयुक्त नाम चर बदल गए हैं। कोई विचार क्यों "प्रतिकृति फैक्टर" अपरिभाषित है? इस कक्षा में आयात करने के लिए मेरे लिए कुछ और नहीं है। – Henry

+0

आपको एक कंपाइलर त्रुटि मिल रही है? क्या आप लाइन int replicationfactor = 1 जोड़ सकते हैं; – sbridges

+0

धन्यवाद मैंने अपनी समस्या का पता लगाया! – Henry

संबंधित मुद्दे