<官网学大数据>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管理方式
环境搭建
export HIVE_HOME=/home/kang/app/hive-1.1.0-cdh5.7.0
export PATH=$PATH:$HIVE_HOME/bin

安装和配置mysql
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>

<property>
  <name>hive.hwi.listen.host</name>
  <value>0.0.0.0</value>
  <description>This is the host address the Hive Web Interface will listen on</description>
</property>
 
<property>
  <name>hive.hwi.listen.port</name>
  <value>9999</value>
  <description>This is the port the Hive Web Interface will listen on</description>
</property>
 
<property>
  <name>hive.hwi.war.file</name>
  <value>lib/hive-hwi-1.1.0.war</value>
  <description>This is the WAR file with the jsp content for Hive Web Interface</description>
</property>

</configuration>

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生效

<name>hive.fetch.task.conversion</name>
<value>more</value>

  • 使用排序


    根据第几列排序

    null排序升序排在前面

  • Hive的函数
数学函数

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

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

内置函数

条件函数
条件函数
聚合函数
表生成函数
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容