<官网学大数据>Hive

Hive简介
  • Hive是简历在Hadoop HDFS上的数据仓库基础架构
  • Hive可以用来进行数据提取转化加载(ETL),通过sqoop加载数据
  • Hive定义了简单的sql查询语言Hql
  • Hive是SQL解析引擎,将sql语句转换成M/R Job在Hadoop执行
  • Hive的表其实就是HDFS文件和目录
Hive的体系结构
  • Hive的元数据
    1. hive将元数据存储在数据库中(metastore),支持mysql、derby等数据库
    2. Hive中的元数据包括表的名字,表的列和分区及其属性(是否为外部表等),表的数据所在的目录等
Hive管理方式
  • CLI方式
    常用CLI命令
    • 查看表结构
      desc 表名
    • 执行HDFS命令
      dfs 命令
    • 执行操作系统的命令
      ! 命令
    • 执行HQL语句
      select *** from xxx
      -执行SQL的脚本
      source SQL文件
    • hive 参数
  • web界面方式
    • 启动方式
      hive --service hwi
      通过浏览器访问9999端口
    • 如果启动失败需编译源码包
      下载源码包:
      wget http://archive.cloudera.com/cdh5/cdh/5/hive-1.1.0- cdh5.7.0-src.tar.gz
      打war包:jar cvfM0 hive-hwi-1.1.0.war -C web/ .
      把打好的包放在hive lib目录下
      hive-site.xml 添加配置
      https://cwiki.apache.org/confluence/display/Hive/HiveWebInterface#HiveWebInterface-FeaturesofHWI
环境搭建
  • 安装包下载 http://archive.cloudera.com/cdh5/cdh/5/
    wget http://archive.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.7.0.tar.gz
  • 解压文件到指定目录
  • 配置
    环境变量
export HIVE_HOME=/home/kang/app/hive-1.1.0-cdh5.7.0
export PATH=$PATH:$HIVE_HOME/bin

安装和配置mysql
hive-site.xml





  javax.jdo.option.ConnectionURL
  jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true



  javax.jdo.option.ConnectionDriverName
  com.mysql.jdbc.Driver



  javax.jdo.option.ConnectionUserName
  root



  javax.jdo.option.ConnectionPassword
  123456



  hive.hwi.listen.host
  0.0.0.0
  This is the host address the Hive Web Interface will listen on

 

  hive.hwi.listen.port
  9999
  This is the port the Hive Web Interface will listen on

 

  hive.hwi.war.file
  lib/hive-hwi-1.1.0.war
  This is the WAR file with the jsp content for Hive Web Interface



hive-env.sh

export HADOOP_HOME=/home/kang/app/hadoop-2.6.0-cdh5.7.0
export HIVE_CONF_DIR=/home/kang/app/hive-1.1.0-cdh5.7.0/conf
Hive的数据类型

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types

  • 基本数据类型


    基本数据类型
  • 复杂数据类型


    复杂数据类型
  • 时间类型


    时间类型
Hive的数据模型
  • 内部表


    内部表

    实例
  • 分区表


    分区表

    创建分区表
  • 外部表


    外部表
Hive数据的导入
  • 使用load语句


    load
  • 使用sqoop
Hive的数据查询
  • 简单查询
    查询所有表信息不执行MapReduce作业
    支持算术表达式
    若值为null,表达式则为null,可用函数nvl(列字段,null转换的值)
    null值查询不能使用=连接,用is连接


    查询语法
  • Fetch Task(简单查询不启动MapReduce作业)
    配置方式

Fetch Task配置方式

前两种只在当前session生效

hive.fetch.task.conversion
more

  • 使用排序


    根据第几列排序

    null排序升序排在前面

  • Hive的函数
数学函数

round() ---------------- 四舍五入
。。。

字符函数
image.png
收集函数
收集函数
类型转换函数
类型转换函数
日期函数

内置函数

条件函数
条件函数
聚合函数
表生成函数

你可能感兴趣的:(<官网学大数据>Hive)