설문조사
PostgreSQL/PPAS 관련 듣고 싶은 교육은


Powered by EnterpriseDB
총 게시물 5건, 최근 0 건
   

HIVE 의 METADB를 PostgreSQL 로 사용하기

글쓴이 : PostgresDBA 날짜 : 2012-12-01 (토) 13:20 조회 : 3775

이 글은 HIVE 사용자가 아니면 SKIP 하시면 됩니다.

빅데이터에서 SQL 을 이용하기 위해서 나온 솔루션중 하나가 HIVE 입니다.

HIVE 에서는 디폴트로 메타정보를 저장하기 위해 MySQL 디비를 사용합니다.
반드시 MySQL 만 사용해야 하는건가요? 물론 아니죠.

그래서 HIVE 매뉴얼을 참조하여, 직접 시도해봤습니다.

절차는 다음과 같습니다.

PostgreSQL 유저와 디비를 만드시고
create user hadoop with password 'hadoop';
create database metastore_db owner = hadoop;
create schema authorization hadoop;

PostgreSQL jdbc 라이브러리를 Hive lib 디렉토리에 복사합니다.
[hadoop@olmaster:~/hive-0.9.0/lib]$ pwd
/home/hadoop/hive-0.9.0/lib
[hadoop@olmaster:~/hive-0.9.0/lib]$ 
[hadoop@olmaster:~/hive-0.9.0/lib]$ cp /mnt/hgfs/common/postgresql-9.2-1001.jdbc4.jar  .

그리고 hive-site.xml 설정화일을 수정합니다.
$HIVE_HOME/conf/hive-site.xml     
<property>
  <name>hive.metastore.local</name>
  <value>true</value>      ## false 가 이닌 true 이다. postgresql 서버랑 같은 local 에 있으니..
  <description>controls whether to connect to remove metastore server or open a new metastore server in Hive Client JVM</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:postgresql://localhost:5432/metastore_db</value>
  <description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>org.postgresql.Driver</value>
  <description>Driver class name for a JDBC metastore</description>
</property>
.......
<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>hadoop</value>
  <description>username to use against metastore database</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>hadoop</value>
  <description>password to use against metastore database</description>
</property>

-- hive 띄워서 수행해봐야 겠죠?
[hadoop@olmaster:~/hive-0.9.0/conf]$ hive
WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated. Please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.
Logging initialized using configuration in jar:file:/home/hadoop/hive-0.9.0/lib/hive-common-0.9.0.jar!/hive-log4j.properties
Hive history file=/tmp/hadoop/hive_job_log_hadoop_201211021605_2042357136.txt
hive> show tables;
OK
Time taken: 7.705 seconds
hive> 
    > ;
hive> create table pokies(foo int, bar string);
OK
Time taken: 0.448 seconds
hive> create table invites(foo int, bar string) partitioned by (ds string);
OK
Time taken: 0.105 seconds
hive> show tables;
OK
invites
pokies
Time taken: 0.196 seconds
hive> CREATE TABLE cite (citing INT, cited INT)
     ROW FORMAT DELIMITED
     FIELDS TERMINATED BY ','
     STORED AS TEXTFILE;
OK
Time taken: 3.958 seconds
hive> describe cite;
OK
citing  int
cited   int
Time taken: 0.223 seconds
hive> 

잘 됩니다.^^


   

postgresdba.com