Hive MetaStore 소스 분석
2982 단어 hive
1. 시작 스크립트
$HIVE_HOME/bin/hive --service hivemetastore --> $HIVE_HOME/bin/ext/metastore.sh --> 입구 클래스 org를 볼 수 있습니다.apache.hadoop.hive.metastore.HiveMetaStore
2. 입구류
(1) cli.parse 해석 매개 변수
(2) LogUtils.initHiveLog4j 설정 로그, hiveConf 만들기
(3) startMetaStore 시작 서비스
(4) 초기화thrift는 TBinaryProtocol
(5) HMShandler basehandler 만들기 --> newRetrying HMShandler를 통해 basehandler 초기화
3. HMShandler 초기화
(1)hive를 통해.metastore.rawstore.impl 로드된 메타데이터를 가져오는 객체 클래스 (이 클래스는 RawStore, 운영 데이터베이스 상속)
(2)hive를 통해.metastore.init.hooks 초기화 클래스 가져오기, HMShandler 추가 초기화에 사용
(3)hive를 통해.metastore.alter.impl HiveAlterHandler 가져오기 (이handler를 통해 sql에서alter 작업)
(4)createDefaultDB () 기본 DB 테이블 만들기 -> 기본 역할 만들기 admin 및public --> admin 추가 사용자
(5)hive를 통해.metastore.pre.event.listeners에서 미리 처리된 감청을 가져옵니다.이러한 방법은 onEvent 방법을 실현하고 일부thrift 인터페이스를 호출하기 전에 호출합니다. (예를 들어 롤과 권한을 부여받은 일부 인터페이스)
(6)hive를 통해.metastore.event.listeners에서 감청 클래스를 가져옵니다.(onCreateTable onDroptbale 등을 실현하여 sql 조작 후 터치하는 action을 실현한다
(7)hive를 통해.metastore.end.function.listeners 함수 감청 얻기 (sql 함수 호출 시 hook)
(8)handler를 통해 Processor 만들기
(9) TthreadPoolServer를 통해 서버를 만들고 서비스를 시작합니다
4.metastore 호출
public HiveMetaPoolFactory(String metastoreUris, String jdoUrl, String jdoUser,
String jdoPassword, String jdoDriverName) {
this.metastoreUris = metastoreUris;
this.jdoUrl = jdoUrl;
this.jdoUser = jdoUser;
this.jdoPassword = jdoPassword;
this.jdoDriverName = jdoDriverName;
Configuration conf = new Configuration();
if(StringUtils.isNotEmpty(metastoreUris)) {//uris
conf.set("hive.metastore.uris", metastoreUris);
} else {
conf.set("javax.jdo.option.ConnectionURL", jdoUrl);//jdbc
conf.set("javax.jdo.option.ConnectionUserName", jdoUser);
conf.set("javax.jdo.option.ConnectionPassword", jdoPassword);
conf.set("javax.jdo.option.ConnectionDriverName", jdoDriverName);
}
hConf = new HiveConf(conf, HiveConf.class);
}
@Override
public Object makeObject() throws Exception {
HiveMetaStoreClient hmsc = new HiveMetaStoreClient(hConf);//
return hmsc;
}
5.thrift 인터페이스와client 연결 탱크 구현
metastore/if/hive_metastore.thrift 파일, 연결 탱크의 실현 뒤에 메타클라이언트와thrift2클라이언트를 설명하는 섹션을 전문적으로 씁니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spark + HWC로 Hive 테이블을 만들고 자동으로 Metadata를 Atlas에 반영합니다.HDP 3.1.x의 경우 Spark + HWC에서 Hive 테이블을 만들고 자동으로 Metadata를 Atlas에 반영하는 방법이 있습니다. 방법: 전제조건: Hive Warehouse Connector (HWC) ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.