2015-11-09 3 views
0

Я новый ученик Спарка и Кассандры. Я столкнулся с серьезной проблемой производительности. Я передаю данные от Kafka каждые 5 секунд в Spark, а затем аналитически анализирую данные на языке R с использованием JRI и, наконец, сохраняя данные в соответствующем семействе столбцов Cassandra. Длительность (в миллисекундах) для сохранения данных в Cassandra очень быстро увеличивается с количеством входных запросов [каждый запрос - 200 КБ].Spark Cassandra Performance Issue

Spark Performance

код Spark:

sessionData.foreachRDD(new Function<JavaRDD<NormalizedData>, Void>() { 
    public Void call(JavaRDD<NormalizedData> rdd)  { 
System.out.println("step-3 " + System.currentTimeMillis()); 
javaFunctions(rdd).writerBuilder("keyspace",normalized_data",mapToRow(NormalizedData.class)).saveToCassandra(); 
System.out.println("step-4 " + System.currentTimeMillis());}} 
+0

искровым default.conf: connection.spark.Cassandra.connection.keep_alive_ms 3600000 spark.Cassandra.output.batch.size.rows 2 spark.cassandra.output.concurrent.writes10 spark.cassandra.output.batch. size.bytes 2m spark.cassandra.input.split.size_in_mb 1 мбПожалуйста, позвольте мне kno – Niharika

ответ

0

Я был в состоянии повысить производительность за то же самое, используя искру и Кассандру на том же сервере. Эта задержка была вызвана тем, что Spark и Cassandra находились на разных серверах, хотя в том же регионе на AWS. Задержка сети была основной причиной, так как она повлияла на местоположение данных. Благодарю.

0

Вы можете обратиться к этому blog для настройки разъема Spark-Cassandra. Вы получите представление о первичном количестве, которое вы можете ожидать. Также вы можете попробовать другой продукт с открытым кодом SnappyData, который является базой данных Spark, которая даст вам очень высокую производительность в вашем случае использования.

0

Я также использую комбинацию Cassandra Spark для анализа в реальном времени. Следующие вещи несколько лучших практик:

  1. данных Местность - Запуск Cassandra демон с Worker узла в случае искрового автономного или Node Manager в случае пряжи], Mesos работника в случае Mesos

  2. Увеличить параллелизм т.е. создать больше разделов/задач

  3. Использование Cassandra Пулы соединений для повышения пропускной способности

В вашем случае вы используете JRI для вызова R в боковой Java. Это немного медленно и производительность. Поэтому используйте SparkR для интеграции R с Spark вместо JRI напрямую.