首家大数据培训挂牌机构 股票代码:837906 | EN CN

HIVE的安装部署【笔记】

于2017-02-15由小牛君创建

分享到:


安装

derby版:

1、解压hive

2、解决一下版本不兼容问题:替换 /root/apps/hadoop/share/hadoop/yarn/lib中的老版本jline 为hive的lib中的jline-2.12.jar

 

缺点:多个地方安装hive后,每一个hive是拥有一套自己的元数据,大家的库、表就不统一;

 

元数据库mysql版:

1、解压

2、修改配置文件

 

1.6.2 使用方式

Hive交互shell

bin/hive

 

 

Hive JDBC服务

hive也可以启动为一个服务器,来对外提供

 

启动方式,(假如是在hadoop01上):

启动为前台:bin/hiveserver2

启动为后台:nohup bin/hiveserver2 1>/var/log/hiveserver.log 2>/var/log/hiveserver.err &

 

启动成功后,可以在别的节点上用beeline去连接

  1. 方式(1)

hive/bin/beeline  回车,进入beeline的命令界面

输入命令连接hiveserver2

beeline> !connect jdbc:hive2://mini1:10000

(hadoop01是hiveserver2所启动的那台主机名,端口默认是10000)

  1. 方式(2)

或者启动就连接:

bin/beeline -u jdbc:hive2://mini1:10000 -n root

 

接下来就可以做正常sql查询了

 

 

Hive命令

 

第一种:通过 -e 参数给一个sql去执行

[hadoop@hdp-node-02 ~]$ hive  -e  ‘sql’

示例:

编写一个脚本 shenbaobiao.sh

vi shenbaobiao.sh

#!/bin/bash

 

hive_exec=/root/apps/hive/bin/hive

HQL="

create table default.shenbaobiao

as

select A.username,A.month,max(A.salary) as salary,sum(B.salary) as accumulate

from

(select username,month,sum(salary) as salary from t_access_times group by username,month) A

inner join

(select username,month,sum(salary) as salary from t_access_times group by username,month) B

on

A.username=B.username

where B.month <= A.month

group by A.username,A.month

order by A.username,A.month

"

 

$hive_exec -e "$HQL"

[hadoop@hdp-node-02 ~]$ sh shenbaobiao.sh

即可执行

 

第二种:通过 -f 参数给一个sql语句文件去执行

编写一个sql语句到一个文件a.sql中

vi a.sql

create table t_f as select * from student where sno<95012;

然后执行如下命令即可:

[hadoop@hdp-node-02 ~]$ hive  -f  a.sql