Linux下安裝hive 詳解及HiveSQL執行

hzcya發表於2020-11-11

環境準備

hadoop-2.x及以上,

hive-2.3.3安裝包

mysql-5.7.24,下載路徑:mysql-5.7.24-linux-glibc2.12-x86_64

mysql資料庫安裝和後臺啟動

tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql

mv mysql /usr/local/

cd /usr/local/mysql/

mkdir data

groupadd mysql

useradd mysql -g mysql

chown -R mysql:mysql /usr/local/mysql/

chmod -R 755 /usr/local/mysql/

cd bin/

./mysqld --initialize --user=root --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

注意:日誌末尾的臨時密碼,稍後需要進行登入,更改密碼

vim /etc/my.cnf,新增如下內容:

[mysqld_safe]

datadir=/usr/local/mysql/data

port=3306

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

symbolic-links=0

max_connections=600

innodb_file_per_table=1

lower_case_table_names=1

建立軟連線,啟動mysql服務

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

service mysql restart

登入mysql,登入密碼(前面臨時密碼)

mysql -u root -p

修改密碼

set password for root@localhost = password('mysql');

開發遠端連線

use mysql;

update user set user.Host='%' where user.User='root';

flush privileges;

設定開機自動啟動

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

chkconfig --add mysqld

chkconfig --list

安裝hive和配置環境變數

tar -zxvf apache-hive-2.3.3-hw-ei-302005-bin.tar.gz

mv apache-hive-2.3.3-hw-ei-302005-bin hive-2.3.3

vim /etc/profile

export HIVE_HOME=/home/lhh/hive/hive-2.3.3

export HIVE_LIB=$HIVE_HOME/lib

export HIVE_BIN=$HIVE_HOME/bin

export HADOOP_USER_CLASSPATH_FIRST=true

export PATH=$HIVE_HOME/bin:$PATH

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HIVE_HOME/lib/*.jar

配置hive相關檔案

新建./hive-2.3.3/conf/hive-site.xml,如附件

使用hive-env.sh.template,

cp hive-env.sh.template hive-env.sh

vim hive-env.sh

export HIVE_CONF_DIR=/home/lhh/hive/hive-2.3.3/conf

export HADOOP_HOME=/home/lhh/hive/hadoop

5. 複製mysql jar包到hive lib

複製Mysql驅動jar包,將mysql-connector-java-5.1.40-bin.jar複製到$HIVE_HOME/lib目錄下

cp mysql-connector-java-5.1.40-bin.jar ../hive/hive-2.3.3/lib/

6. 初始化metastore

cd ./hive-2.3.3

./bin/schematool -dbType mysql -initSchema

7. hive客戶端

Hive在生產上是不需要部署叢集的,操作Hive只需要透過它提供的客戶端即可,Hive提供了大致三類客戶端:

hive shell:透過hive shell來操作hive,但是至多隻能存在一個hive shell,啟動第二個會被阻塞,也就是說hive shell不支援併發操作。

WebUI: 透過HUE/Zeppelin來對Hive表進行操作。

基於JDBC等協議:啟動hiveserver2,透過jdbc協議可以訪問hive,hiveserver2支援高併發。

8. 啟動hive

cd ./hive-2.3.3

./bin/hive

9. 啟動hiveserver2服務

./bin/hiveserver2 &或者./bin/hive --service hiveserver2 &

hiveserver2是一個基於thrift服務,需要後臺執行,埠預設是10000,WebUI埠預設是10002,在終端使用命令netstat -anop|grep 10000 和 netstat -anop|grep 10002。

10. beeline連線hiveserver2

beeline -u jdbc:hive2://hadoop-01:10000

已連線上server

11. 測試hive

1)本地建立csv檔案text.csv

2)上傳到hdfs檔案空間

./hadoop/bin/hadoop dfs -put test.csv /test/test.csv

./hadoop/bin/hadoop dfs -ls /test/

3)hive命令列建立表

hive> create table test (

> id INTEGER,

> name STRING,

> grade INTEGER

> ) row format delimited

> fields terminated by ','

> lines terminated by '\n';

4)載入資料到test表中

hive> load data inpath "/test/test.csv" into table test;

5)執行查詢任務

select id, count(1) as cnt from test group by id;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978904/viewspace-2733651/,如需轉載,請註明出處,否則將追究法律責任。

相關文章