2015-01-08 4 views
1

카사ンド라에 40 억 개의 행이있는 RDD를 저장하려고합니다. 일부 데이터는 지속되지만 일부 파티션에서는 스파크 로그에 이러한 오류 로그가 표시됩니다.스파크 RDD를 카산드라에 저장하는 중 오류가 발생했습니다.

우리는 이미 cassandra 커넥터에 대해이 두 가지 속성을 설정했습니다. 우리가해야 할 다른 최적화가 있습니까? 또한 독자에게 권장되는 설정은 무엇입니까? 우리는 그것들을 디폴트로 남겨 두었습니다.

spark.cassandra.output.batch.size.rows = 1

spark.cassandra.output.concurrent.writes = 1

우리가 실행 스파크 1.1.0 및 불꽃 카산드라 커넥터 -java_2.10 V 2.1.0

15/01/08 05:32:44 ERROR QueryExecutor: Failed to execute: [email protected] 
com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /10.87.33.133:9042 (com.datastax.driver.core.exceptions.DriverException: Timed out waiting for server response)) 
    at com.datastax.driver.core.RequestHandler.sendRequest(RequestHandler.java:108) 
    at com.datastax.driver.core.RequestHandler$1.run(RequestHandler.java:179) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 

감사

Ankur

+0

잠시 후에 이런 일이 발생합니까? 카산드라 클러스터 상태는 무엇입니까? CPU 사용량? – maasg

+0

예, 시간이 지나면 몇 단계 만 발생합니다. 일부 데이터는 테이블에 기록되지만 전부는 아닙니다. – Ankur

답변

1

내가했습니다 네 개의 노드 클러스터에서 비슷한 것을 보았습니다. 스파크 설정에서 모든 카산드라 노드 이름을 지정하면 작동하는 것 같았습니다. 그러나 똑같은 문제가 발생했을 때보 다 씨앗 (4 개 중 2 개는 시드) 만 지정했다면 작동합니다. 나는 4 가지를 모두 지정하는 것은 일을 끝내고있다 (그러나 나는 어느 시점에서하려고한다). 시드 값이 아니라 ips가 아닌 호스트 이름을 사용하고 있습니다. spark cassandra 설정에서 호스트 이름 사용. 나는 그것이 akka dns 문제로 인한 것일 수도 있다고 들었다. 어쩌면 모든 IP 주소를 사용해 보거나 모든 호스트를 지정해보십시오. 후자는 나를 위해 완벽하게 작동했습니다.

+0

우리는 IP 중 하나를 spark.cassandra.connection.host로 전달하고 있습니다. 이 속성에 여러 개의 IP를 전달할 수 있습니까? 그러나 우리의 경우 몇몇 단계는 쓸 수 있지만 몇 단계 만 실패합니다. – Ankur

+0

예, 명령으로 구분 된 문자열로 sparkConf.set ("spark.cassandra.connection.host", "server1, server2, server3, server4") – ashic

+0

차가워졌습니다. 감사!! 우리는 이전 버전으로 시도했지만 그렇지 않았습니다. 현재 datastax 커넥터로 시도합니다. – Ankur

0

실감 나는 spark.cassandra.output.concurrent.writes = 2로 응용 프로그램을 실행하고있었습니다. 나는 그것을 1로 바꿨고 예외도 없었다. 예외는 스파크가 카산드라 클러스터가 작성할 수있는 것보다 훨씬 높은 빈도로 데이터를 생성했기 때문에 설정을 1로 변경하면 효과가있었습니다.

감사합니다.

관련 문제