Skip to Content
Data EngineeringZeppelin HBase Interpreter의 배포판 라이브러리 문제
📊 Data Engineering2017년 10월 26일

Zeppelin HBase Interpreter의 배포판 라이브러리 문제

#zeppelin#hbase#interpreter#data-engineering#flamingo

Zeppelin의 HBase Interpreter를 사용하려고 Hadoop과 HBase 버전을 맞춰 빌드했는데, 배포 후 실행에서 오류가 발생했습니다. 당시 참고한 문서는 Zeppelin 0.7.3의 HBase Interpreter 가이드였습니다.

정확한 내부 원인까지 확정한 기록은 아니지만, 배포판의 클라이언트 라이브러리를 바꿨을 때 동작이 달라져 그 과정을 남겼습니다.

빌드 버전과 HBase 설정

Zeppelin 0.7.3 HBase Interpreter 문서 는 HBase 버전에 맞는 빌드 옵션과 hbase.home 설정을 안내합니다. HBase 클라이언트가 설치돼 있고 해당 서버에서 클러스터에 접속할 수 있다는 전제도 있습니다.

버전 옵션을 맞추는 것 외에 실제 실행 환경이 어떤 JAR와 설정 파일을 사용하는지도 확인해야 했습니다.

HBase Client JAR 교체 결과

Hortonworks 환경에서는 배포판에 포함된 hbase-client-1.1.2.2.6.1.0-129.jar를 Zeppelin의 interpreter/hbase 경로에 넣은 뒤 정상 동작했습니다.

처음에는 배포판의 HBase 라이브러리 전체로 교체했지만 동작하지 않았습니다. 당시에는 클라이언트 JAR 하나를 바꿨을 때 결과가 달라졌습니다. 라이브러리를 많이 교체한다고 호환성이 좋아지는 것은 아니었습니다.

같은 조치로 해결되지 않아 배포판의 Hadoop 라이브러리를 맞춰야 했던 경우도 있었습니다. 따라서 이 파일 하나가 모든 환경의 해결책이라고 볼 수는 없습니다.

변경 전후 확인

라이브러리를 조정할 때는 기존 파일을 보관하고, 같은 클래스가 들어 있는 서로 다른 버전의 JAR가 함께 남는지도 확인해야 합니다. 어떤 파일이 실제로 로드되는지에 따라 결과가 달라질 수 있기 때문입니다.

Interpreter를 다시 시작한 뒤 간단한 조회로 확인하고, 오류가 남으면 HBase 설정과 접속 경로, 실행 시의 의존성을 함께 봐야 합니다. 이번 기록에서는 배포판에 맞는 라이브러리를 확인하는 일이 빌드 버전 선택만큼 중요했습니다.

Last updated on