2

Я занимаюсь бенчмарком по чтению Кассандры. На этапе тестовой настройки я создал кластер с 1/2/4 ec2-экземплярами и узлами данных. Я написал 1 таблицу со 100 миллионами записей (~ 3 ГБ csv-файл). Затем я запускаю приложение Spark, которое считывает данные в RDD, используя разъем spark-cassandra.Cassandra Reading Benchmark with Spark

Однако я думал, что поведение должно быть следующим: чем больше экземпляров Cassandra (то же количество экземпляров на Spark), тем быстрее читается! При записи все кажется правильным (~ 2 раза быстрее, если кластер в 2 раза больше).

Но: В моем тесте чтение всегда быстрее с кластером с одним экземпляром, а затем с кластером из двух или четырех экземпляров !!!

Мои Результаты тестов:

кластеров размера 4: Запись: 1750 секунд/чтения: 360 секунд

Кластер-2 Размер: Запись: 3446 секунд/чтения: 420 секунд

Cluster- размер 1: Запись: 7595 секунд/чтения: 284 секунд


ДОПОЛНИТЕЛЬНЫЕ TRY - С КАССАНДРА-Stress ИНСТРУМЕНТ

Я запустил "Кассандры-стресс" инструмент на кластере Cassandra (размер 1/2/3/4 узлов), со следующими результатами:

Clustersize Threads  Ops/sek Time 
1    4   10146 30,1 
       8   15612 30,1 
       16   20037 30,2 
       24   24483 30,2 
      121   43403 30,5 
      913   50933 31,7 
2    4   8588 30,1 
       8   15849 30,1 
       16   24221 30,2 
       24   29031 30,2 
      121   59151 30,5 
      913   73342 31,8 
3    4   7984 30,1 
       8   15263 30,1 
       16   25649 30,2 
       24   31110 30,2 
      121   58739 30,6 
      913   75867 31,8 
4    4   7463 30,1 
       8   14515 30,1 
       16   25783 30,3 
       24   31128 31,1 
      121   62663 30,9 
      913   80656 32,4 


Результаты: с 4 или 8 потоками кластер с одним узлом работает так же быстро или быстрее, чем большие кластеры !!!



Результаты в виде диаграммы: enter image description here
Эти наборы данных являются кассетные размеры (1/2/3/4), х-оси резьбы, а ось у опам/сек.

-> Вопрос здесь: Являются ли эти результаты результатами для всего кластера или это тест для локального узла (и, следовательно, результат только одного экземпляра кольца) ???

Может кто-нибудь дать объяснение? Спасибо!

+0

Вы используете экземпляр искрового рабочего на каждом узле Кассандры? –

+0

Нет, я настраивал кластеры друг на друга. Поэтому у меня есть Spark Cluster с 1/2/4 Workernodes и кластером Cassandra с 1/2/4 узлами. –

ответ

2

Я провел аналогичное испытание с искровым работником, работающим на каждом узле Кассандры.

Используя таблицу Cassandra с 15 миллионами строк (около 1,75 ГБ данных), я запустил искровое задание для создания RDD из таблицы с каждой строкой в ​​виде строки и затем напечатал счетчик количества строк.

Вот раз я получил:

1 C* node, 1 spark worker - 1 min. 42 seconds 
2 C* nodes, 2 spark workers - 55 seconds 
4 C* nodes, 4 spark workers - 35 seconds 

Так что, кажется, довольно хорошо масштабироваться с числом узлов, когда искровые рабочие совмещен с C * узлами.

Не объединяя своих сотрудников с Cassandra, вы вынуждаете все данные таблицы проходить через сеть. Это будет медленным, и, возможно, в вашей среде это узкое место.Если вы их совместно находите, то вы получите выгоду от местоположения данных, поскольку искра создаст разделы RDD из токенов, которые являются локальными для каждой машины.

У вас может быть и другое узкое место. Я не знаком с EC2 и тем, что он предлагает. Надеюсь, он имеет локальное дисковое хранилище, а не сетевое хранилище, поскольку C * не любит сетевое хранилище.

+0

Поскольку местность данных и ландшафтный дизайн кластера были проблемой в другом вопросе, http://stackoverflow.com/questions/31336753/usage-of-the-cassandra-tool-cassandra-stress Я думаю, что эти шаги помогут здесь, тоже (как вы описали Джима). Я попробую это позже, спасибо за подсказки, Джим! –