这里仅在node03上安装hive.(hadoop环境是Hive安装的前提)
为了避免derby版本hive多个地方安装hive后,每一个hive是拥有一套自己的元数据,导致库、表就不统一的问题,我们使用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;
第五步:设置mysql的开机启动
chkconfig --add mysqld
chkconfig mysqld on
添加我们的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
cd /export/servers/hive-1.1.0-cdh5.14.0/conf
vim hive-site.xml
javax.jdo.option.ConnectionURL
jdbc:mysql://node03.hadoop.com:3306/hive?createDatabaseIfNotExist=true
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
root
javax.jdo.option.ConnectionPassword
123456
hive.cli.print.current.db
true
hive.cli.print.header
true
hive.server2.thrift.bind.host
node03.hadoop.com
将mysql的lib驱动包上传到hive的lib目录下
cd /export/servers/hive-1.1.0-cdh5.14.0/lib
将mysql-connector-java-5.1.38.jar 上传到这个目录下
bin/hive
查看所有的数据库
hive (default)> show databases;
创建一个数据库
hive (default)> create database myhive;
使用该数据库并创建数据库表
hive (default)> use myhive;
hive (myhive)> create table test(id int,name string);
要保证hive在mysql当中的元数据库已经创建成功,不然就会拒绝连接。
启动hiveserver2服务
前台启动
cd /export/servers/hive-1.1.0-cdh5.14.0
bin/hive --service hiveserver2
后台启动
cd /export/servers/hive-1.1.0-cdh5.14.0
nohup bin/hive --service hiveserver2 &
beeline连接hiveserver2
bin/beeline
beeline> !connect jdbc:hive2://node03.hadoop.com:10000
使用 –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
一般使用第二种交互方式。