2017-11-13 4 views
0

나는 Cassandra에서 문제가되었습니다. 제발 도와주세요 ..Cassandra에서 Select Execute 문 실행

나는 1ms 간격으로 500K 행 테이블에서 Select 문을 실행하고있다. 얼마 후 메시지 "All host(s) tried for query failed. First host tried, 10.1.60.12:9042: Host considered as DOWN. See innerErrors"이 나옵니다. 이 나에게 5K 행을 반환

select * from demo.users 

:

나는 select 문에게 fallowing을 실행합니다. 사용자 테이블에는 500K 개의 행이 있습니다.

나는 무엇이 잘못되었는지 알지 못합니다. cassandra.yaml 파일을 변경하지 않았습니다.

메모리 캐시를 설정해야합니까? select 문을 실행할 때 디스크 I/O가 너무 많습니다.

모든 복제 세트의 최소 1 명중하는 매우 비싼 쿼리 수 있습니다 나를

+0

카산드라는 언 바운드 쿼리를 사용하지 않습니다. 보고 도구가 아닙니다. 'select *'에 대한 – Aaron

+0

쿼리는 클러스터의 모든 노드를 공격해야합니다. 기본적으로 분산 데이터와 복제에 대한 전체적인 생각은 무시됩니다. 이러한 종류의 쿼리가 필요한 경우 스파크 또는 다른 도구를 사용하십시오. – LHWizard

답변

3

에게 범위 쿼리 (기본 키 또는 토큰 범위가 * 선택을) 도와주세요 (데이터 세트의 크기에 따라 다름). 전체 데이터 세트를 읽거나 일괄 처리를 수행하려는 경우 스파크 커넥터를 사용하거나 그와 같이 동작하는 것이 가장 좋으며 개별 토큰 범위를 쿼리하여 코디네이터에 과도한 부하를 가하지 마십시오.

비효율적 인 쿼리를 사용하려는 경우 (정상적인 읽기와 동일한 처리량을 기대하지 마십시오.) 더 많은 리소스 또는 일부 전문 튜닝이 필요할 것입니다. 더 많은 노드를 추가하거나 노드를 조사하여 노드를 아래로 이동시킬 수 있습니다. 대체로 힙로드 (heap load)에서 GC를 찾을 수 있으므로 GC 로그를 확인할 수 있습니다. 메모리를 사용할 수 있으면 힙을 늘릴 수 있습니다. 모든 것을 읽으면 시스템 캐시가 의미있는 것이 될 수 없으므로 힙 크기를 최대화하는 것이 좋습니다. jvm.options에서 G1을 16GB 이상 (한 번 사용해야 함)으로 한 번 사용하십시오.