hive知识简单全面详解

hive学习整理

  • 1、认识Hive
    • 1.1hive认识
      • 1.1.1 优点
      • 1.1.1 缺点
    • 1.2hive架构
    • 1.3 为什么用Hive而不用关系型数据库?
  • 2、hive安装
    • 2.1安装及配置环境
    • 2.2hive启动并使用
      • 2.2.1使用mysql作为hive的元数据
      • 2.2.2使用JDBC连接远程Hive服务
  • 3、hive 的基础使用
    • 3.1数据结构
    • 3.2 STRUCT、MAP、ARRAY
  • 4、DDL数据定义
    • 4.2查询数据库
      • 4.2.2查看数据库详情
      • 4.2.3 切换当前数据库
    • 4.3修改数据库
    • 4.4删除数据库
    • 4.5管理表
    • 4.6外部表
    • 4.7分区表
    • 4.8 分桶表
      • 4.8.1创建分桶表
    • 4.8.2插入数据:
      • 4.8.3随机抽样
  • 5、数据管理
    • 5.1向表中装载数据(Load)
    • 5.2数据导出
  • 6、hive 查询
    • 6.1基本查询
      • 6.1.1全表和特定列查询
      • 6.1.2 列别名
      • 6.1.3 算术运算符
      • 6.1.4 常用函数
      • 6.1.5 Limit 语句
      • 6.1.6 Where 语句
      • 6.1.7 比较运算符(Between/In/ Is Null)
      • 6.1.8 Like 和 RLike
      • 6.1.9 逻辑运算符(And/Or/Not)
    • 6.2 分组
    • 6.3 Join 语句
    • 6.4 排序
  • 7、hive函数

1、认识Hive

1.1hive认识

Hive是建立在Hadoop上的数据仓库工具,可以借助提取、转化、加载技术存储、查询和分析查询在Hadoop中的大规模数据。使得开发人员使用相对简单的SQL语句,就可以操作Hadoop 处理海量数据。
  对外提供HQL,在查询时HQL语句转换为MapReduce任务,在Hadoop层执行。

1.1.1 优点

  • 提供了易于操作的类SQL查询语言HQL,不用再去写复杂的MapReduce程序,减少开发成本,上手快。
  • 利用MapRecuce计算引擎,HDFS作为存储系统,可以操作大数据集。
  • 支持用户的自定义函数,具有良好的容错性。

1.1.1 缺点

  • 延迟性比较高,因为启动MapReduce本身需要消耗很多资源
  • HQL语言表达能力有限,基于模板实现的,不够智能,处理复杂的业务能力有限,如迭代计算无法是实现
  • 不提供实时查询,处理大数据量擅长,处理小数据量没有优势

1.2hive架构

hive知识简单全面详解_第1张图片

1.3 为什么用Hive而不用关系型数据库?

对比项 Hive RDBMS
查询语言 HQL SQL
数据存储 HDFS 块设备或本地文件系统
执行 MapReduce Executor
执行延迟 较高 较低
处理数据规模 较高 较低
可扩展性 较高 较低
数据更新 读多写少,不建议改写 经常修改

2、hive安装

实验环境:
三台机器,/etc/hosts文件中的机器名分别配置为
hadoop102,hadoop103,hadoop104(集群都是通过机器名来配置的, 只要网络没问题, IP不重要)。上面已经安装了hadoop集群和spark集群。另外,在hadoop102上安装了mysql数据库。

2.1安装及配置环境

1) 从官网下载hive安装包,上传到linux目录下

$ tar -zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -C /opt/module/

2) 修改/etc/profile.d/my_env.sh,添加环境变量

$ sudo vim /etc/profile.d/my_env.sh

3) 添加内容

#HIVE_HOME
export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin

 使环境变量生效

$ source /etc/profile

4)解决日志 Jar 包冲突,有多个log4j的日志jar包冲突,可以选择删除(可选操作)

$ mv $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.jar $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.bak

5)初始化元数据库

$ bin/schematool -dbType derby 

你可能感兴趣的:(hive,big,data,大数据,hive)