Hive本地安装教程

hive三种安装模式:
  • 嵌入模式:使用内嵌的Derby数据库存储元数据,元数据不能共享,是hive默认安装方式,但是一次只能连接一个客户端,适合用于测试,不适合生产环境。
  • 本地模式:采用外部数据库存储元数据,该模式不需要单独开启metastore服务,因为本地模式使用的是和hive在同一个进程的Metastore服务。
  • 远程模式:采用外部数据库存储元数据,该模式需要单独开启metastore服务,然后每个客户端都在配置文件中配置连接该Metastore服务。远程模式中,Metastore服务和hive运行在不同的进程中。


本地和远程模式:本质上都是将hive默认的元数据存储介质由自带的Derby数据库替换为MySQL数据库,这样无论在任何目录下以任何方式启动hive,只要连接的是同一天hive服务,那么所有节点访问的元数据信息是一致的,从而实现元数据的共享。

Hive安装之嵌入安装:
  • 下载Hivea安装包
  • 输入命令:bin/hive就进入到hive中了
Hive本地安装
1.安装mysql服务

下载安装mysql
在这里插入图片描述
启动mysql服务
在这里插入图片描述
下载安装mariadb
在这里插入图片描述
启动mariadb服务;
永久启动mariadb服务;
登录mysql服务;
使用mysql;
设置密码;
授予root权限,可以用于远程登录;
退出mysql;
使用密码登录mysql;
在这里插入图片描述

2.安装hive

导入hive压缩包(也可以使用rz来上传)
在这里插入图片描述
解压到servers
在这里插入图片描述
为刚解压的文件改一个简单的名字hive
在这里插入图片描述
进入hive;
找到conf目录;
可以看到没有hive-env.sh,所以用临时文件复制一份
在这里插入图片描述
打开配置文件
在这里插入图片描述
修改配置文件
在这里插入图片描述
新建一个hive-site.xml文件
在这里插入图片描述
添加如下内容
在这里插入图片描述

<configuration>
    <property>
          <name>javax.jdo.option.ConnectionURL</name>
          <value>jdbc:mysql://localhost: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>
</configuration>

hive-site.xml文件中用到了一个数据库驱动文件,所以下面,我们要导入到hive/lib中(也可以用rz,前提是需要首先yum一个包)
在这里插入图片描述
将hadoop01中的hive配置复制到hadoop02 和hadoop03中
在这里插入图片描述
在这里插入图片描述

3.Hive的远程管理:

首先需要先开启集群
在这里插入图片描述
在这里插入图片描述
开启一个hiveserver2服务
在这里插入图片描述
开启hive成功会出现如下进程
在这里插入图片描述
在hadoop02中进入beeline(也可以在其他节点操作)
输入远程连接命令:bin/beeline
在这里插入图片描述
输入远程连接协议,连接到指定hive服务的至极名和端口(默认10000),连接hadoop01
回车后,输入用户名和密码,可以看到连接成功(成功进入)
在这里插入图片描述
接下来的操作就和mysql语句差不多,查看数据库
在这里插入图片描述
开启hive后,用sqlyog连接hadoop01的mysql数据库,刷新后会看到,出现一个hive数据库,里面存放的都是元数据表格。
在这里插入图片描述
创建数据库
在这里插入图片描述
切换数据库,查看表格
在这里插入图片描述

4.Hive内部表操作

在这里插入图片描述
在这里插入图片描述
创建内部表,第二行为使用逗号为分隔符,导入到表格中
在这里插入图片描述
可以看到表格创建成功,但是没有数据
在这里插入图片描述
将数据放入到itcast数据库中的t_user表格中
在这里插入图片描述
再查询表格,就有数据了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除数据,下面看第二种方法导入数据
在这里插入图片描述
在这里插入图片描述
使用load data local inpath,指定数据所在的位置,进而加载数据到指定表格中
在这里插入图片描述
查看数据的总数,我们可以看到这里用到了map和reduce。把没一行数据为一个key,value为1,reduce再加和,进而统计。
在这里插入图片描述
hive中的DBS表放数据库的路径
在这里插入图片描述
这里放的是我们创建的表格
在这里插入图片描述

