ConfigHelper.setThriftContact () неопределенный в cassandra v1.2

Я испытываю пример, данный в Полном руководстве Кассандры, Ch 12. Это заявление дает ошибку, и я не в состоянии выяснить замену для него:

ConfigHelper.setThriftContact(job.getConfiguration(), "localhost",  9160);

Кроме того,

IColumn column = columns.get(columnName.getBytes());
String value = new String(column.value());

column.value() gives compilation error. any solutions ?

0
nl ja de

1 ответы

Книга Полного руководства Кассандры - бедный ресурс в этом пункте, поскольку это довольно устарело. Кассандра изменилась много с тех пор, как имеет Hadoop, таким образом, глава интеграции Кассандры-Хэдупа особенно ненадежна.

Вот полная рабочая конфигурация Кассандры:

ConfigHelper.setRangeBatchSize(getConf(), 99);
final Job job = new Job(getConf(), "average");
final Configuration conf = job.getConfiguration();
ConfigHelper.setInputRpcPort(conf, "9160");
ConfigHelper.setInputInitialAddress(conf, cassHost);
ConfigHelper.setInputPartitioner(conf, "org.apache.cassandra.dht.Murmur3Partitioner");
ConfigHelper.setInputColumnFamily(conf, conf.get(keyspace), conf.get(inputCF));
//get all records
SlicePredicate predicate = new SlicePredicate().setSlice_range(new SliceRange(ByteBufferUtil.bytes(""), ByteBufferUtil.bytes(""), false, Integer.MAX_VALUE));
ConfigHelper.setInputSlicePredicate(conf, predicate);

ConfigHelper.setOutputInitialAddress(conf, cassHost);
ConfigHelper.setOutputRpcPort(conf, "9160");
ConfigHelper.setOutputPartitioner(conf, "org.apache.cassandra.dht.Murmur3Partitioner");
ConfigHelper.setOutputColumnFamily(conf, conf.get(keyspace), conf.get(outputCF));

Проблема с вашей линией:

String value = new String(column.value());

попытка должна передать его в Последовательность конструктор. В более старых версиях Кассандры column.value() возвратился байт [] , но это теперь возвращает ByteBuffer . Если основные данные - на самом деле последовательность, можно использовать Кассандру ByteBufferUtil.string() , чтобы расшифровать их. Таким образом, ваша новая строка была бы похожа на это:

String value = ByteBufferUtil.string(column.value());
1
добавлено
thnkx., каков может быть хороший ресурс, чтобы следовать?
добавлено автор Tejas Patil, источник
Доктора DataStax хороши, и для Hadoop я могу рекомендовать это.
добавлено автор rs_atl, источник