hive 学习使用

Hive join优化(mapjoin,streamtable) 一、 Join语法Hive支持的join语法:join_table: table_reference [INNER] JOIN table_factor [join_condition] | table_reference {LEFT|RIGHT|FULL} [OUTER] JOIN table_reference join_condition | table_reference L 阅读详情

hive建表说明:

目前我们建表主要使用两种方式,默认的text格式和orc格式。orc格式采用列式存储方式,可以较好的减少磁盘IO。orc增加了轻量级的索引,默认采用ZLIB压缩,有很好的压缩比。
使用场景:每天上G的数据建议采用ORC。数据量比较小的话可以自由选择text和orc两种方式。

hive 小文件处理说明:


解决方式分为两种。1)控制每个任务处理的最小数据量 2)输出结果控制,通过配置参数让程序自动启动一个任务来合并文件。两种方法应用场景不太一样。

针对表格式为ORC存储的小文件处理参数为:
set hive.merge.mapredfiles = true;
set hive.merge.mapfiles = true;
set hive.merge.smallfiles.avgsize = 134217728;

set mapred.min.split.size = 134217728;
set mapred.max.split.size = 268435456;
set mapred.min.split.size.per.node = 134217728;
set mapred.min.split.size.per.rack = 134217728;
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; 

针对表格式为TEXT存储的小文件处理参数为:

set hive.merge.mapredfiles = true;
set hive.merge.mapfiles = true;
 set hive.merge.smallfiles.avgsize = 134217728;

hive主要参数调优使用场景
查询时间过长或者partition(分区)比较多的场景:jvm
set mapred.job.reuse.jvm.num.tasks=10;

reducer数据量过大的情况或者reducer负载过高
可以适当调整reducer个数,不要过高,目前集群默认配置最大数目为100。此参数一般不要设置。

set hive.exec.reducers.max=150;

Hive 编程注意点

注意:hive sql运行是否高效,主要在于sql本身编写的是否合理高效,参数调优只是在某种条件下对减少运行时间有帮助。

避免不必要的数据扫描,设定分区
各个表之间的连接最好采用括号括起来的子查询方式,如果可以在连接之前进行的计算,那么尽量在连接之前进行计算,减少连接之后的数据量。一方面是因为mysql和hive执行引擎优化逻辑不一样,mysql会更加智能一 些,另一方面是为了方便查找sql问题,可以更快速的定位问题。
注意多表连接的执行计划
减少不必要的数据表的重复扫描,同时减少不必要的java对象生成

Hive 函数介绍:

见此博客:https://blog.youkuaiyun.com/hellojoy/article/details/82592059

这里我只记录一个使用点:

select  date, 2 is_asdk from test ;

在本查询语句中使查询出来的is_asdk字段值为2。

 

top n:

需求:求取华为和oppo这两个品牌中使用者数目排行前十的机型;

select manu,model from(select manu,model,row_number() over(partition by manu order by number desc)  rank from (select  split(device,"_")[0] manu, split(device,"_")[1] model,count(distinct(cuid)) number from dsdk.user_behavior where upper(split(device,"_")[0]) in("HUAWEI","OPPO") and date= '20190103' group by split(device,"_")[0],split(device,"_")[1] ) tb )tb1 where tb1.rank <=10 

 

stream join:

在多表级联时,一般大表都写在最后,因为写在最后的表默认使用stream形式加载,其他表的结果缓存在内存中。
可以使用/*+ STREAMTABLE(a) */ 来标示具体哪个表使用stream形式。在表关联时,使用该标识来指出大表,能避免数据表过大导致占用内存过多而产生的问题

SELECT /*+ STREAMTABLE(a) */ a.val, b.val, c.val FROM a JOIN b ON (a.key = b.key1) JOIN c ON (c.key = b.key1)

 

Hive体系结构

角色:gateway, metadata,hiveserver1,hiveserver2

gateway:由于Hive服务没有工作者角色,因此需要另一种机制来支持将客户机配置自动传播到集群中的其他主机。网关角色实现此功能。网关实际上并不是真正的角色,也没有状态,但是它们作为指示客户端配置应该放在哪里的指示器。在添加Hive服务时,默认情况下会创建Hive网关。当配置了gateway,当一个节点的hive数据发生更改时,其余节点同步更改。

metadata: 元数据服务组件,这个组件存储hive的元数据,hive的元数据存储在关系数据库里,hive支持的关系数据库有derby、mysql。元数据对于hive十分重要,因此hive支持把metastore服务独立出来,安装到远程的服务器集群里,从而解耦hive服务和metastore服务,保证hive运行的健壮性.

Hive有2个服务端守护进程:Hiveserver2:支撑JDBC访问,Thrift服务。MetaStore Server:支撑访问元数据库的服务。

 

 

 

Hive学习路线 前言 Hive是Hadoop家族中一款数据仓库产品,Hive最大的特点就是提供了类SQL的语法,封装了底层的MapReduce过程,让有SQL基础的业务人员,也可以直接利用Hadoop进行数据的操作。就是这一点,解决了原始数据分析人员对于大数据分析的瓶颈。目录 Hive介绍 Hive学习路线图 我的使用经历 Hive的使用案例 1.Hive介绍Hive起源于Facebook,它使得针对Hadoop 阅读详情

