我試圖使用從Datastax火花卡桑德拉連接器(V2.0.2,星火V2.0.0):卡桑德拉全錶轉儲到HDFS
val df = sparkSession.sparkContext.cassandraTable[MyRec](keyspace, tableName).toDF()
df.write.format("orc").save(hdfsLocation)
它看起來非常簡單,一會工作得很好但我開始這樣的例外:
Caused by: com.datastax.driver.core.exceptions.ReadFailureException:
Cassandra failure during read query at consistency LOCAL_ONE (1
responses were required but only 0 replica responded, 1 failed)
...
at com.datastax.spark.connector.rdd.CassandraTableScanRDD.com$datastax$
spark$connector$rdd$CassandraTableScanRDD$$fetchTokenRange(
CassandraTableScanRDD.scala:342)
增加spark.cassandra.read.timeout_ms
和spark.cassandra.connection.timeout_ms
和 減少spark.cassandra.input.fetch.size_in_rows
沒有幫助。也讀取一致性級別。
我在桌子上做了一個重大的壓縮,它沒有幫助。 由於這是一個產品。 DB我無法調整服務器端參數,如 tombstone_failure_threshold
,建議爲here。
將Cassandra(v3.7.0)中的完整表加載到HDFS(Hive)的最有效方法是什麼?
我覺得這裏的問題是卡桑德拉側,而不是火花,也許這是你面對什麼:https://groups.google.com/a/lists.datastax.com/forum/ #!topic/spark-connector-user/ZKyACqzoBw4 – ALincoln
Thx爲鏈接。我同意這是一個Cassandra問題,很可能是因爲墓碑。還有什麼辦法可以繼續完全拋棄並避免這樣的問題嗎?使用CqlInputFormat的MR作業會更高效嗎? – Bruckwald
您是否瞭解C *和Hive的供應商? (Apache/HDP/CDH) – saitejalakkimsetty