2011-01-14 6 views
3

Ubuntu VM에 Cassandra의 단일 노드 설치를 설정 중입니다./cassandra/conf 아래의 cassandra.yaml 파일을 내 자신의 사용자 정의 스키마로 수정했습니다. 내가/카산드라/빈 아래 schematool 유틸리티를 사용했을 때, 나는 오류가 발생했습니다 :cassandra에 스키마 업로드 관련 문제

Cannot import schema when one already exists

나는 JMX 콘솔에서의 MBean loadSchemaFromYAML로 이동 시도 :

Problem invoking loadSchemaFromYAML: java.rmi.unmarshalexception:Error Unmarshalling return;nested exception is: Java.lang.ClassNotFoundException:org.apache.cassandra.config.ConfigurationException(no security manager:RMI class loader disabled)

누군가가 지적 할 수있는 작업 여기에 무슨 일이 일어나고 내 스키마를로드 할 수 있습니까?

감사

답변

5

에만 cassandra.yaml 한 번에서 스키마를 가져올 수 있습니다. (이제는 더 이상 사용되지 않습니다.) cassandra.yaml에서 스키마를 다시 가져 오려면 데이터 디렉토리 (/ var/lib/cassandra/*)를 지우고 Cassandra를 다시 시작해야합니다.

다른 옵션 (그리고 앞으로해야 할 일)은 bin/cassandra-cli 또는 다른 클라이언트를 사용하여 키 공간 및 열 패밀리를 작성하는 것입니다.

시작하기에 앞서 article on live schema modifications입니다.

+0

제공된 링크를 기반으로 새로운 버전의 cassandra.yaml을 도입하고 서버를 다시 시작한 경우 스키마 정의가 선택됩니다. cassandra.yaml을 통한 스키마 가져 오기 기능이 사용되지 않는 이유가 있습니까? j2ee 신참이기 때문에 jmx 콘솔이 내가 설명한 예외를 던진 이유가 궁금합니다. –

+0

아니요, 기존 데이터를 지우고 다시 가져 오기 전까지는 새 스키마가 다시 시작될 때 선택되지 않습니다. 스키마와 관련된 "진실"의 여러 소스를 사용하면 문제가 발생하고 라이브 스키마 수정이 훨씬 더 나은 옵션 (클러스터링 이유로)이므로 권장되지 않습니다. 나는 J2EE/JMX 녀석이 아니기 때문에 그 특별한 예외가 왜 던져지고 있는지 잘 모르겠습니다. /. 나는 그것이 정상적인 것이라고 생각하지 않는다. –

+0

스키마와 관련된 "진실"의 여러 소스에 대해 자세히 설명해 주시겠습니까? –