본문 바로가기

Guava3

[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에서 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.