Hive 基础知识(一)

Hive简介

  • Hive 是一个构建在 Hadoop 上的数据仓库,可以使用SQL的方式来读,写,管理分布式存储(HDFS / S3 / OSS / COS 等)上的大型数据集
  • Hive 是由 Facebook 开源,为了解决海量的结构化日志的统计问题,适合处理离线数据
  • Hive 是一个客户端,不是一个集群,他的职责就是将 SQL 翻译成 MR 或者 Spark 作业,提交到 Hadoop 集群上运行
  • Hive 是一个类 SQL 的框架,Hive 的 SQL 称为 HQL,和 SQL 没有任何关系,只是语法相似
  • Hive 底层支持 MR / Spark / Tez 等引擎,但是目前还是以 MR 为主
  • Hive 支持统一的元数据管理,简单来说就是 SQL on Hadoop,即 Hive / Spark SQL / Impala / Presto 等框架创建的表可以通用
  • Hive 的数据分为两部分
    • 存储在 HDFS 或其他分布式文件系统上的数据:例如结构化的日志文件
    • 存储在 MySQL 中的元数据 :例如表名,列名,列的类型等描述数据的数据(为了防止单点故障,MySQL 必须做主备)
  • 为什么能用SQL来进行大数据的统计分析?
    因为有了元数据的支撑,我们知道HDFS上的数据每一列的字段名是什么,字段类型是什么,数据在HDFS的什么位置

Hive的参数

  • Hive 的所有参数在官网的 这里
  • 可以在 hive-site.xml 中设置全局生效,也可以在命令行中设置,对当前会话有效
    • 设置参数:set 参数名=值
    • 查看参数值:set 参数名
  • hive.metastore.warehouse.dir
    • 设置 Hive 默认数据库的存储位置,默认在 /user/hive/warehouse/ 下
    • 如果创建了新的数据库,默认在 /user/hive/warehouse/ 下新建一个 数据库名.db 的目录
      在这里插入图片描述
  • hive.cli.print.current.db
    • 在命令行中显示当前数据库名
      在这里插入图片描述
  • hive.cli.print.header
    • 在命令行中显示列名
      在这里插入图片描述

Hive 的常用字段类型

  • 数值:int、bigint、float、double
  • 字符串:string

Hive 的分隔符

  • 字段与字段的分隔符:默认\001,生产上常用逗号,空格,或者制表符(tab)
  • 行与行的分隔符:\n

Hive 查看执行日志

  • 在 HIVE_HOME 的 conf 目录下,有一个 hive-log4j.properties.template 示例文件,用来设置 hive 的 log 日志输出,其中 hive.log.dir 参数设置了日志存放位置,默认为 /tmp/用户名/ 目录下的 hive.log 文件
  • 如果 Hive 执行出现异常,就查看这个日志来定位问题
    在这里插入图片描述
    在这里插入图片描述

Hive 元数据在 MySQL 中的存储

  • DBS表:存储数据库相关的信息
    在这里插入图片描述
  • VERSION:存储 hive 版本信息,有且只能有一条数据,如果被删除或新增数据,hive 无法正常启动
    在这里插入图片描述
  • TBLS:存储表相关信息
    在这里插入图片描述
  • columns_v2表:存储字段信息
    在这里插入图片描述

Hive 的 DDL 操作

  • Hive 的 DDL 操作官网说明在 这里
  • 创建删除数据库
# 在默认数据库目录创建
CREATE DATABASE IF NOT EXISTS 数据库名;

# 指定数据库存储路径
CREATE DATABASE IF N
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值