Hive 安装部署 交互使用方式

本文详细介绍了如何从使用内嵌的Derby数据库迁移到MySQL作为Hive的元数据存储,包括MySQL的安装、授权配置,以及修改Hive配置文件以连接MySQL。此外,还列举了三种与Hive交互的方式:Hive交互shell、Hive JDBC服务和Hive命令行。确保在切换元数据存储后,能通过不同的方式稳定地访问和操作Hive。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装部署

derby版hive直接使用

解压hive

cd /export/soft/
tar -zxvf hive-1.1.0-cdh5.14.0.tar.gz -C ../servers/

直接启动 bin/hive

cd ../servers/hive-1.1.0-cdh5.14.0/bin/
hive
hive> show databases;

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

使用mysql共享hive元数据

mysql数据库的安装(使用yum源进行安装,强烈推荐

  • 第一步:在线安装mysql相关的软件包(已经安装无须再安)
yum  install  mysql  mysql-server  mysql-devel
  • 第二步:启动mysql的服务
/etc/init.d/mysqld start
chkconfig mysqld on
  • 第三步:进入mysql的客户端然后进行授权
use mysql;
  • 配置远程连接
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
  • 第四步 设置root用户链接mysql的密码
update user set password=password('123456') where user='root';
flush privileges;

mysql数据库的安装(使用rpm包的方式进行安装,不推荐)

  • 第一步:查看系统自带的mysql的rpm包
rpm -qa | grep mysql
rpm -e mysql-libs-5.1.73-8.el6_8.x86_64 --nodeps

在这里插入图片描述

  • 第二步:安装mysql的rpm包
rpm   -ivh  *.rpm

在这里插入图片描述

  • 第三步:启动mysql的服务
service  mysqld  start
  • 第四步:查看mysql初始化密码
more /root/.mysql_secret

在这里插入图片描述
在这里插入图片描述

  • 第五步:使用随记密码登录mysql并更新密码
mysql  -uroot –p 
SET PASSWORD = PASSWORD('123456');
  • 第六步:开启mysql远程连接
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;

在这里插入图片描述

  • 第七步:设置mysql的开机启动
chkconfig --add mysqld
chkconfig mysqld on
修改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

在这里插入图片描述

使用方式

第一种交互方式: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 test1(id int,name string);

以上命令操作完成之后,一定要确认mysql里面出来一个数据库hive

第二种交互方式: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(另一个节点)
bin/beeline
beeline> !connect jdbc:hive2://node01.hadoop.com:10000

在这里插入图片描述
注意:如果使用beeline方式连接hiveserver2,一定要保证hive在mysql当中的元数据库已经创建成功,不然就会拒绝连接

第三种交互方式:Hive命令
  • 使用 –e 参数来直接执行hql的语句
bin/hive -e "use myhive;select * from test1;"
  • 使用 –f 参数通过指定文本文件来执行hql的语句
vim hive.sql
use myhive;select * from test1;
bin/hive -f hive.sql

更多参数参考以下
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值