Ranger에서 Hive로 권한 동기화 비활성화

Secure Hadoop 클러스터에서 Apache Ranger로 인가를 수행할 때, Hive 4.x.x 미만 버전은 기본적으로 모든 Ranger Hive 정책을 Hive용 RDBMS에 동기화한다. 이는 불필요하며 DB에 높은 부하를 유발할 수 있다. (https://issues.apache.org/jira/browse/HIVE-25391) HiveServer2에서 다음 설정으로 비활성화할 수 있다. hive.privilege.synchronizer=false

10월 19, 2024 · map[name:eubnara]

"jute.maxbuffer" 관련 모니터링 지표

ZooKeeper 사용 시 “jute.maxbuffer"라는 설정이 있다. ZooKeeper 클라이언트 또는 서버 측에서 설정 가능하며, 클라이언트 측 설정값은 서버 측보다 낮아야 한다. 클라이언트가 이 설정값보다 큰 데이터를 받으면 오류가 발생한다. 관련 이슈: https://issues.apache.org/jira/browse/HIVE-21993 https://issues.apache.org/jira/browse/YARN-2962 이러한 오류를 방지하기 위해 ZooKeeper에서 다음 지표를 모니터링해야 한다. last_client_response_size 또는 max_client_response_size client_response_size는 ZooKeeper 서버에서 클라이언트로의 응답 크기(바이트)다. last_proposal_size 또는 max_proposal_size proposal_size는 ZooKeeper 서버 리더가 팔로워로 보내는 proposal 크기(바이트)다. proposal에 대한 자세한 내용은 https://zookeeper.apache.org/doc/r3.7.1/zookeeperInternals.html 참고. 이 값들은 jute.maxbuffer보다 낮아야 한다. 이 설정은 -Djute.maxbuffer=10485760 (10MB)와 같은 JVM 인자로 설정할 수 있다.

5월 25, 2024 · map[name:eubnara]

MySQL 사용 시 Hive Metastore 체크리스트

MySQL Index Hive Metastore가 RDBMS에 메타데이터를 저장/조회할 때 비용이 큰 작업이 있다. 다음은 관련 공식 Hive 패치의 인덱스 생성 SQL이다. -- HIVE-21063 CREATE UNIQUE INDEX `NOTIFICATION_LOG_EVENT_ID` ON NOTIFICATION_LOG (`EVENT_ID`) USING BTREE; -- HIVE-21487 CREATE INDEX COMPLETED_COMPACTIONS_RES ON COMPLETED_COMPACTIONS (CC_DATABASE,CC_TABLE,CC_PARTITION); -- HIVE-27165 DROP INDEX TAB_COL_STATS_IDX ON TAB_COL_STATS; CREATE INDEX TAB_COL_STATS_IDX ON TAB_COL_STATS (DB_NAME, TABLE_NAME, COLUMN_NAME, CAT_NAME) USING BTREE; DROP INDEX PCS_STATS_IDX ON PART_COL_STATS; CREATE INDEX PCS_STATS_IDX ON PART_COL_STATS (DB_NAME,TABLE_NAME,COLUMN_NAME,PARTITION_NAME,CAT_NAME) USING BTREE; Hive 업그레이드 시 RDBMS 테이블에 변경사항이 있을 수 있다. 버전별 필요한 SQL은 https://github.com/apache/hive/tree/master/standalone-metastore/metastore-server/src/main/sql/mysql 에서 확인 가능하다. ...

10월 12, 2023 · map[name:eubnara]

"HADOOP_CLASSPATH" 환경 변수에 대해

https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/UnixShellGuide.html#HADOOP_CLASSPATH Hadoop 생태계에서 HADOOP_CLASSPATH 환경 변수는 다양한 곳에서 사용된다. Hive도 이 변수를 사용한다. beeline 같은 스크립트에서 HADOOP_CLASSPATH 변수가 어떻게 사용되는지 궁금했다. Hive 소스 코드에서는 HADOOP_CLASSPATH 변수를 찾을 수 없었다. 알고 보니 beeline 실행 시 hadoop jar 명령을 사용한다. (https://github.com/apache/hive/blob/rel/release-3.1.3/bin/ext/beeline.sh#L35) 이때 RunJar.java가 사용되며, 여기서 HADOOP_CLASSPATH가 CLASSPATH 설정에 사용된다. (https://github.com/apache/hadoop/blob/rel/release-3.3.4/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/RunJar.java#L347-L351) Hadoop 생태계에서 RunJar#main을 사용하는 경우, 대부분 HADOOP_CLASSPATH 환경 변수를 따르게 된다.

2월 5, 2023 · map[name:eubnara]