본문 바로가기

metastore8

[hive] hive standalone metastore 에서 Drop Partition 처리시 Caused by: java.lang.UnsupportedOperationException 오류가 발생하는 경우 하이브 스탠드얼론 메타스토어(apache-hive-metastore-3.1.2-bin) 에서 파티션 DROP 시점에 다음과 같은 오류가 발생하였습니다. Caused by: java.lang.UnsupportedOperationException at org.apache.hadoop.hive.metastore.DefaultPartitionExpressionProxy.convertExprToFilter(DefaultPartitionExpressionProxy.java:34) at org.apache.hadoop.hive.metastore.PartFilterExprUtil.makeExpressionTree(PartFilterExprUtil.java:50) at org.apache.hadoop.hive.metas.. 2022. 8. 2.
[spark] spark3와 hive3 메타스토어 연동 스파크3와 하이브3 메타스토어를 연동하는 방법은 다음과 같습니다. 스파크-하이브 라이브러리 추가 spark-hive_2.12-3.1.2.jar를 다운로드하고 ${SPARK_HOME}/jars 에 추가 jline 2.14.6 라이브러리 추가 기존 라이브러리 버전이 낮아서 다음 오류가 발생 스파크3 버전에 따라 오류가 발생하지 않으면 추가 하지 않아도 됨 ${SPARK_HOME}/conf 에 hive-site.xml 에 hive 라이브러리 추가 export SPARK_DIST_CLASSPATH=$(hadoop classpath):/opt/hive/lib/* ${SPARK_HOME}/conf 에 hive-site.xml 추가 hive-site.xml 파일을 추가하고, hive.metastore.uris 설정을.. 2021. 6. 21.
[spark] spark2와 hive2 메타스토어 연동 스파크2와 하이브메타 스토어를 연동하는 방법은 다음과 같습니다. 스파크-하이브 라이브러리 추가 spark-hive_2.11-2.4.6.jar 를 다운로드하고 ${SPARK_HOME}/jars 에 추가 스파크2용 하이브1 라이브러리 빌드를 추가 hive-cli-1.2.1.spark2.jar 를 다운로드하고 ${SPARK_HOME}/jars 에 추가 hive-beeline-1.2.1.spark2.jar hive-exec-1.2.1.spark2.jar hive-jdbc-1.2.1.spark2.jar hive-metastore-1.2.1.spark2.jar libthrift-0.9.3.jar libfb303-0.9.3.jar ${SPARK_HOME}/conf 에 hive-site.xml 추가 hive-site... 2021. 6. 21.
[spark] spark2와 hive2 메타스토어 연결 오류 수정. java.lang.NoSuchFieldError: HIVE_STATS_JDBC_TIMEOUT spark2.x 와 hive 2.x 버전의 메타스토어를 연결하면 오류가 발생합니다. 지라에는 스파크 2.2 버전에서는 해결이 됐다고 나오지만 저는 2.4.6 버전에서도 오류가 발생했습니다. 관련 지라는 다음과 같습니다. https://issues.apache.org/jira/browse/SPARK-18112 [SPARK-18112] Spark2.x does not support read data from Hive 2.x metastore - ASF JIRA Hive2.0 has been released in February 2016, after that Hive2.0.1 and Hive2.1.0 have also been released for a long time, but till now spark o.. 2021. 6. 21.
[hive] 하이브 schemaTool을 이용하여 스키마 생성 원격 하이브 메타스토어를 이용하기 위해서는 RDB에 하이브 메타스토어 스키마를 설정해야 합니다. hive-site.xml에 RDB에 접속을 위한 정보를 입력하고, 커맨드를 입력하여 스키마를 생성할 수 있습니다. hive-site.xml 설정 원격 데이터베이스에 접속하기 위한 접속정보를 설정합니다. javax.jdo.option.ConnectionURL jdbc:mysql://database_ip:database_port/database_name javax.jdo.option.ConnectionDriverName org.mariadb.jdbc.Driver javax.jdo.option.ConnectionUserName user_name javax.jdo.option.ConnectionPassword pas.. 2019. 10. 30.
[hive] 테이블 DROP 시 발생하는 Caused by: MetaException(message:Timeout when executing method: drop_table_with_environment_context; 69853ms exceeds 60000ms) 오류 하이브에서 테이블을 DROP 할 때 다음의 오류가 발생하는 경우가 있습니다. 증상 2019-07-29 06:08:02,737 ERROR [c09ac50a-3167-4c79-8909-a678d59ab9a0 uber-SubtaskRunner] hive.ql.exec.DDLTask: org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(message:Timeout when executing method: drop_table_with_environment_context; 69853ms exceeds 60000ms) at org.apache.hadoop.hive.ql.metadata.Hive.dropTable(Hive.java:1180) at org.a.. 2019. 7. 29.
[hive] 하이브 데이터베이스 이름 변경(hive database rename) 기본적으로 하이브는 데이터베이스의 이름을 변경하는 것은 지원하지 않는다. 따라서 메타스토어(metastore)의 테이블에 있는 하이브 테이블의 이름을 수정하면 된다. 메타스토어는 ID 기준으로 처리 되기 때문에 메타스토어의 이름을 변경하면 적용된다. 우선 하이브 메타스토어(metastore)에 mysql 로 접속한다. * 설정한 기준에 따라 다르게 접속하면된다. * 메타 스토어의 주소를 모르면 hive-site.xml 에 설정된 javax.jdo.option.ConnectionURL 정보를 확인한다. 하이브 DB를 보면 DBS 테이블이 DB 관련 정보이다. mysql> desc DBS;+-----------------+---------------+------+-----+---------+-------+|.. 2018. 5. 25.
[hive] hive 쿼리 where 조건의 in 사용시 메타 스토어 오류 hive의 쿼리에서 in 을 이용하여 데이터를 비교할 때 다음과 같이 transform 구문을 이용하여 처리하였다.그랬는데 비교부분 테이블의 파티션이 늘어나면서 다음과 같이 BufferOverflowException 이 발생하였다. SELECT * FROM table1 WHERE create_date in ( select explode( split( yyy.date_list, ',' ) ) ... ) 파티션의 정보를 비교하다가 버퍼 오퍼플로우 익셉션이 발생하였다. 2018-09-09T01:11:11,111 WARN [pool-5-thread-200([])]: metastore.MetaStoreDirectSql (MetaStoreDirectSql.java:executeWithArray(1750)) - Fa.. 2018. 4. 9.