- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
Hive介绍
展开查看详情
1 .Hive 简介 陈银银
2 .主要内容 •安装 Hive •Hive 示例 •运行 Hive •Hive 与传统数据库比较 •HiveQL •表 •查询数据 •用户定义函数
3 .Hive 简单介绍 Hive 是构建在 Hadoop 上的数据仓库框架 Hive 设计的目的是让精通 SQL 的分析师对 HDFS 中的大规模数据进行查询
4 . 安装 Hive Hive 把数据组织为表,对储存在 HDFS 中的数据赋予结构 安装环境: Java6 , Cygwin(Windows) 解压缩 : 路径设置 : 启动 Hive 的 Shell :
5 .Hive 外壳环境 Hive 交互、发出 HiveQL 命令的主要方式 第一次启动 : 非交互模式执行命令脚本:
6 .Hive 外壳环境 生成单行表的方法: 取消打印 Hive 运行信息: 其他 Hive 外壳程序特性: 用 a! 运行宿主操作系统命令 用 dfs 命令访问 Hadoop 文件系统
7 .示例 Hive 将数据组织成表: Hive 输入数据:
8 .示例 Hive 执行查询: Hive 优势: 将查询转换为 MapReduce 作业
9 .配置 Hive conf 目录: •hivesite.xml :设置 Hive 运行时的选项 •hive-default.xml: 记录 Hive 使用的选项和默认 值 -config 选项参数: ( 指定包含 hive-site.xml 文件的目录 ) 设置 HIVE_CONF_DIR 环境变量: ( 效果同上 )
10 .配置 Hive 关于 hive-site.xml :储存详细的集群链接信息 Hadoop: fs.default.name 和 mapred.job.tracker 来设置文件系统和 jobtracker Metastore 选项设置 Hive 为单个会话设置属性: 多个 Hive 用户共享一个 Hadoop 集群:
11 .配置 Hive SET 命令更改设置: ( 对特定的查询修改 Hive 或 MapReduce 作业设置很有用 ) SET-V 可列出系统中所有属性,包括 Hadoop 默认值 设置的优先级: 1.Hive SET 命令 2. 命令行 -hiveconf 选项 3.hive-site.xml 4.hive-default.xml 5.hadoop-site.xml(core-site.xml 、 hdfs-site.xml 、 mapred-site.xml) 6.hadoop-default.xml(core-default.xml 、 hdfs-default.xml 、 mapred- default.xml)
12 .日志 Hive 错误日志: /temp/$USER/hive.log 对于诊断配置问题和其他错误非常有用 日志配置文件: conf/hive-log4j.properties 修改日志的级别和日志相关设置 在会话中对日志配置进行设置:
13 .Hive 服务 -service 选项指明要使用哪种服务 hive-servicehelp 获得可用服务列表
14 .Hive 客户端
15 .Hive 客户端 Thrift 客户端 : •简化了在多种编程语言中运行 Hive 命令。 •Hive Thrift 绑定支持: • C++ • Java • Php • Python • Ruby •在 Hive 发布版本的 src/service/src 子目录下可以找到 Thrift 绑定
16 .Hive 客户端 JDBC 驱动 : • 纯 Java • 定义在 org.apache.hadoop.hive.jdbc.HiveDriver 类 配置 JDBCURI: • Jdbc:hive://host:port/dbname • 可在指定的主机和端口连接到另一个进程的 Hive 服务器 • 驱动使用 Java 的 Thrift 绑定来调用 Hive Thrift 客户端实现的接口 JDBC 内嵌模式连接 Hive : Hive 和应用程序在同一个 JVM 中运行 并不使用 Thrift 服务或 Hive 的 Thrift 客户端
17 .Hive 客户端 ODBC 驱动 : 与 JDBC 驱动类似,使用 Thrift 和 Hive 服务器进行通信
18 .metastore Hive 元数据的集中存放地 metastore 包括: 服务 后台数据的储存 内嵌 metastore 配置: metastore 服务和 Hive 服务运行在一个 JVM 包含一个以本地磁盘为储存的 Derby 数据库 缺点: 每次只能为每个 metastore 打开一个 Hive 会话 打开第二个报错: Failed to start database ‘metastore_db’
19 .metastore 本地 metastore : 支持多会话 metastore 与 Hive 运行在同一个 JVM 数据库在另一个进程
20 .metastore 本地 metastore 数据库设置
21 .metastore 远程 metastore : metastore 与 Hive 运行在不同的进程 数据库层置于防火墙后 客户端不需要用户名和密码
22 .和传统数据库比较 写时模式: 传统数据库采用 数据在写入时对照模式进行检查 有利于提升查询性能 读时模式: Hive 采用 数据验证在查询时进行 数据加载操作仅为文件的复制或移动
23 .更新、事务和索引 对于大规模的数据集上运行的数据仓库很有效 Hive 并没有对表的并发访问定义清楚语义 需要自己实现应用层的并发访问或加锁机制
24 .HiveQL HiveQL : MySQL 的 SQL 方言,并不完全支持 SQL-92 标准
25 .HiveQL
26 .数据类型 Hive 支持: 原子数据类型: int , bool , string 复杂数据类型: array , map , struct
27 .基本类型 Hive 只支持原子数据类型的一小部分
28 .类型转换 Hive 隐式转换: 任何整数都能隐式转换为一个范围更广的类型: TINYINTINT 所有整数类型、 FLOAT 和 STRING 都能转换为 DOUBLE TINYINT 、 SMALLINT 和 INT 都能转换为 FLOAT BOOLEAN 类型不能转换为其他任何类型 Hive 显式转换: CAST CAST(‘1’ AS INT) 转换失败返回 NULL
29 .复杂类型 创建: 查询: