IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hive编程指南 -> 正文阅读

[大数据]Hive编程指南

1、基础知识

2、基础操作

$HOME/.hiverc

历史命令在$HOME/.hivehistory

在hive CLI 中执行hadoop的dfs命令,只要将hadoop去掉,结尾加分号

3、数据类型和文件格式

4、HiveQL:数据定义

内部表、外部表、管理表、分区表

5、HiveQL:数据操作

导入数据:

insert into

insert overwrite

create table as select

6、HiveQL:查询

select ... from?

数学运算、聚合函数、嵌套select、case? when? then?

like、rlike支持正则表达式

group by、having

join:inner join、left outer join、outer join、right?outer join、full?outer join、left semi-join、笛卡尔积join

保证连续查询的表的大小从左到右依次增加。

order by、sort by只会在每个reducer中排序&是局部的、

distribute by控制map的输出在reducer中是如何划分的

cluster by:确保类似的数据可以分发到同一个reduce task中,而且保证数据是有序的。

类型转换case(value as type)

抽样查询

select * from tab tablesample(bucket 3 out of 10 on rand()) s ;

数据块抽样

select * from tab?tablesample(0.1 percent) s;

union/union all

7、HiveQL:视图

使用视图来降低查询复杂度

使用视图来限制基于条件过滤的数据

8、HiveQL:索引

9、模式设计

10、调优

Explain 关键字

explain extended 输出信息更多

limit:

hive.limit.optimize.enable设置为true、hive.limit.row.max.size和hive.limit.optimize.limit.file

JOIN优化:最大的表放在join语句最右边

本地模式:适用于小数据集,设置hive.exec.mode.local.auto为true

并行执行:不依赖的stage可以并行执行,设置hive.exec.parallel为true

严格模式:设置hive.mapred.mode为strict,可以禁止3种查询:

  1. 对于分区表,where语句必须含有分区字段过滤数据范围
  2. 对于使用order by的语句必须使用limit
  3. 限制笛卡尔积的查询

调整mapper和reducer个数:

  1. 按照输入数据量大小调整reducer个数,set hive.exec.reducers.bytes.per.reducer=750000000 这是750MB,默认是1GB
  2. hive的默认reducer是3
  3. hive.exec.reducers.max,计算公式【集群总reduce槽位个数*1.5/执行中的查询的平均个数】,1.5是经验系数

JVM重用:mapred.job.reuse.jvm.num.tasks? ,可以使得JVM实例在同一个job中重新使用N次

索引:可以加快含有group by语句的查询速度

动态分区调整:

推测执行:

单个mapreduce中多个group by:

虚拟列:

11、其他文件格式和压缩方法

压缩可以最小化所需磁盘的存储空间,减少磁盘和网络的IO操作。

开启中间压缩可以减少job中map和reduce task间的数据传输量。

  1. hive.exec.compress.intermediate 默认是false,设置为true
  2. mapred.map.output.compression.codec 设置编解码器

最终输出结果压缩

  1. ?hive.exec.compress.output默认是false,设置为true
  2. mapred.output.compression.codec 设置编解码器

sequence file存储格式:可以将一个文件划分成多个块,然后采用一种分割的方式对块进行压缩。

  1. create table...stored as?sequencefile
  2. 3种压缩方式:none、record(记录级别)、block(块级别,性能最好)
  3. mapred.output.compression.type

存档分区:HAR归档文件

压缩包扎:

12、开发

13、函数

show functions

describe function concat

describe function extended concat

UDF:用户自定义函数,继承并实现evaluate函数

HDAF:用户自定义聚合函数,avg

UDTF:用户自定义表生成函数,array、explode、lateral view,继承GenericUDTF

14、Streaming

在streaming job中,会为外部进程开启一个IO管道。

15、自定义Hive文件和记录格式

RCfile二进制

记录格式:SerDe 序列化和反序列化

CSV:逗号分隔

TSV:回车分隔

XML UDF

JSON?SerDe:

Avro Hive?SerDe:

二进制输出:

16、Hive的Thrift服务

Thrift是一个软件框架,用于跨语言的服务开发。10000

启动hiveserver:hive --service hiveserver &??

hive的thriftmetastore应该和实际使用jdbc的元数据存储进行通信:9083

启动:hive --service metastore &

17、存储处理程序和NoSQL

hive可以将底层数据以文本形式存储在hdfs,以列簇方式存储在hbase、cassandra、amazon dynamoDB。

支持hbase表之间连接,也支持hbase表和非hbase表之间连接。

18、安全

和hadoop安全功能相结合

使用hive进行验证

hive中的权限管理

  1. 用户、组、角色
  2. grant、revoke

分区级别的权限

自动授权

19、锁

hive结合zookeeper支持锁功能

显式锁和独占锁:lock table people exclusive

20、Hive和Oozie整合

oozie是一个工作流引擎服务器。

oozie提供的多种动作:mapreduce、shell、java、pig、hive、distcp

oozie网页控制台:http://ip:11000/oozie

21、Hive和亚马逊网络服务系统AWS

22、HCatalog

不同工具之间共享元数据

23、案例研究

-------------《Hive编程指南》

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-17 11:59:21  更:2021-07-17 12:00:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 5:18:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码