5.hive外部表操作

首先新建一些数据
在这里插入图片描述
把数据放到分布式文件系统中的/stu下
在这里插入图片描述
创建一个外部表,加了关键词external,同样使用逗号为分隔符,文件来自于本地的文件系统下的根目录下的stu下的数据。
在这里插入图片描述
我们每执行一个命令,这里就会显示一条,最后可以用ctrl+c退出
在这里插入图片描述
这里也可以用ctrl+c退出
在这里插入图片描述
思考:如何选择使用内部表或外部表?
  如果所有处理都有hive来完成,则使用内部表;
  如果需要用hive和外部其他工具处理同一组数据集,则使用外部表;
  数据比较大时候用外部表。

hive基本数据类型

在这里插入图片描述
在这里插入图片描述
hive复杂数据类型:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Hive数据库操作
  1. 创建数据库
    在这里插入图片描述
    和mysql操作类似,具体了解mysql点这里,,, 还有这里!
  2. 创建内部表
    在这里插入图片描述
  3. 复制表
    在这里插入图片描述
  4. row_format
    在这里插入图片描述
  5. file_format
    在这里插入图片描述
hive分区表操作

Hive分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过where子句中的表达式选择查询指定分区,这样查询效率会提高。

  1. Hive普通分区
    创建分区表分为两种,一种是单分区,也就是说在表文件夹目录下只有一级文件夹目录。另一种是多分区,表文件夹下出现多文件夹嵌套模式。

创建分区表:
在这里插入图片描述
例子:

准备数据:
在这里插入图片描述
创建分区表;
映射数据;
查看数据;
在这里插入图片描述
新增一个分区:
在这里插入图片描述
在这里插入图片描述
修改分区:
在这里插入图片描述
删除分区:
在这里插入图片描述
2. Hive动态分区
开启动态分区功能;
指明允许所有字段可以使用动态分区;
在这里插入图片描述
动态分区数据的插入:
在这里插入图片描述
例子:
开启动态分区,指明允许所有字段可以使用动态分区
在这里插入图片描述
准备数据:
在这里插入图片描述
创建原始表:
在这里插入图片描述
加载数据到原始表:
在这里插入图片描述
创建目标表;
动态插入数据;
在这里插入图片描述
在这里插入图片描述

Hive桶表操作

桶表是根据某个属性字段把数据分成几个桶(默认值是-1,可自定义),将表进行更细粒度的范围划分,也就是在文件的层面上把数据分开。
开启分桶功能:
在这里插入图片描述
创建桶表
在这里插入图片描述
加载数据到桶表中,由于分桶表加载数据时,不能使用Load Data方式导入数据,因为Load Data本质上是对数据文件进行复制或移动到Hive表所对应的地址中。

查看分桶数据类型:
在这里插入图片描述
例子:
开启分桶功能;
创建临时表;
在这里插入图片描述
准备数据:
在这里插入图片描述
加载数据到临时表:
在这里插入图片描述
创建桶表:
在这里插入图片描述
将临时表中数据导入桶表:
在这里插入图片描述
在这里插入图片描述

Hive数据操作

Hive数据操作主要包括向数据表加载文件、查询结果等操作。
查询:
在这里插入图片描述
sort by语句:只能保证reduce有序,不能保证全局有序
在这里插入图片描述
在这里插入图片描述
Distribute by:通常和sortby
在这里插入图片描述
join:
在这里插入图片描述
满外连接:
在这里插入图片描述
函数:
在这里插入图片描述
例子:
准备数据:
在这里插入图片描述
创建表:
在这里插入图片描述
把数据映射到表中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
内置函数:
在这里插入图片描述
sort by:设置reduce个数:
在这里插入图片描述
部门降序查看员工信息:
在这里插入图片描述
在这里插入图片描述

Hive的应用场景

适用场景:

  • 海量数据的存储处理
  • 数据挖掘
  • 海量数据的离线分析

不适用场景:

  • 复杂的机器学习算法
  • 复杂的科学计算
  • 联机交互式实时查询
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值