Я не могу получить доступ к Casandra, используя Hector. Ниже приведен код
import java.util.Arrays;
import java.util.List;
import me.prettyprint.cassandra.service.CassandraHostConfigurator;
import me.prettyprint.cassandra.service.ThriftCluster;
import me.prettyprint.cassandra.service.ThriftKsDef;
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.KeyspaceDefinition;
import me.prettyprint.hector.api.factory.HFactory;
import me.prettyprint.hector.api.mutation.Mutator;
public class Hector {
public static void main (String[] args){
boolean cfExists = false;
Cluster cluster = HFactory.getOrCreateCluster("mycluster", new CassandraHostConfigurator("host:9160"));
Keyspace keyspace = HFactory.createKeyspace("Keyspace1", cluster);
// first check if the key space exists
KeyspaceDefinition keyspaceDetail = cluster.describeKeyspace("Keyspace1");
// if not, create one
if (keyspaceDetail == null) {
CassandraHostConfigurator cassandraHostConfigurator = new CassandraHostConfigurator("host:9160");
ThriftCluster cassandraCluster = new ThriftCluster("mycluster", cassandraHostConfigurator);
ColumnFamilyDefinition cfDef = HFactory.createColumnFamilyDefinition("Keyspace1", "base");
cassandraCluster.addKeyspace(new ThriftKsDef("Keyspace1", "org.apache.cassandra.locator.SimpleStrategy", 1,
Arrays.asList(cfDef)));
} else {
// even if the key space exists, we need to check if the column family exists
List<ColumnFamilyDefinition> columnFamilyDefinitions = keyspaceDetail.getCfDefs();
for (ColumnFamilyDefinition def : columnFamilyDefinitions) {
String columnFamilyName = def.getName();
if (columnFamilyName.equals("tcs_im"))
cfExists = true;
}
}
}
}
Возникла следующая ошибка
log4j:WARN Не удалось найти приложения для регистратора (me.prettyprint.cassandra.connection.CassandraHostRetryService). log4j:WARN Пожалуйста, правильно инициализируйте систему log4j. log4j:WARN См. http://logging.apache.org/log4j/1.2/faq.html#noconfig для получения дополнительной информации. Исключение в потоке «основной» java.lang.IllegalAccessError: попытка доступа к классу me.prettyprint.cassandra.service.JmxMonitor из класса me.prettyprint.cassandra.connection.HConnectionManager в me.prettyprint.cassandra.connection.HConnectionManager.(HConnectionManager. java:78) в me.prettyprint.cassandra.service.AbstractCluster.(AbstractCluster.java:69) в me.prettyprint.cassandra.service.AbstractCluster.(AbstractCluster.java:65) в me.prettyprint.cassandra.service.ThriftCluster .(ThriftCluster.java:17) в me.prettyprint.hector.api.factory.HFactory.createCluster(HFactory.java:176) в me.prettyprint.hector.api.factory.HFactory.getOrCreateCluster(HFactory.java:155) на com.im.tcs.Hector.main(Hector.java:20)
Пожалуйста, помогите, почему это происходит.