2014-11-20 3 views
2

Я установил spark.cassandra.output.batch.size.rows параметров в моем SparkConf следующим образом:DataStax Предприятие: Spark Cassandra Batch Размер

val conf = new SparkConf(true) 
     .set("spark.cassandra.connection.host", "host") 
     .set("spark.cassandra.auth.username", "cassandra")    
     .set("spark.cassandra.auth.password", "cassandra") 
     .set("spark.cassandra.output.batch.size.rows", "5120") 
     .set("spark.cassandra.output.concurrent.writes", "10") 

но когда я выполнить

saveToCassandra ("данные", "ten_days")

я продолжаю видеть предупреждение в моем system.log

NFO [FlushWriter:7] 2014-11-20 11:11:16,498 Memtable.java (line 395) Completed flushing /var/lib/cassandra/data/system/hints/system-hints-jb-76-Data.db (5747287 bytes) for commitlog position ReplayPosition(segmentId=1416480663951, position=44882909) 
INFO [FlushWriter:7] 2014-11-20 11:11:16,499 Memtable.java (line 355) Writing [email protected](32979978/329799780 serialized/live bytes, 551793 ops) 
WARN [Native-Transport-Requests:761] 2014-11-20 11:11:16,499 BatchStatement.java (line 226) Batch of prepared statements for [data.ten_days] is of size 36825, exceeding specified threshold of 5120 by 31705. 
WARN [Native-Transport-Requests:777] 2014-11-20 11:11:16,500 BatchStatement.java (line 226) Batch of prepared statements for [data.ten_days] is of size 36813, exceeding specified threshold of 5120 by 31693. 
WARN [Native-Transport-Requests:822] 2014-11-20 11:11:16,501 BatchStatement.java (line 226) Batch of prepared statements for [data.ten_days] is of size 36823, exceeding specified threshold of 5120 by 31703. 
WARN [Native-Transport-Requests:835] 2014-11-20 11:11:16,500 BatchStatement.java (line 226) Batch of prepared statements for [data.ten_days] is of size 36817, exceeding specified threshold of 5120 by 31697. 
WARN [Native-Transport-Requests:781] 2014-11-20 11:11:16,501 BatchStatement.java (line 226) Batch of prepared statements for [data.ten_days] is of size 36817, exceeding specified threshold of 5120 by 31697. 
WARN [Native-Transport-Requests:755] 2014-11-20 11:11:16,501 BatchStatement.java (line 226) Batch of prepared statements for [data.ten_days] is of size 36822, exceeding specified threshold of 5120 by 31702. 

Я знаю, что это только предупреждения, но я хотел бы понять, почему мои настройки не работают должным образом. Затем я вижу много подсказок в моем кластере. Может ли размер партии влиять на количество подсказок в кластере?

Благодаря

ответ

6

Вы установили командные строки размера вместо байт размера пакета. Это означает, что соединитель ограничивает количество строк, а не размер памяти партии.

spark.cassandra.output.batch.size.rows: количество строк в одном партия; по умолчанию является «Авто», который означает, что соединитель будет регулировать количество строк на основе количества данных в каждой строке

spark.cassandra.output.batch.size.bytes: максимальный общий размер партии в байтах ; по умолчанию - 64 кБ.

https://github.com/datastax/spark-cassandra-connector/blob/master/doc/5_saving.md

На более важное замечание вы, скорее всего, будет лучше с большим размером партии (64кб) и изменение предела предупреждения в файле cassandra.yaml.

Edit:

В последнее время мы видели, что большие партии могут привести к нестабильности с некоторыми C * конфигурациями так понизить значение, если система становится нестабильной.

Смежные вопросы