Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- effective python
- yarn
- hive
- scrapy
- NumPy
- 파이썬
- 딥러닝
- 주식분석
- RNN
- collections
- Java
- 그래프이론
- C
- hadoop2
- HelloWorld
- graph
- 선형대수
- 텐서플로
- Sort
- C언어
- GRU
- 코딩더매트릭스
- 알고리즘
- python
- tensorflow
- recursion
- LSTM
- 하둡2
- 하이브
- codingthematrix
Archives
- Today
- Total
EXCELSIOR
하이브 (Apache Hive) 개념 및 설치 (아파치 더비 사용) 본문
1. 하이브
페이스 북에서 개발한 하이브는 하둡에 저장된 데이터를 쉽게 처리할 수 있는 데이터웨어하우스(DW) 패키지 이다.
1)하이브 아키텍처
- 하이브의 클라이언트는 커맨드 라인 인터페이스(Command Line Interface: CLI), 하이브 서버, 웹 인터페이스로 구성된다. 하이브 서버의 경우 JDBC, ODBC, 쓰리프트로 개발된 클라이언트가 하이브 서비스를 이용할 수 있게 쓰리프트 서비스를 제공한다.
- 하이브는 메타스토어(Metastore)라는 저장소를 만들어 하둡에서 처리된 메타데이터의 구조를 메타스토어에 저장한다. 하이브는 오라클, MySQL 등 JDBC를 지원하는 모든 데이터베이스를 이용해 메타스토어를 구축할 수 있다.
- 드라이버는 사용자가 입력한 하이브QL문을 해석한다. 하둡과 연결되어 하이브QL문을 실행하고, 하이브QL은 하이브QL문의 실행 계획을 작성하고, 최적화 작업까지 함께 수행한다.
[출처: www.dbguide.net]
2. 하이브 설치 및 실행
wget http://mirror.apache-kr.org/hive/hive-2.0.0/apache-hive-2.0.0-bin.tar.gz tar xvfz apache-hive.2.0.0-bin.tar.gz cd apache-hive.2.0.0-bin ls - l 합계 588 -rw-r--r-- 1 root staff 26335 1월 22 2016 LICENSE -rw-r--r-- 1 root staff 513 1월 22 2016 NOTICE -rw-r--r-- 1 root staff 4348 2월 10 2016 README.txt -rw-r--r-- 1 root staff 527063 2월 10 2016 RELEASE_NOTES.txt drwxr-xr-x 3 root root 4096 11월 14 22:24 bin drwxr-xr-x 2 root root 4096 11월 14 22:24 conf drwxr-xr-x 4 root root 4096 11월 14 22:24 examples drwxr-xr-x 7 root root 4096 11월 14 22:24 hcatalog drwxr-xr-x 4 root root 12288 11월 14 22:24 lib drwxr-xr-x 4 root root 4096 11월 14 22:24 scripts
- 하이브는 conf 디렉터리에 있는 hive-env.sh 파일에 기본 환경설정을 한다. 처음 하이브를 설치하면 conf 디렉터리에는 템플릿 파일만 있으므로 다음과 같이 새로운 hive-env.sh 파일을 만든 후 하둡 홈 디렉터리를 설정한다.
mv conf/hive-env.sh.template conf/hive-env.sh HADOOP_HOME=/usr/local/hadoop-2.7.3
- 책에서 적힌대로 아파치더비를 사용하여 hive-site.xml을 다음과 같이 설정하였다.
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> <property> <name>hive.cli.print.header</name> <value>true</value> </property> </configuration>
- 하이브에서 업로드하는 데이터는 HDFS의 /user/hive/warehouse에 저장된다. 그리고 하이브에서 실행하는 잡의 여유 공간으로 HDFS의 "/tmp/hive-유저명" 디렉터리를 사용한다. 이 두개의 디렉터리를 다음과 같이 미리 생성한 후 실행 권한도 함께 설정한다.
bin/hdfs dfs -mkdir /tmp bin/hdfs dfs -mkdir /tmp/hive bin/hdfs dfs -mkdir /user/hive bin/hdfs dfs -mkdir /user/hive/warehouse bin/hdfs dfs -chmod g+w /tmp bin/hdfs dfs -chmod g+w /user/hive/warehouse bin/hdfs dfs -chmod 777 /tmp/hive
- 하이브 2.0.0 버전부터는 하이브를 실행하기 전에 하이브 메타스토어를 초기화해야한다. 다음과 같이 initSchema를 이용해 메타스토어를 초기화 한다. hive-site.xml에 별도의 메타스토어를 설정하지 않았다면 (예, MySQL, MS-SQL 등) -dbType에 derby를 사용한다.
:/usr/local/hadoop2/apache-hive-2.0.0-bin# bin/schematool -initSchema -dbType derby SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/usr/local/hadoop-2.7.3/apache-hive-2.0.0-bin/lib/hive-jdbc-2.0.0-standalone.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hadoop-2.7.3/apache-hive-2.0.0-bin/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] Metastore connection URL: jdbc:derby:;databaseName=metastore_db;create=true Metastore Connection Driver : org.apache.derby.jdbc.EmbeddedDriver Metastore connection User: APP Starting metastore schema initialization to 2.0.0 Initialization script hive-schema-2.0.0.derby.sql Initialization script completed schemaTool completed :/usr/local/hadoop2/apache-hive-2.0.0-bin# bin/hive hive> show databases; OK database_name default Time taken: 0.209 seconds, Fetched: 1 row(s)
'DataBase > Hadoop' 카테고리의 다른 글
하이브(Hive) - 데이터 업로드 (0) | 2016.11.26 |
---|---|
Apache-Hive : 하이브QL(Hive QL) - 테이블 생성 (0) | 2016.11.21 |
하둡2 예제실행 (0) | 2016.11.11 |
하둡2 설치 및 실행 (가상 분산 모드) (4) | 2016.11.08 |
하둡2 - 네임노드 HA (0) | 2016.11.07 |
Comments