Я довольно новичок в Cassandra - в течение месяца, исходя из длинного фона SQL Server. Мне поручили вырезать некоторый Python для автоматизации объемной загрузки sstables. Введите sstableloader. Все, что я установил до сих пор, это тестирование. У меня установлена 1 виртуальная машина с Cassandra, установленной на одноузловой кластер. Для этого потребовалось немного настройки и ipaddress loopback. Итак, у меня 127.0.0.1 и 127.0.0.2, семя настроено на 127.0.0.1. Я успешно получил Cassandra и могу получить доступ к ней через простые строки подключения в Python из других ящиков - так что большинство моих требований выполнены. Когда я сталкиваюсь с проблемами, загружаю данные через все, кроме cql. Я могу использовать инструкции insert для получения данных за весь день - мне нужно успешно выполнить json2sstable и sstableloader (отдельно на этом этапе). Кикер сообщает, что все в порядке ... и мои данные никогда не появляются в любом случае. Ниже приводится мой способ воссоздать проблему.Cassandra json2sstable и sstableloader сообщают о положительных результатах, но никаких изменений данных не происходит
пространство ключей, колонка семьи и папки: sampledb_adl, emp_new_9/вар/Библиотека/Cassandra/данные/emp_new_9
Table created at cqlsh prompt: CREATE TABLE emp_new_9 (pkreq uuid, empid int, deptid int, first_name text, last_name text, PRIMARY KEY ((pkreq))) WITH
bloom_filter_fp_chance=0.010000 AND
caching='KEYS_ONLY' AND
comment='' AND
dclocal_read_repair_chance=0.100000 AND
gc_grace_seconds=864000 AND
index_interval=128 AND
read_repair_chance=0.000000 AND
replicate_on_write='true' AND
populate_io_cache_on_flush='false' AND
default_time_to_live=0 AND
speculative_retry='99.0PERCENTILE' AND
memtable_flush_period_in_ms=0 AND
compaction={'class': 'SizeTieredCompactionStrategy'} AND
compression={'sstable_compression': 'LZ4Compressor'};
Исходные данные, введенные в таблицу с помощью cqlsh: INSERT INTO emp_new_9 (pkreq, EmpID, deptid, first_name , last_name) VALUES (uuid(), 30001,235, 'yogi', 'bear');
Результаты поиска 'select * from emp_new_9':
pkreq | deptid | empid | first_name | last_name -------------------------------------- + -------- + ------- + ------------ + ----------- 9c6dd9de-f6b1-4312-9737-e9d00b8187f3 | 235 | 30001 | йоги | медведь
Начатый nodetool смывать
Содержание папки emp_new_9 в данный момент:
sampledb_adl-emp_new_9-jb-1-CompressionInfo.db sampledb_adl-emp_new_9-jb-1-Index.db sampledb_adl-emp_new_9-jb-1-TOC.txt
sampledb_adl-emp_new_9-jb-1-Data.db sampledb_adl-emp_new_9-jb-1-Statistics.db
sampledb_adl-emp_new_9-jb-1-Filter.db sampledb_adl-emp_new_9-jb-1-Summary.db
Текущие результаты: [Root @ локальный emp_new_9] # sstable2json/вар/Библиотека/Cassandra/данные/sampledb_adl/emp_new_9/sampledb_adl-emp_new_9-ДБ-1-Data.db
[
{"key": "9c6dd9def6b143129737e9d00b8187f3","columns": [["","",1443108919841000], ["deptid","235",1443108919841000], ["empid","30001",1443108919841000], ["first_name","yogi",1443108919841000], ["last_name","bear",1443108919841000]]}
]
Теперь, чтобы создать emp_new_10 с разными данными:
пространство ключей, колонка семьи и папки: sampledb_adl, emp_new_10/вар/Lib/Cassandra/данные/emp_new_10
Table created at cqlsh prompt: CREATE TABLE emp_new_10 (pkreq uuid, empid int, deptid int, first_name text, last_name text, PRIMARY KEY ((pkreq))) WITH
bloom_filter_fp_chance=0.010000 AND
caching='KEYS_ONLY' AND
comment='' AND
dclocal_read_repair_chance=0.100000 AND
gc_grace_seconds=864000 AND
index_interval=128 AND
read_repair_chance=0.000000 AND
replicate_on_write='true' AND
populate_io_cache_on_flush='false' AND
default_time_to_live=0 AND
speculative_retry='99.0PERCENTILE' AND
memtable_flush_period_in_ms=0 AND
compaction={'class': 'SizeTieredCompactionStrategy'} AND
compression={'sstable_compression': 'LZ4Compressor'};
Исходные данные, введенные в таблицу с помощью cqlsh: INSERT INTO emp_new_10 (pkreq, EmpID, deptid, first_name, last_name) VALUES (uuid(), 30101,298, 'scoobie', 'doo');
Результаты 'выберите * из emp_new_10':
pkreq | deptid | empid | first_name | last_name -------------------------------------- + -------- + ------- + ------------ + ----------- c0e1763d-8b2b-4593-9daf-af3596ed08be | 298 | 30101 | scoobie | DOO
Начатый nodetool смывать
Содержание emp_new_10 папки на данный момент:
sampledb_adl-emp_new_10-jb-1-CompressionInfo.db sampledb_adl-emp_new_10-jb-1-Index.db sampledb_adl-emp_new_10-jb-1-TOC.txt
sampledb_adl-emp_new_10-jb-1-Data.db sampledb_adl-emp_new_10-jb-1-Statistics.db
sampledb_adl-emp_new_10-jb-1-Filter.db sampledb_adl-emp_new_10-jb-1-Summary.db
Текущие результаты: [Root @ локальный emp_new_10] # sstable2json/вар/Библиотека/Cassandra/данные/sampledb_adl/emp_new_10/sampledb_adl-emp_new_10-ДБ-1-данных.дб
[
{"key": "c0e1763d8b2b45939dafaf3596ed08be","columns": [["","",1443109509458000], ["deptid","298",1443109509458000], ["empid","30101",1443109509458000], ["first_name","scoobie",1443109509458000], ["last_name","doo",1443109509458000]]}
]
Итак, йог 9, scoobie 10.
Теперь я собираюсь попробовать первый использовать json2sstable с файлом из emp_new_10, который я назвал (оригинал, я знаю): emp_new_10.json
json2sstable -K sampledb_adl -c emp_new_9 /home/tdmcoe_admin/Desktop/emp_new_10.json /var/lib/cassandra/data/sampledb_adl/emp_new_10/sampledb_adl-emp_new_10-jb-1-Data.db
Результаты выводятся на окне терминала:
ERROR 08:56:48,581 Unable to initialize MemoryMeter (jamm not specified as javaagent). This means Cassandra will be unable to measure object sizes accurately and may consequently OOM.
Importing 1 keys...
1 keys imported successfully.
Я получаю ошибку MemoryMeter все время и игнорировать поскольку googling сказал, что это не повлияло на результаты.
SO, содержимое моей папки не изменилось, 'select * from emp_new_9;' по-прежнему дает один и тот же исходный результат записи. emp_new_10 также не изменился. Что случилось с моими 1-мя ключами, импортированными успешно? Успешно где?
Теперь для соответствующего sstableloader. Те же базовые папки/данные, но теперь работает sstableloader:
[[email protected] emp_new_10]# sstableloader -d 127.0.0.1 /var/lib/cassandra/data/sampledb_adl/emp_new_9
Примечание: Я также RAN ЛИНИЮ выше 127.0.0.2, и с 127.0.0.1,127.0.0.2 на всякий случай, но одни и те же результаты.
Результаты отпечатанные в окне терминала:
ERROR 09:05:07,686 Unable to initialize MemoryMeter (jamm not specified as javaagent). This means Cassandra will be unable to measure object sizes accurately and may consequently OOM.
Established connection to initial hosts
Opening sstables and calculating sections to stream
Streaming relevant part of /var/lib/cassandra/data/sampledb_adl/emp_new_9/sampledb_adl-emp_new_9-jb-1-Data.db to [/<my machine ip>]
Streaming session ID: 06a9c1a0-62d6-11e5-b85d-597b365ae56f
progress: [/<my machine ip> 1/1 (100%)] [total: 100% - 0MB/s (avg: 0MB/s)]
Так - 100% - яй! 0MB/s boo!
Теперь содержимое папки emp_new_9, которые я не трогали теперь есть второй набор файлов:
sampledb_adl-emp_new_9-jb-1-CompressionInfo.db sampledb_adl-emp_new_9-jb-1-TOC.txt sampledb_adl-emp_new_9-jb-2-Statistics.db
sampledb_adl-emp_new_9-jb-1-Data.db sampledb_adl-emp_new_9-jb-2-CompressionInfo.db sampledb_adl-emp_new_9-jb-2-Summary.db
sampledb_adl-emp_new_9-jb-1-Filter.db sampledb_adl-emp_new_9-jb-2-Data.db sampledb_adl-emp_new_9-jb-2-TOC.txt
sampledb_adl-emp_new_9-jb-1-Index.db sampledb_adl-emp_new_9-jb-2-Filter.db
sampledb_adl-emp_new_9-jb-1-Statistics.db sampledb_adl-emp_new_9-jb-2-Index.db
результатам «выберите * из emp_new_9;» не изменились, используя sstable2json на BOTH файлов данных, просто покажите 1 старую запись йога. Когда я запускаю компакт-диск nodetool, он возвращается к 1 набору файлов только с одной линией йога. Так что 100% произошло?!? 100% чего?
Любая помощь приветствуется. Я очень смущен.
Сэр, вы джентльмен и ученый, это ответили на один из моих вопросов! Я обнаружил, что он не работает, если таблица пуста, поэтому никаких файлов .db в папке вообще нет, но если есть существующие файлы .db, тогда этот процесс сделает второй набор с новой информацией в этом втором наборе, который я назвал именем ... хотя все еще невидимым для Кассандры. – AdriennePDX
Теперь мне просто нужно перегружать этот недавно измененный файл, используя sstableloader, чтобы Cassandra увидела его! Дайте мне знать, если у вас есть другие советы! Я не хочу отмечать этот ответ, но на всякий случай кто-то может ответить во второй половине. Однако, в конце концов, я буду отмечать это как ответ. – AdriennePDX