相关推荐

不用搭集群学习大数据的网站(hue),快来感受下hive的魅力吧

不用搭集群学习大数据的网站(hue),快来感受下hive的魅力吧 废话不多说先上网址:http://demo.gethue.com/hue/ (谷歌浏览器打不开换IE浏览器试一试) 用户名:demo 密码:demo 进去就可以操作随时可以学习大数据了。 进去hue界面后操作步骤 大家在里面可以随时写自己的HIVE了,一般的HIVE会转换成MapReduce程序跑出数据。 虽然说...

大数据Hive教程 4077

Hive——Hive/HiveSQL性能优化

文章目录分区partition1. 静态分区Static Partition2. 动态分区Dynamic Partition 我们知道Hive是一个构建在MapReduce之上并提供了SQL语法的查询分析引擎。虽然Hive可以处理巨量的数据,但是不同的优化手段会在处理时间上产生很大的差异。 在Hive中,可以从以下几个方面进行优化: 分区partition 分桶bucket 使用Spark/Tez作为执行引擎 使用压缩 使用parquet/orc格式 join优化 基于CBO的优化 分区partitio

aof 945

如何学习Hive:糙快猛的大数据之路( 从入门到实战)

本文涵盖从基础概念到高级优化技巧,深入剖析Hive的内部原理、性能调优和故障排除。通过实际案例,展示了Hive在金融、医疗、电信等行业的应用。文章还探讨了Hive与Spark、HBase等技术的集成,以及在数据湖、机器学习中的角色。从"糙快猛"的入门策略到企业级最佳实践,本指南助你成为真正的Hive专家,驾驭大数据的浪潮!

一个8年大数据开发工程师的碎碎念 2511

Hive数据操控、查询语言(DML、DQL)

Hive数据操控、查询语言(DML、DQL)

qq_46439199的博客 1445

Hive学习整理

写在前面 吃水不忘挖井人 视频课地址:https://www.bilibili.com/video/BV1W4411B7cN?from=search&seid=3089375730995965944&spm_id_from=333.337.0.0 学习参考书籍: 书中内容需要拥有hive和hadoop的基础,通读一遍感觉还需要在实际工作中翻读,但是也算有些收获 Hive学习笔记 环境变量的配置 sudo vim /etc/profile.d/my_env.sh 加入信息: export H

Foools的博客 837

STM32G474多通道ADC电压采集:软件触发与单次转换实战

本文详细介绍了STM32G474多通道ADC电压采集的实战方法,重点讲解了软件触发与单次转换的实现技巧。通过硬件设计、HAL库配置、多通道轮询采集及数据处理等环节的详细解析,帮助开发者高效完成精确电压采集任务。文章还提供了常见问题调试技巧和性能优化建议,适用于需要高精度电压监测的嵌入式应用场景。

weixin_28720767的博客 463

hive优化方式和使用技巧

部分内容出处: http://www.atatech.org/article/detail/5617/0 http://www.atatech.org/article/detail/4392/515  一.UDFS函数介绍 1. 基本UDF (1)SHOWFUNCTIONS:这个用来熟悉未知函数。      DESCRIBE FUNCTION; (2)A

wisgood的专栏 2万+

Unity IAP插件实战:从零搭建Google Play内购系统

本文详细介绍了如何使用Unity IAP插件从零搭建Google Play内购系统,涵盖环境准备、双端配置、核心API实现及常见问题排查。通过实战代码示例,帮助开发者快速掌握跨平台内购功能开发,提升手游商业化效率。

weixin_28692867的博客 430

Hive优化

一、hive表重新合并小文件 merge_file=" set mapreduce.input.fileinputformat.split.maxsize=268435456; set mapreduce.input.fileinputformat.split.minsize.per.node=268435456; set mapreduce.input.fileinputformat.split...

weixin_40901056的博客 293

小红书图文AI创作:输入主题,一键生成图文(coze工作流教程+获取)

输入主题,工作流一键生成小红书风格图文,30s一条,可批量生成

2301_79384090的博客 2800

STM32N6570-DK ISP调试

将下载线接入STLINK V3EC接口,将BOOT1拨码拨至右边,即将其置为H,上电或已经上电的按复位,打开STM32CubeProgrammer,设置start address:0x70000000。板子消耗电流较大,即使缩短数据线接了USB供电依然不能正常点亮显示屏,最终通过板上CN2端子加了外部5V供电,仍然需要560mA的外部电流。3.烧录bin文件:STM32N6_ISP_IQTune_App_revC01-v1.1.0-trusted.bin。

liu的博客 1065

在HIVE中使用机器学习

在HIVE中使用机器学习 在实际工业环境中,线下模型如何在大型数据中进行部署?这里介绍一种可以在HIVE环境中实现机器学习算法的工具——Hivemall。 1.什么是Hivemall? hivemall是基于hive udf的机器学习工具,其开源地址为:https://github.com/apache/incubator-hivemall。 它提供的机器学习算法有: 算法类型 具体算法 ...

