Had数据基础技术 13_第1页
Had数据基础技术 13_第2页
Had数据基础技术 13_第3页
Had数据基础技术 13_第4页
Had数据基础技术 13_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分布式数据仓库——Hive技术CONTENTS目录01

Hive概述02

Hive的安装与配置03

HiveSQL(HQL)基础04

Hive操作实践05

总结与思考Hive概述01Hive的设计目的与特点设计目的为数据开发和分析人员提供类SQL接口,简化MapReduce编程,实现海量数据统计分析核心特点学习成本低、适合静态数据分析、不支持记录级更新与事务、依赖Hadoop批处理与传统数据仓库的差异传统数据仓库横向扩展性差,Hive依赖HDFS存储、MapReduce处理,支持海量非结构化数据Hive的架构组成

外部访问方式支持WebUI、CLI命令行、Thrift协议(兼容JDBC/ODBC)三种访问途径

后端核心组件Driver负责SQL解析与执行计划生成,Metastore管理元数据,依赖Hadoop的HDFS、YARN与MapReduce

生态系统定位作为Hadoop生态早期SQL引擎,Metastore已成为大数据元信息标准存储,支持SparkSQL等多引擎共享数据Hive的数据模型

表结构内部表数据存储在/user/hive/warehouse目录,删除表时数据与元数据一同删除;外部表需指定数据路径,删除仅移除元数据

分区机制基于分区键将数据存储到子目录,查询时实现分区剪裁,避免全表扫描,提升效率

分桶技术对指定列哈希计算后分桶存储,细粒度划分数据范围,优化查询与取样性能Hive的文件格式

常用存储格式包括TEXTFILE(默认)、SEQUENCEFILE、AVRO、RCFILE、ORCFILE、PARQUET等

格式特性差异TEXTFILE导入时直接复制文件;SEQUENCEFILE等格式需先导入TEXTFILE表再转换Hive的安装与配置02Hive安装前的准备

环境依赖需先确保Hadoop系统正常运行,Hive组件部署在Hadoop主节点Master上

安装包准备需获取apache-hive-3.1.2-bin.tar.gz安装包,上传至Linux的/opt/software目录Hive安装包解压与环境变量配置

解压安装包执行tar-zxvfapache-hive-3.1.2-bin.tar.gz命令解压至指定目录

配置环境变量修改/etc/profile文件,添加HIVE_HOME路径与PATH变量,使hive命令全局可用MySQL数据库安装

安装包处理解压MySQL安装包并移动至/usr/local/mysql目录,修改/etc/f配置文件

初始化与启动执行mysqld初始化命令生成初始密码,加入系统服务并启动,登录后重置密码Hive配置与服务启动配置文件修改

将hive-default.xml.template重命名为hive-site.xml,配置MySQL连接参数元数据初始化

复制MySQL驱动至Hive的lib目录,执行schematool-initSchema-dbTypemysql初始化元数据服务启动

执行hive命令启动Hive客户端,运行hive--servicemetastore启动元数据服务Hive核心配置参数

数据库连接配置设置javax.jdo.option.ConnectionURL指定MySQL连接地址,配置ConnectionUserName与ConnectionPassword

元数据验证与驱动关闭hive.metastore.schema.verification避免版本验证,指定com.mysql.jdbc.Driver为连接驱动HiveSQL(HQL)基础03HQL查询语句结构

基本查询结构遵循SELECT...FROM...WHERE...GROUPBY...ORDERBY的SQL-like语法,支持LIMIT限制结果行数

排序关键字差异ORDERBY实现全局排序,SORTBY仅保证分区内排序,DISTRIBUTEBY负责数据分发,CLUSTERBY兼具分发与排序功能多维度聚合分析

GROUPINGSETS用法通过GROUPINGSETS((os,device),(city),())一次性实现多维度聚合,替代多次UNIONALL操作

聚合场景示例可同时统计总请求数、不同系统设备请求数、不同城市请求数,简化多维分析代码LATERALVIEW的应用01核心功能与Split、Explode等函数配合,将数组或映射类型字段拆分为多行,便于后续聚合分析02操作示例对pageAds表的adid_list字段使用LATERALVIEWexplode,可统计每个广告在页面的出现次数Hive的数据类型基本类型包括整型(TINYINT至BIGINT)、布尔型、浮点型、字符型(STRING/VARCHAR)、日期时间型等复合类型结构体用点符号访问(如c.a),映射用键访问(如M['group']),数组用索引访问(如A[1])时间戳类型分为不带时区的Timestamp与带本地时区的Timestamp,Java中对应LocalDateTime与InstantHive的内置函数(一):数值与字符串操作数值操作函数聚合函数max/min/avg/sum/count,取整函数ceil/floor/round,随机数函数rand字符串操作函数切分函数split、大小写转换upper/lower、截取函数substr、拼接函数concat_wsHive的内置函数(二):日期与JSON解析

日期操作函数current_timestamp获取当前时间,from_unixtime转换时间戳为日期,year/month/day提取时间字段

JSON解析函数get_json_object提取单个JSON键值,json_tuple一次性提取多个键值,简化JSON数据处理Hive的内置函数(三):炸裂与集合函数

01炸裂函数explode将数组或映射炸裂开为多行,需配合LateralView使用以避免列不匹配错误02集合函数array构建数组,map构建键值对,array_contains判断元素是否存在于数组中Hive的内置函数(四):空值转换与条件判断

01空值转换函数nvl将null值替换为默认值,COALESCE返回第一个非空值

02条件判断函数if实现三目运算,casewhen支持多条件分支判断,简化复杂逻辑处理Hive的内置函数(五):窗口函数

窗口函数基础over()定义分析窗口,支持partitionby分组与orderby排序,实现组内分析

排名函数差异row_number生成连续行号,rank出现并列时跳过后续名次,dense_rank并列后不跳过名次Hive操作实践04学生成绩数据分析案例背景数据结构exercise表包含year、school、grade、name、course、score六个字段,字段间以逗号分隔分析目标创建Hive表并导入本地数据,使用窗口函数对学生物理成绩进行排名使用Shell操作HiveHiveClient方式直接进入Hive客户端,执行createtable建表语句,loaddata导入本地exercise.txt数据hive-e命令方式通过Shell脚本调用hive-e"SELECT..."执行查询,如统计成绩排名并输出结果hive-f命令方式将HQL语句写入test.hql文件,执行hive-ftest.hql批量运行脚本使用Java操作Hive

01加载Hive驱动通过Maven引入hive-jdbc依赖,版本与Hive安装版本保持一致(如3.1.2)

02建立连接与执行语句加载org.apache.hive.jdbc.HiveDriver,通过jdbc:hive2://<host>:10000/default建立连接,使用Statement执行建表、导入与查询语句

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论