hive34 [hive3] hive3와 tez 0.9.2의 guava 라이브러리 버전 변경 tez 0.9.2의 guava 라이브러리 버전은 11.0.2이고, TEZ의 라이브러리 버전은 19.0이기 때문에 그냥 사용하면 문제가 발생합니다. 하둡3의 guava 버전은 27.0-jre 이기 때문에 3개를 맞춰서 사용하기 위해서는 tez 도 버전을 변경해야 합니다. tez 의 pom.xml 의 guava 라이브러리 버전을 변경하고, 소스코드를 수정한 후 빌드를 다시 하면 됩니다. pom.xml 을 변경한 소스코드를 변경해야 합니다. Futures.addCallback 의 코드가 변경되어 파라미터가 추가 되었기 때문에 코드를 변경해 주어야 합니다. 2021. 6. 17. [hive3] hadoop3와 hive3 연동에서 guava 오류 처리 하둡3와 하이브3의 연동에서 하이브3에서 사용하는 guava 라이브러리 버전(27.0-jre)과 하둡3에서 사용하는 guava 라이브러리(19.0)의 버전이 달라서 문제가 발생합니다. 또한 hive-exec-3.x.x.jar의 라이브러리 안에는 guava 라이브러리가 포함되어 있기 때문에, 이 라이브러리를 제거하고 다시 빌드해야만 오류를 해결할 수 있습니다. 하이브 소스를 다운 받아서 ql 라이브러리의 pom.xml 파일을 수정하고 빌드하면 문제를 해결할 수 있습니다. pom.xml 파일의 include를 수정하고 빌드합니다. include를 수정하고 빌드한후, 하둡의 guava 라이브러리와 하이브의 guava 라이브러리 버전을 맞춰주면 됩니다. 2021. 6. 17. [hive] hive3의 mr 엔진에서 java.lang.IncompatibleClassChangeError 오류 처리 하이브3에서 mr 엔진을 이용할 때 java.lang.IncompatibleClassChangeError 오류가 발생할 수 있습니다. 라이브러리가 맞지 않아서 발생하는 문제입니다. jersey-json-1.19.jar 라이브러리를 하이브 홈으로 복사합니다. jersey-json 라이브러리를 확인 {HADOOP_HOME}/share/hadoop/common/lib/jersey-json-1.19.jar {HIVE_HOME}/lib 로 복사 hive (default)> show databases; FAILED: Hive Internal Error: java.lang.IncompatibleClassChangeError(com.sun.jersey.json.impl.provider.entity.JSONRootEle.. 2021. 5. 27. [hive] hive3에서 TEZ 연동시 java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument 오류 처리 하둡3, 하이브3에서 TEZ를 연동할 때 라이브러리가 맞지않아서 NoSuchMethodError 가 발생합니다. 하둡3는 guava가 27버전이고, 하이브3는 guava가 19버전이라서 발생합니다. 따라서 라이브러리를 맞춰주면 문제가 해결됩니다. hadoop 3.2.1 guava-27.0 hive 3.1.2 guava-19.0 해결방법 {HIVE_HOME}/lib/guava-19.0.jar 삭제 {HADOOP_HOME}/share/hadoop/common/lib/guava-27.0-jre.jar 를 {HIVE_HOME}/lib/ 에 복사 2021. 5. 27. 이전 1 다음