수색…
비고
- Hive는 Hadoop 위에 구축 된 데이터웨어 하우스 도구입니다.
- 쿼리 데이터에 SQL과 유사한 언어를 제공합니다.
- 유일한 차이점은 Hade에서 거의 모든 SQL 쿼리를 실행할 수 있다는 것입니다. 즉, Hadoop Cluster에서 결과를 가져 오기 위해 백엔드에서 map-reduce 작업을 실행합니다. 이 Hive 때문에 때로는 결과 집합을 가져 오는 데 더 많은 시간이 필요합니다.
하이브의 단어 수 예
문서 파일 (입력 파일)
메리에게는 어린 양이있었습니다.
그 양털은 눈처럼 희어졌다.
마리아가 갔던 모든 곳
어린 양은 반드시 가야만했다.
하이브 쿼리
CREATE TABLE FILES (line STRING);
LOAD DATA INPATH 'docs' OVERWRITE INTO TABLE FILES;
CREATE TABLE word_counts AS
SELECT word, count(1) AS count FROM
(SELECT explode(split(line, ' ')) AS word FROM FILES) w
GROUP BY word
ORDER BY word;
하이브에있는 word_counts 테이블의 출력
메리, 2
했다, 1
a, 1
작은, 1
양고기, 2
그것, 1
양털, 1
이었다, 2
흰색, 1
as, 1
눈, 1
및 1
어디서나, 1
저, 1
갔다, 1
, 1
물론, 1
~, 1
가고, 1
하이브 (linux) 설치
https://hive.apache.org/downloads.html 에서 최신 안정 버전을 다운로드하여 시작 하십시오.
-> 이제 파일을 압축 해제하십시오.
$ tar -xvf hive-2.xy-bin.tar.gz
-> / usr / local /에 디렉토리를 만듭니다.
$ sudo mkdir / usr / local / hive
-> 파일을 루트로 이동하십시오.
$ mv ~ / Downloads / hive-2.xy / usr / local / hive
-> .bashrc에서 hadoop 및 하이브 환경 변수 편집
$ gedit ~ / .bashrc
이렇게
export HIVE_HOME = / usr / local / hive / apache-hive-2.0.1-bin /
export PATH = $ PATH : $ HIVE_HOME / bin
export CLASSPATH = $ CLASSPATH : / usr / local / Hadoop / lib / * :.
export CLASSPATH = $ CLASSPATH : /usr/local/hive/apache-hive-2.0.1-bin/lib/* :.
-> 이제, 이미 실행 중이 아니면 hadoop을 시작하십시오. 그리고 그것이 실행 중이고 안전 모드가 아닌지 확인하십시오.
$ hadoop fs -mkdir / user / hive / warehouse
"웨어 하우스"디렉토리는 하이브와 관련된 테이블 또는 데이터를 저장할 위치입니다.
$ hadoop fs -mkdir / tmp
임시 디렉토리 "tmp"는 중간 처리 결과를 저장하는 임시 위치입니다.
-> 해당 폴더에 대한 읽기 / 쓰기 권한을 설정하십시오.
$ hadoop fs -chmod g + 사용자 / 하이브 /웨어 하우스
$ hadoop fs -chmod g + 사용자 / tmp
-> 이제 콘솔에서이 명령으로 HIVE 실행
$ 하이브
Linux에서 외부 Metastore로 하이브 설치
사전 요구 사항 :
설치:
1 단계 : 다운로드 페이지에서 최신 하이브 타르볼을 다운로드 하십시오.
2 단계 : 다운로드 한 tarball 압축 풀기 ( 가정 : $ HOME에 tarball이 다운로드 됨 )
tar -xvf /home/username/apache-hive-x.y.z-bin.tar.gz
3 단계 : 환경 파일 업데이트 ( ~/.bashrc
)
export HIVE_HOME=/home/username/apache-hive-x.y.z-bin
export PATH=$HIVE_HOME/bin:$PATH
새 환경 변수를 설정하기 위해 파일을 소스하십시오.
source ~/.bashrc
4 단계 : 여기서 mysql 용 JDBC 커넥터를 다운로드하고 압축을 풉니 다.
tar -xvf mysql-connector-java-a.b.c.tar.gz
추출 된 디렉토리에는 connector jar 파일 인 mysql-connector-java-abcjar
있습니다. $HIVE_HOME
의 lib
에 복사하십시오.
cp mysql-connector-java-a.b.c.jar $HIVE_HOME/lib/
구성 :
$HIVE_HOME/conf/
directory 아래에 하이브 구성 파일 인 hive-site.xml
을 만들고 다음과 같은 메타 스토어 관련 등록 정보를 추가하십시오.
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/hive_meta</value>
<description>JDBC connect string for a JDBC metastore</description>
</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>mysqluser</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mysqlpass</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>datanucleus.autoCreateSchema</name>
<value>false</value>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>true</value>
</property>
</configuration>
등록 정보에서 MySQL "username"및 "password"의 값을 적절히 업데이트하십시오.
Metastore 스키마 만들기 :
메타 스토어 스키마 스크립트는 $HIVE_HOME/scripts/metastore/upgrade/mysql/
MySQL에 로그인하고 스키마를 소스한다.
mysql -u username -ppassword
mysql> create database hive_meta;
mysql> use hive_meta;
mysql> source hive-schema-x.y.z.mysql.sql;
mysql> exit;
Metastore 시작 :
hive --service metastore
백그라운드에서 실행하려면,
nohup hive --service metastore &
HiveServer2 시작 : (필요한 경우 사용)
hiveserver2
백그라운드에서 실행하려면,
nohup hiveserver2 metastore &
참고 : 이 실행 파일은 $HIVE_HOME/bin/
잇다:
hive
에 연결하려면 hive
, beeline
또는 색조 중 하나를 사용하십시오.
Hive CLI는 Beeline 또는 Hue를 사용하는 것이 좋습니다.
색조의 추가 구성 :
$HUE_HOME/desktop/conf/hue.ini
에서이 값을 업데이트하십시오.
[beeswax]
hive_conf_dir=/home/username/apache-hive-x.y.z-bin/conf