我们在此处选择第三台机器作为我们 hive 的安装机器
1 使用 derby 版本的 hive 使用
cd /export/softwares
tar -zxvf hive-1.1.0-cdh5.14.0.tar.gz -C ../servers/
复制代码
cd ../servers/
cd hive-1.1.0-cdh5.14.0/
bin/hive
hive> create database mytest;
复制代码
缺点:多个地方安装 hive 后,每一个 hive 是拥有一套自己的元数据,大家的库、表就不统一;
2 使用 mysql 共享 hive 元数据
需要保证服务器中, 有一台是有 mysql, 并且以及开启了远程连接
cd /export/softwares
tar -zxvf hive-1.1.0-cdh5.14.0.tar.gz -C ../servers/
复制代码
cd /export/servers/hive-1.1.0-cdh5.14.0/conf
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
#修改以下内容:
export 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
<?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驱动包上传到hive的lib目录下
cd /export/servers/hive-1.1.0-cdh5.14.0/lib
将mysql-connector-java-5.1.38.jar 上传到这个目录下
复制代码
hive 的交互窗口
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 第二种: hive jdbc 服务
使用 hive 的 jdbc 服务, 需要先启动一个 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
cd /export/servers/hive-1.1.0-cdh5.14.0
bin/beeline
beeline> !connect jdbc:hive2://node03.hadoop.com:10000
复制代码
注意:如果使用 beeline 方式连接 hiveserver2,一定要保证 hive 在 mysql 当中的元数据库已经创建成功,不然就会拒绝连接
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
复制代码
评论