2013-03-23 3 views
1

CDH4.1.2의 설치를 CDH4.2.0으로 업데이트 했으므로 압축이 활성화 된 새 테이블을 더 이상 만들 수 없습니다. 이전에 SNAPPY 압축을 성공적으로 사용했습니다.CDH4.2.0 HBase 압축을 설정할 수 없습니다.

create 'tableWithCompression', {NAME => 't1', COMPRESSION => 'SNAPPY'} 

오류가 발생합니다 : 우리는 다른 압축 알고리즘 중 하나를 찾을 수 없습니다 것을 깨달았

ERROR: Compression SNAPPY is not supported. Use one of LZ4 SNAPPY LZO GZ NONE 

: 이제 우리는 같은 생성 문을 실행하려고 할 때, 예를 들어 'GZ'와 같은 문제.

ERROR: Compression GZ is not supported. Use one of LZ4 SNAPPY LZO GZ NONE 

우리는 "/ 네이티브 수출 HBASE_LIBRARY_PATH =는/usr/lib 디렉토리/하둡/lib 디렉토리는 /" 가 hbase-env.sh을 추가했습니다.

아쉽게도 문제가 해결되지 않았습니다.

그 외 어떤 시도를 할 수 있습니까?

+1

NONE도 같은 문제가 발생합니까? 이 대문자 변환 및 로케일/환경의 언어와 관련이있을 수 있습니다 추측하고 있기 때문에이 단순히 throw합니다 코드를 정의한 열거 형 및 네이티브 lib 검사를 찾습니다. –

+0

예,이 오류는 NONE과 함께 발생합니다. 실행중인 로케일은 "LANG = en_GB.UTF-8"을 표시합니다. – bathyscaph

답변

2

나는 똑같이하고있다. 이것은 admin.rb 스크립트의 버그 인 것 같습니다.

문제의 코드는 이것이다 :

 if arg.include?(org.apache.hadoop.hbase.HColumnDescriptor::COMPRESSION) 
     compression = arg[org.apache.hadoop.hbase.HColumnDescriptor::COMPRESSION].upcase 
     unless org.apache.hadoop.hbase.io.hfile.Compression::Algorithm.constants.include?(compression)  
      raise(ArgumentError, "Compression #{compression} is not supported. Use one of " + org.apache.hadoop.hbase.io.hfile.Compression::Algorithm.constants.join(" ")) 
     else 
      family.setCompressionType(org.apache.hadoop.hbase.io.hfile.Compression::Algorithm.valueOf(compression)) 
     end 
     end 

일부 "P"문 후, 나도 알아. 압축은 "SNAPPY"이고, org.apache.hadoop.hbase.io.hfile.Compression::Algorithm.constants[:LZ4, :SNAPPY, :LZO, :GZ, :NONE]이다.

diffrence를 참조 하시겠습니까? 우리는 문자열과 기호를 비교합니다.

compression = arg[org.apache.hadoop.hbase.HColumnDescriptor::COMPRESSION].upcase.to_sym 

나는이 거기에 다른 JRuby를 변형 및 구성의 톤 인과 관련이있다 같아요 빠른 수정 프로그램은 다음에 압축을 설정하는 라인을 변경하는 것입니다. 어떤 경우에는 상수가 다른 문자열에있는 문자열이라고 가정합니다. 더 영구적 인 해결 방법은 비교의 양쪽 끝에 to_sym을 사용하는 것입니다.

+0

업스트림 패치를 제출 하시겠습니까? –

+0

죄송합니다, 여기에 인터넷 연결이 매우 엉터리입니다. 복제본 hbase를 사용할 수 없으므로 패치를 제출할 수 없습니다. – nes1983