본문 바로가기

Hadoop/Apache Hive

Apache Hive 설치 4 ( HIVE 실행 및 연동 )

Hive server 는 하이브 쿼리를 실행할 수 있는 API를 제공합니다. 원격 또는 여러 툴에서 Hive에 접속하기 위해서는 hiveserver가 필요합니다.

 

Apache Thrift 는 언어 간 서비스 개발을 위해 확장 가능한 프레임워크로 

 

Hive 는 테이블과 파티션과 관련된 메타정보를 모두 메타스토어에 저장합니다. 기존 RDBMS와 다르게 insert 후 스키마를 입력합니다. 스키마 정보는 메타스토어에서 참조하여 가져옵니다.

실행 후 연동과정에서 쿼리문을 사용하거나 테이블을 생성하는 등 여러 작업이 필요하기 때문에 Hive server 와 동시에 hivemetastore 까지 실행시켜야 합니다.

 

hiveserver2 실행

hive --service hiveserver2

백그라운드에서 실행 -> hive --service hiveserver2 &

 

hivemetastore 실행

hive --service metastore

백그라운드에서 실행 -> hive --service metastore &

 

hiveserver2와 hivemetastore를 실행하게 되면

serverProtocolVersion is unset 이라는 오류와 함께 User: hadoop is not allowed to impersonate hadoop 이라는 오류가 생길 수 있습니다.

해당 오류는 설정을 통해 해결할 수 있습니다.

 

hive-site.xml에서 

<property>
                <name>hive.server2.enable.doAs</name>
                <value>false</value>

</property>

를 통해 false로 설정하고 hive를 재시작하게 되면 접속이 가능합니다.

 

True로 설정했을 때, blaze와 spark 엔진이 dis 사용자 또는 hive를 실행시킬 수 있는 사용자로 테이블에 접근 가능합니다. ( 정해진 계정만 접근 가능 )

 

False로 설정했을 때, hiveserver2에서 hive user로 mapreduce를 실행할 수 있습니다. ( 모든 계정으로 접근가능 )