Hive安装

Hive专栏
上一篇主目录 下一篇

【前言】
安装部署Hive,依赖环境:hadoop+mysql


1. 上传压缩包到服务器

下载 apache-hive-2.3.2-bin.tar.gz,通过Xftp上传到hadoop@hadoop05:~/

2. 解压到文件夹apps

tar -zxvf apache-hive-2.3.2-bin.tar.gz apps/

在这里插入图片描述

3. 修改配置文件

在/home/hadoop/apps/apache-hive-2.3.2-bin/conf/文件夹中

  1. hive-site.xml(没有,需要touch创建一个):
    外置mysql数据库,使用mysql数据库来存储hive的元数据
touch hive-site.xml

在这里插入图片描述
在文件中写入:


<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hivedb?useSSL=true&amp;createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
<!-- 如果 mysql 和 hive 在同一个服务器节点,那么请更改 hadoop02 位 localhost -->
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>

【注意事项】

  1. 【& amp;】在xml文件中对应&,如果不写【& amp;】而直接写&,会报如下错误:
    在这里插入图片描述
  2. 写上useSSL=true是因为在高版本数据库中需要指定ssl的值。不然会报如下错误:
    在这里插入图片描述

将jdbc驱动包放到lib文件夹中:
在这里插入图片描述

4. 配置环境变量

在hadoop05的家目录中.bashrc文件中加入:

export HIVE_HOME=/home/hadoop/apps/apache-hive-2.3.2-bin
export PATH=$PATH:$HIVE_HOME/bin

执行source .bashrc重新加载配置文件

5. 验证启动

在hadoop05输入

schematool -dbType mysql -initSchema

在这里插入图片描述
说明成功

此时在数据库中会创建一个数据库hivedb,其中有57张表,用来存储元数据信息:
在这里插入图片描述
在这里插入图片描述
执行

hive

在这里插入图片描述

6. 使用hive

  1. 创建数据库
create database databasename;

在这里插入图片描述

  1. 使用数据库
use databasename;
  1. 创建表并指定文件中的行、列分隔符
create table student(name string,age int) row format delimited fields terminated by ",";//换行默认是'/n'
create table student(name string,age int) row format delimited fields terminated by ',' lines terminated by '\n';
  1. 导入数据
load data local inpath "/home/hadoop/student.txt" into table student;
  • local表示本地路径
    由于没有指定存储的仓库,将会把创建的数据库、表等数据存储到指定的仓库路径下:/user/hive/warehouse/temp_db.db/student(hadoop-hdfs 的目录而不是本地目录):
    在这里插入图片描述
  • 导入数据还可以直接将本地文件上传到对应的表的目录之下而不是使用load的方式:
hadoop fs -put student.txt /user/hive/warehouse/temp_db.db/student/

在这里插入图片描述
5. 查询数据
在这里插入图片描述
以上是从文件中读取数据
以下是使用MapReduce来实现HQL语句:
在这里插入图片描述
6. 查看表的 详细创建信息

show create table student;

在这里插入图片描述

【注】
创建数据库,数据表的同时会在mysql数据库中的hivedb(在3hive-site.xml配置文件中的jdbc:mysql://localhost:3306/hivedb?useSSL=true&createDatabaseIfNotExist=true处指定名称)中的对应表中添加元数据(描述数据的数据):

  • 如执行语句create database temp_db;时在DBS表中添加一条记录数据:
    在这里插入图片描述
  • 执行语句create table student(name string,age int) row format delimited fields terminated by ‘,’ lines terminated by ‘\n’;时在DBLS表中添加一条记录数据:
    在这里插入图片描述

附录

当配置Hadoop的HA集群之后,hdfs分布式文件系统上面的数据都没了。Hive在mysql中的元数据信息与新的HA环境不一致,需要重新安装配置Hive。
在原来的基础上
方案一:修改hive-site.xml文件中的连接到mysql数据库的数据库名为hivedb_ha,并重新格式化Hive

方案二:不修改hive-site.xml文件中的连接到mysql数据库的数据库名,从mysql中删除hivedb这张表,并重新格式化Hive

格式化Hive的命令为:schematool -dbType mysql -initSchema

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值