Hadoop-Hive

   

  • Hadoop 의 확장성과 가용성은 이해할 수 있었으나 자바 맵리듀스 프로그램을 작성하는 것과 복잡성 때문에 광범위한 채택에 대한 해결책이 필요

       

  • 기술자와 분석가는 SQL 쿼리 방식의 도구를 생각, 대부분의 개발자들이 PHP와 파이선 같은 스크립트 언어에 익숙 
  • 익숙한 언어와 hadoop 프로그램이 요구하는 언어의 차이를 줄일 수 있는 소프트웨어를 개발하는 것이 필수
  • 데이터가 테이블과 파티션으로서 표현될 수 있고 쿼리와 분석을 위해 SQL같은 언어 또한 사용할 수 있는 시스템. 사용자가 선택한 프로그래밍 언어로 작성된 맵리듀스 프로그램을 쿼리에 연결할 수 있는 능력. --> HIVE 사용.

       

    - 하이브는 하둡의 최상위에 구축된 데이터 웨어하우스 기반구조이다. 

    - 페이스북의 하둡에 저장된 데이터에 쿼리하기 위해 사용될 수 있는 도구.

       

       

       

       

Mysql Installation on Ubuntu

   

  • Mysql 설치

Apt-get Install mysql-server mysql-client

   

  • MySQL 서비스 상태 확인

   

  • MySQL 서비스 재시작
  • /etc/init.d/mysql restart

       

MySQL에 Hive 계정 생성(default)

Mysql -uroot -p

   

  • 데이터베이스 생성

Mysql> create database metastore_db;

Mysql> use mysql

   

  • 계정만들기

Mysql> insert into user(host,user,password) values('%', 'hive', password('hive'));

Mysql> Flush privileges;

Mysql> grant all privileges on metastore_db.* to hive@localhost identified by 'hive' with grant option;

Mysql> Flush privileges;

Mysql> grant all privileges on metastore_db.* to hive@'%' identified by 'hive' with grant option;

Mysql> Flush privileges;

   

  • Hive 다운로드 및 설치

>wget http://archive.cloudera.com/cdh/3/hive-0.7.1-cdh3u5.tar.gz

>tar xvgz hive-0.7.1-cdh3u5.tar.gz

>wget

http://repo.maven.apache.org/maven2/mysql/mysql-connector-java/5.1.9/my

sql-connector-java-5.1.9.jar

>cp mysql-connector-java-5.1.9.jar ./hive-0.7.1-cdh3u5/lib

   

  • Hive 설정
     
    • HIVE_HOME/conf/hive-defalt.xml

   

<property>

<name>hive.metastore.local</name>

<value>true</value>

</property>

<property>

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>

</property>

<property>

<name>javax.jdo.option.ConnectionDriverName</name>

<value>com.mysql.jdbc.Driver</value>

<description>Driver class name for a JDBC metastore</description>

</property>

<property>

<name>javax.jdo.option.ConnectionUserName</name>

<value>root</value>

</property>

<property>

<name>javax.jdo.option.ConnectionPassword</name>

<value>[패스워드 설정]</value>

</property>

   

  • HADOOP_HOME/conf/core-site.xml

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://hadoop-virtualbox:9000</value>

</property>

</configuration>

   

Hive 디렉터리 생성

<HADOOP_HOME>/bin/hadoop fs –mkdir /tmp

<HADOOP_HOME>/bin/hadoop fs -mkdir /user/hive/warehouse

<HADOOP_HOME>/bin/hadoop fs -chmod g+w /tmp

<HADOOP_HOME>/bin/hadoop fs -chmod g+w /user/hive/warehouse

   

데이터 다운로드

• wget

http://www.grouplens.org/sites/www.grouplens.org/external_fi

les/data/ml-10m.zip

• wget http://www.grouplens.org/system/files/ml-1m.zip

• unzip ml-1m.zip

• cd ml-1m

   

HIVE Command

hive> CREATE TABLE rating(userid INT, movieid INT, rating FLOAT, ds STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE;

   

hive> show tables;

   

hive> LOAD DATA LOCAL INPATH '/home/hadoop/m1-1m,/ratings.dat' OVERWRITE INTO TABLE rating;

   

hive> select count(*) from rating r;

   

hive> select r.userid from rating r where r.userid = '41810';

   

[참고자료]

거침없이 배우는 하둡(Hadoop IN Action)

http://hadoopdb.sourceforge.net/guide/

http://hadoop.apache.org/docs/r0.20.2/hdfs_design.html

http://www.ibm.com/developerworks/kr/library/

http://bradhedlund.com/2011/09/10/understanding-hadoop-clusters-and-the-network/

   

   

   

블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,