hue -> oozie -> hive 실행 간의 오류에 관하여
419
안녕하세요
올려주신 강의 참고하여 hue의 여러가지 기능을 써보고 있는 도중입니다.
지난 번 질문에 이어서 이번엔 hive 쪽 기능을 oozie 활용하여 테스트 해보고 있는 중입니다.
어김없이 에러가 찾아왔기에 실마리를 찾고자 질문 드리게 되었습니다.
해당 에러를 해결하고 싶습니다.
oozie를 통해 hive sql을 실행시키게 되면 hue의 stderr 부분이 다음과 같이 나옵니다.
hive 단독으로 SQL 안의 내용을 실행 시켰을 때 정상적으로 실행되는 것은 확인하였습니다. (단순 테이블 생성, 강의에서 제공해준 hql과 내용 동일)해당 에러를 조사하는 과정에서 protobuf 관련 jar가 겹치면 저렇게 된다는 내용을 보고 시스템 내 관련 jar를 조사하였습니다.

(bak 파일은 제가 생성하였습니다. 백업본 입니다)
hadoop 버전은 3.3.4로 관련 종속성 내용 조사를 하였을 때 3.7.1 버전과 2.5.0 버전은 사용이 된다는 것을 확인하여 3.6.1버전을 지워버렸습니다.
그럼에도 이슈는 해결이 되고 있지 않는 상황입니다. 해당 에러를 해결하기 위한 필요 행동을 알고 싶습니다.
oozie의 경우 library 추가 시 sharelibupdate 기능이 필수인 것으로 이해했습니다. hadoop share library 부분도 jar가 추가, 삭제될 경우 hadoop server를 무조건 재시동해야 하는 것인가요? 이 경우에는 연계되는 다른 프로그램 (hive, hbase, oozie 등)과 관계없이 hadoop만 재시동하면 되는 것인지 궁금합니다.
이번에도 많은 질문을 드리게 되었는데 꼭 해결해보고 싶습니다.
감사합니다.
답변 1
0
안녕하세요! "kbg4676"님!
강의 환경과 상이한 아키텍처로 진행 중이신것 같아 제가 정확한 가이드가 어렵네요...^^;;
그래도 의견을 드리자면요~
1.해당 에러를 해결하고 싶습니다.
프로토콜버퍼(pb)는 하둡에코시스템 서버들간의 내부통신에 사용하는 통신규약 입니다.
아마도 테스트 했던 내용은 크게 아래의 프로세스로 진행이 됐을 건에요..
Oozie(HiveQL) <---> YARN <---> Hive Server <---> YARN <---> DataNode
여기서 어느구간이 문제 였는지, 그리고 이때 Oozie, Hadoop, Hive 등에서 사용중인 pb의 버젼을 체크해 보셔야 할 것 같습니다. 예를들어 Hadoop이 pb 2.x 인데 Oozie가 3.x라면 문제가 되겠죠??!!
2.oozie의 경우 library 추가 시 sharelibupdate 기능이 필수인 것으로 이해했습니다. hadoop share library 부분도 jar가 추가, 삭제될 경우 hadoop server를 무조건 재시동해야 하는 것인가요? 이 경우에는 연계되는 다른 프로그램 (hive, hbase, oozie 등)과 관계없이 hadoop만 재시동하면 되는 것인지 궁금합니다.
네~ 하둡이건 하이브건...jar를 추가하면 해당 서버를 재기동 해줘야 합니다. 특정 솔루션엔 동적로드 또는 핫디플로이라는것을 제공 하는데, 이기능이 있음에도 긴급 사항이 아닌이상 안정성을 위해 배포후 재기동을 합니다. (참고로 이중/상중 이상으로 HA가 구성 되어 있을땐 롤링 배포라는 것을 합니다~)
그리고 jar 추가시 의존성을 갖는 주변 서버들의 재기동은 케바케 입니다. 예를들어, 해당 jar가 단순 기능성 라이브러리라면 문제되지 않지만, 쓰레드/데몬 등과 같이 실행 되는 구조라면 재기동을 해줘야 합니다.
-빅디 드림