qq_35559420的博客 1621

mysql8.0安装及配置超详细教程_mysql-8.0.15-winx64

MySQL8.0配置教程, 全网最详,同时有本地mysql和小皮系统见另一篇

小诺言的博客 2万+

Hive学习指南

《Hive编程指南》简单总计,相当给自己列一个Hive学习的提纲。

永立的专栏 414

基于模型上下文协议(MCP)的可插拔式临床AI工具链Clinical DS研究(下)

本研究深入探讨了医疗AI在临床落地中的核心矛盾,即如何从“模型能答”迈向“系统可信、可用、可追溯”。为解决此矛盾,我们创新性地提出并详细设计实现了一套基于模型上下文协议(MCP)的**“可插拔式临床AI工具链”**架构。通过将复杂的医疗AI系统解构为Host、MCP Server和标准协议三层,并将各类能力(临床决策、影像分析、合规审计)封装为标准的、可独立演进的Server,我们成功地构建了一个模块化、高内聚、低耦合的系统。

AllenLV的博客 1380

滚雪球学Java(01):Java是什么?| 入门指南

🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!!

**My Coding Family** 626

Hive学习(2)-Hive安装

原文来自:扎心了,老铁的《Hive学习之路 (二)Hive安装》 

上海一九四三 209

基于深度学习YOLOv8的PCB板缺陷检测系统

基于YOLOv8的PCB板缺陷检测系统,可以有效提高PCB生产过程中的检测效率。未来,我们可以进一步优化模型,结合更多的数据增强策略和先进的网络结构,以适应更复杂的生产环境。为了进行训练,理想的数据集应包含多种不同缺陷类型和不同背景的PCB图像。YOLOv8需要的数据格式为每个图像一个标签文件,每个标签文件包含缺陷的类别及其边界框坐标。运行该界面时,用户可以通过点击按钮选择图像,随后系统将自动检测图像中的PCB缺陷并显示结果。训练完成后,可以使用训练好的模型进行推理,检测新的PCB图像中的缺陷。

YOLO 1070

对Hive的学习

一、Hive定义 出现的原因: Hive最早来源于FaceBook ,因为FaceBook网站每天产生海量的结构化日志数据,为了对这些数据进行管理,并且因为机器学习的需求,产⽣了Hive这们技术,并继续发展成为⼀个成功的Apache项⽬。 1.1、定义 Hive是⼀个基于 Hadoop 的数据仓库⼯具,可以将结构化的数据文件映射成⼀张数据表,并可以使用类似SQL的方式来对数据文件进行读写以及管理。这套Hive SQL 简称HQL。Hive的执行引擎可以是MapReduce、Spark、Tez。 1.2本质

xhzxhz12的博客 1100

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Hive学习之路

Hive学习之路 :https://www.cnblogs.com/qingyunzong/p/8707885.html [一起学Hive]:http://lxw1234.com/archives/tag/learn-hive/page/2

杜海的博客 395

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Hive学习(21)-Hive优化策略

原文来自:扎心了,老铁的《Hive学习之路 (二十一)Hive 优化策略》 

上海一九四三 275

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Hive的机器学习与AI集成

1.背景介绍 Hive是一个基于Hadoop的数据仓库查询和数据分析工具,它使用了一种类SQL查询语言,允许用户以简单的查询方式对大规模数据集进行查询和分析。在大数据领域,Hive已经成为一个非常重要的工具,它可以帮助我们更快地分析数据,提高数据分析的效率。 然而,随着人工智能和机器学习技术的发展,我们需要将Hive与其他机器学习和AI技术进行集成,以便更好地利用大数据资源进行智能分析。在这篇...

AI天才研究院 1441

hive学习计划

最近公司大数据平台开始使用hive进行数据处理,上个公司也用到过hive,但是都是用到那写查询哪些,总觉得知识不系统,这次打算系统学习一下hive。现在给自己制定个学习路线如下:      hive简介      hive部署     hive整体架构      hive建表及表属性操作      hive数据存储      hive分区表(动态分区和静态分区)      hive数

wjandy0211的博客 790

Hive学习(1)-Hive初识

原文来自:扎心了,老铁的《Hive学习之路 (一)Hive初识》 

上海一九四三 216

hive学习笔记

自己学习总结,学习交流加群460570824 什么是Hive:   Hive是基于Hadoop之上的数据仓库,数据存放在HDFS上,它同样可以通过ETL来进行数据的抽取、转换和加载。同时Hive可以自己开发Mapreduce程序来完成本身不能提供的数据处理操作。Hive本身就是一个SQL的解析引擎,他将SQL 语句转成Mapreduce任务在hadoop之上执行。   什么是数据仓库:

ab123456bcde的博客 349

Hive学习(19)-Hive的数据倾斜

原文来自:扎心了,老铁的《Hive学习之路 (十九)Hive的数据倾斜》 

上海一九四三 258
上一篇: SparkStreaming与kafka入门学习
下一篇: Sqoop 学习总结
date-date
博客等级 码龄9年 6粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值