1. 安装
1.1 derby版hive直接使用
- 解压hive
cd /export/softwares
tar -zxvf hive-1.1.0-cdh5.14.0.tar.gz -C ../servers/
- 直接启动 bin/hive
cd ../servers/
cd hive-1.1.0-cdh5.14.0/
bin/hive
hive> create database mytest;
缺点: 多个地方安装hive后,每一个hive是拥有一套自己的元数据,大家的库、表就不统一
1.2 使用mysql共享hive元数据
- 第一步:在线安装mysql相关的软件包
yum install mysql mysql-server mysql-devel
- 第二步:启动mysql的服务
/etc/init.d/mysqld start
第三步:通过mysql安装自带脚本进行设置
/usr/bin/mysql_secure_installation
- 第四步:进入mysql的客户端然后进行授权
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
1.3 修改hive的配置文件
- 修改hive-env.sh
添加我们的hadoop的环境变量
cd /export/servers/hive-1.1.0-cdh5.14.0/conf
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
HADOOP_HOME=/export/servers/hadoop-2.6.0-cdh5.14.0
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/export/servers/hive-1.1.0-cdh5.14.0/conf
- 修改hive-site.xml
cd /export/servers/hive-1.1.0-cdh5.14.0/conf
vim hive-site.xml
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node03.hadoop.com:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node03.hadoop.com</value>
</property>
<!--
<property>
<name>hive.metastore.uris</name>
<value>thrift://node03.hadoop.com:9083</value>
</property>
-->
</configuration>
- 上传mysql的lib驱动包
将mysql的lib驱动包上传到hive的lib目录下
cd /export/servers/hive-1.1.0-cdh5.14.0/lib
将mysql-connector-java-5.1.38.jar 上传到这个目录下
2. 使用方式
2.1 第一种交互方式: hive交互shell
cd /export/servers/hive-1.1.0-cdh5.14.0
bin/hive
- 查看所有的数据库
hive (default)> show databases;
- 创建一个数据库
hive (default)> create database myhive;
- 使用该数据库并创建数据库表
hive (default)> use myhive;
hive (myhive)> create table test(id int,name string);
以上命令操作完成之后,一定要确认mysql里面出来一个数据库hive
2.2 Hive JDBC服务
- 前台启动
cd /export/servers/hive-1.1.0-cdh5.14.0
bin/hive --service hiveserver2
- 后台启动
cd /export/servers/hive-1.1.0-cdh5.14.0
bin/hive --service hiveserver2 &
- beeline连接hiveserver2
bin/beeline
beeline> !connect jdbc:hive2://node03.hadoop.com:10000
注意:如果使用beeline方式连接hiveserver2,一定要保证hive在mysql当中的元数据库已经创建成功,不然就会拒绝连接
2.3 Hive命令
- 使用-e参数来直接执行hql的语句
bin/hive -e "use myhive;select * from test;"
- 使用 -f 参数通过指定文本文件来执行hql的语句
vim hive.sql
use myhive;select * from test
bin/hive -f hive.sql