Как контролировать количество разделов при чтении данных из Cassandra?

Я использую:

  1. cassandra 2.1.12 - 3 узла
  2. искра 1.6 - 3 узла
  3. искра кассандра разъем 1,6

Я использую токены в Кассандре (не vnodes).

Я пишу простую работу по чтению данных из таблицы Cassandra и отображению ее таблицы подсчета имеет около 70 миллионов строк, и это занимает 15 минут.

Когда я читаю данные и проверяю, количество разделов RDD составляет где-то около 21000, что слишком велико. Как контролировать это число?

Я пробовал splitCount, split.size.in.mbs, но мне показывают такое же количество разделов.

Какие-либо предложения?

import org.apache.spark.{SparkContext, SparkConf} 
import com.datastax.spark.connector._
import org.apache.spark.sql.cassandra.CassandraSQLContext
import org.apache.spark.sql.cassandra._
import org.apache.spark.sql
import java.sql.DriverManager
import java.sql.Connection


object Hi {
  def main(args: Array[String])
  {
    val conf = new  SparkConf(true).set("spark.cassandra.connection.host", "172.16.4.196").set("spark.cassandra.input.split.size_in_mb","64")
    val sc = new SparkContext(conf)

    val rdd =  sc.cassandraTable("cw","usedcareventsbydatecookienew")
    println("hello world" + rdd.partitions)
    println("hello world" + rdd.count)
  }

}

это мой код для справки. Я запускаю nodetool compact, теперь я могу контролировать количество разделов, но все же весь процесс занимает почти 6 минут, что, на мой взгляд, слишком много, любые предложения по улучшению


person deenbandhu    schedule 21.04.2016    source источник


Ответы (2)


Вы ищете Spark. cassandra.input.split.size?

spark.cassandra.input.split.size По умолчанию = 64. Приблизительное количество строк в одном разделе Spark. Чем выше значение, тем меньше задач Spark создается. Слишком большое увеличение значения может ограничить уровень параллелизма.

person chaitan64arun    schedule 21.04.2016
comment
В соответствии с этим у меня должно быть около 70 разделов, но он показывает мне раздел 21000, а spark.cassandra.input.split.size_in_mb также делает то же самое, я надеюсь - person deenbandhu; 21.04.2016

Моя проблема решена, когда я запускаю компактную команду в своей таблице cassandra, теперь я могу управлять ею с помощью параметра spark.cassandra.input.split.size

person deenbandhu    schedule 28.04.2016