Hive 常见问题与技巧

1Q: 是否有像类似于phpmyadmin一样的hive查询客户端,能以界面的方式查询hive语句和导出数据

A: 有的,客户端的话可以使用squirrel来连接hive,squirrel是一个通用的数据库查询客户端,还有有一个开源项目phphiveadmin也不错,

web方式访问hive,这里也有一个hive web client(https://github.com/lalaguozhe/hiveweb-1)

 

2Q: 执行语句时候,能否控制reducer的个数

A: 可以在执行hive语句之前先 set mapred.reduce.tasks=<number>

 

3Q: 是否可能在输出的时候在结果第一行打印列名

A: 可以在执行hive语句之前先 set hive.cli.print.header=true;

 

4Q: Hive是否支持跨数据库查询,比如database arch的table1和database algo的table2 进行join

A: 可以,只要有用户有这两张表的select权限即可,用户需要用“database.table”的方式来指定数据库下的表

 

5Q: Hive是否有内置的函数,可以对输出的数据进行处理

A: Hive提供了丰富的内置函数,参见https://cwiki.apache.org/Hive/languagemanual-udf.html,

用户也可以自己实现自定义的UDF方法来满足更复杂的查询需求

 

6Q: Hive支持exist in么?

A: 不支持,但是可以通过改写语句达到相同的效果,比如对于查询语句:

SELECT a.key, a.value FROM a WHERE a.key in (SELECT b.key FROM B);

可以改写成:

SELECT a.key, a.val

FROM a LEFT SEMI JOIN b on (a.key = b.key)

PS:上述答案过时了,目前 hive 已经支持 in 查询了。

http://blog.youkuaiyun.com/yfkiss/article/details/8073608

 

7Q:Hive是否支持本地执行模式

A:Hive支持本地执行模式,当数据量小的时候,本地执行比提交到集群上执行效率提升很大

set hive.exec.mode.local.auto=true(默认false)

当一个job满足如下条件才能真正使用本地模式:

1.job的输入数据大小必须小于参数hive.exec.mode.local.auto.inputbytes.max(默认值128MB)

2.job的map处理的文件数大于参数hive.exec.mode.local.auto.input.files.max(默认值4)

3.job的reduce数必须为0或者1,不管是用户设置的还是系统推测出来的

用参数hive.mapred.local.mem(默认0)来设置local mode下mapper和reducer task jvm heap size

 

8Q: 关键词UNION ALL的用法

A:The number and names of columns returned by each select_statement has to be the same. Otherwise, a schema error is thrown.

UNION ALL两边的字段名,和字段数都必须一致,可以用as xxx来统一字段名,并且目前UNION ALL只能作为子查询。

9Q:hive left outer join的问题:where 与 on 条件的区别

http://blog.youkuaiyun.com/lalaguozhe/article/details/9498947

10Q:其它技巧请见:

http://my.oschina.net/leejun2005/blog/121945

11、对于 jar 包调用失败 NullPointerException 的问题:

FAILED: Error in metadata: java.lang.NullPointerException
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

你可能需要再 hive-site.xml 中添加 jar 的路径:

具体参考:http://abloz.com/2013/03/28/the-hive-execute-statements-times-nullpointerexception.html

1 <property>
2     <name>
3         hive.aux.jars.path
4     </name>
5     <value>
6         file:///home/june/soft/hive-0.9.0-bin/lib/hive-json-serde.jar
7     </value>
8 </property>

REF:http://blog.youkuaiyun.com/lalaguozhe/article/details/9081971

hive工作中分享总结 hive分享总结1. 数据家谱:1.1.Hive 是什么?1.2.数据仓库1.3.Hive与传统数据库的区别1.4.Hive的优缺点1.5.Hive使用场景1.6.Hdfs 运行机制1.7.Mapreduce 运行机制1.8.SQL转化成MapReduce过程1.9.Hive 架构:2.Hive交互方式2.1.Hive交互shell2.2.JDBC交互2.3.第三种交互方式:3.Hive 基础功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列 阅读详情

相关推荐

【Hive入门】Hive安全管理与权限控制:基于SQL标准的授权GRANT REVOKE深度解析

Hive基于SQL标准的授权模型提供了强大而灵活的权限管理能力,通过GRANT/REVOKE语句可以实现从数据库到列级别的精细控制。

IT成长日记的博客 1795

Hive 常见问题与技巧【Updating】

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34257076的博客 204

数据库领域Hive的数据存储与管理技巧

Hive作为一个构建在Hadoop之上的数据仓库基础架构,其主要目的是为了方便用户进行数据的存储、查询和分析。它允许用户使用类似于SQL的HiveQL语言来操作大规模数据集,而无需编写复杂的MapReduce程序。本文的范围将涵盖Hive的数据存储方式、数据管理的各种技巧,包括表的创建、分区、分桶等操作,以及如何优化数据存储和查询性能。本文首先介绍Hive的核心概念和数据存储架构,让读者对Hive有一个整体的认识。接着详细讲解核心算法原理和具体操作步骤,通过Python代码进行示例。

2502_91592937的博客 1011

ambari hive on Tez引擎一直卡住

使用TEZ作为Hive默认执行引擎时,需要在调用Hive CLI的时候启动YARN应用,预分配资源,这需要花一些时间,而使用MapReduce作为执行引擎时是在执行语句的时候才会去启用YARN应用。所以说,hive on tez使用./bin/hive后一直卡住是假象,待预分配资源任务结束后,即可输入hive sql正常执行。hive on tez使用./bin/hive启动后一直卡住,无法进入命令行。

qq_44540985的博客 823

反无人机技术实战解析:从探测到拦截的全方位防御策略

本文深入解析了反无人机(C-UAS)技术的全链条防御策略。从雷达、无线电频谱、光电等多维度探测技术,到数据融合与威胁评估,再到无线电干扰、导航诱骗及物理拦截等核心拦截手段,系统阐述了如何构建从探测到拦截的实战化防御体系,为关键设施、大型活动等场景提供定制化空域安全解决方案。

weixin_29230649的博客 403

Qt OpenGL 3D 点云数据显示

在Qt中使用OpenGL显示3D点云数据是一个常见的需求,特别是在计算机视觉、机器人学和三维重建等领域。下面我将介绍一个基本的实现方案。

深之JohnChen的专栏 1239

Hive JDBC连接Tez(AM)容器长期不释放问题的解决方法

Hive JDBC连接Tez(AM)容器长期不释放问题的解决方法 问题 有这样一个问题是很常见的:如果我们的Hive使用默认使用Tez作为执行引擎,当我们使用IDE通过Hive JDBC连接时,会出现在一个很“有趣”的想象:即如果我们不断开这个JDBC连接,则在Yarn上会持续有有一个Tez的AM容器持续存在,只有当端开JDBC连接时,这个容器才会被释放。关于Tez在Yarn的资源布局,可参考这篇...

Laurence的技术博客 6981

vivado 编译ADI AD9361 TCL脚本生成hdl工程

(4)输入"source ../../scripts/adi_make.tcl"命令(仅双引号内部命令,不包含双引号),个人理解:该命令用来加载当前所需要编译工程所需要各功能模块的信息,因为每个工程需要不同的功能模块,比如有的需要gpio模块,有的不需要gpio模块,这些模块上前面路径的library也同样以TCL脚本形式存在,当有需要时才进行编译,怎么知道当前工程需要什么模块呢就是通过"source ../../scripts/adi_make.tcl"(仅双引号内部命令,不包含双引号)命令实现。

weixin_40586423的博客 809

hive on tez hive运行在tez之上 安装测试

hive on tez详细配置和运行测试 tez hadoop hive hdfs yarn 环境: hadoop-2.5.2 hive-0.14 tez-0.5.3 hive on tez 的方式有两种安装配置方式: 在hadoop中配置 在hive中配置 比较: 第二种方式:当已经有了稳定的hadoop集群,而不想动这个集群时,可以考虑采用第二种方式配置...

duguyiren3476的专栏 1474

python爬取银行年报2

python爬取公司年报(巨潮资讯网)

bboysteed的博客 4731

Scratch全攻略:从入门到实践的编程之旅

Scratch 是一款由麻省理工学院(MIT)开发的图形化编程工具 ,它诞生的初衷是为了让编程教育更加普及,尤其是让孩子们能够轻松接触和学习编程。与传统的基于文本代码的编程方式不同,Scratch 通过将编程指令以图形化的积木形式呈现,极大地降低了编程的门槛,让编程变得如同搭积木一样简单有趣。

邓邓子的博客 1万+

【Hive】Hive常见问题排查技巧

一、作业慢或者有问题,先看Yarn链接 1.作业Pending问题查看 通常是资源问题 ACCEPTED: waiting for AM container to be allocated 表示AM的资源都没有分配 Pending很多,Running很少 队列资源用满情况分类 队列满了,不一定是vcore满,可能是内存满了,使用不合理都是先把内存用满了 解决办法: 1.杀作业,停止不重要作业,保障优先级 2.加队列资源 队列满的情况,有时候是因为用户内存设置太大,建议业务砍内存 Config

可乐 2704

cdk&java | 分子sdf文件生成

sdf

ASKCOS博客 1090

详解 Hive UDF 开发:Java 实现步骤与代码调试技巧

Hive UDF(User-Defined Function)允许用户扩展 HiveQL 功能。:开发后先用小数据集验证,再部署到生产环境。

2501_93878564的博客 1503

Python 爬虫高级实战:HTTPS 证书忽略与代理抓包配置

本文深入解析了HTTPS加密与SSL证书校验机制在爬虫开发中的核心问题及解决方案。文章首先剖析了HTTPS协议架构和证书校验流程,指出爬虫开发中常见的证书异常场景及其负面影响。随后详细介绍了Python主流请求库(requests、httpx、aiohttp)的证书忽略配置方法,包括同步/异步模式下的实现方案。针对代理环境,文章系统比较了HTTP、HTTPS、SOCKS5等代理类型的特性差异,并提供了完整的代理配置示例。特别对中间人抓包场景,阐述了Mitmproxy的工作原理和配置要点。最后提出了工程级爬虫

2503_91057718的博客 86

华为MetaERP PTP采购到应付全流程解析

摘要:本文系统解析华为MetaERP中的PTP(采购到应付)全流程管理方案,涵盖从采购申请到付款执行的完整业务流程。文章详细分解了PR、PO、GR、IV、AP等关键环节的财务核算规则,并提供了预算校验、库存更新等Python代码示例。同时阐述了IT落地架构设计,包括会计引擎配置、系统集成方案及银企直连支付接口实现。该方案通过三单匹配自动化和智能会计引擎,将处理效率提升10倍(200笔/人天→2000笔/人天),实现98%的自动化率,为集团企业提供了高效的数字化财务管理样板。文中所有技术方案均需根据实际场景调

金牌架构师 1743

基于hive引擎的计算优化

关于hive底层与相关调优

K的博客 1083

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Spark SQL 如何与 Hive 集成?如何在 Spark SQL 中查询 Hive 表?

Spark SQL与Hive集成概述:Spark通过共享Hive元数据存储实现无缝集成,支持直接访问Hive表和分区信息。配置需添加spark-hive依赖,设置Hive Metastore连接参数(如JDBC URL、Thrift服务地址等),并在SparkSession中启用Hive支持。查询方式包括直接引用Hive表(spark.table())或执行SQL语句。集成后,Spark可充分利用Hive现有元数据,同时保持自身高性能计算能力。

weixin_45422672的博客 923

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java 业务开发中常用的 Hive 技巧

时间戳问题 假设我们 mysql 数据库中有张表叫 student ,它有一个字段是 created_at(类型是 long 或 int)。mysql 数据库的 user 表在 hive 中对应的表为 dw_student,dw_student 中 created_at 这个字段对应的类型是 string。这个时候我们在写 hive sql 的时候,如果想比较时间戳,需要把 hive 表中的 created_at 转换为时间戳去比较,否则会查询不到任何数据且不报错。 select * from dw_st

a1102325298的博客 821

蓝牙模块HM-10手册

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

Hive

Hive数据仓库 可以将sql变成mapreduce任务 HIVE:HQL和MySQL语句相差不多 1.Hive不支持行级插入操作、更新操作和删除操作,同时它也不支持事务。 2.Hive中数据库的概念本质上仅仅是表的一个目录或者命名空间。如果用户没有显式指定数据库,就会默认使用默认库default。 3.默认创建的是托管表,在load时不检查数据是否符合格式,因为load是移动操作,将数据从

JackLi31742的博客 798

硬刚Hive | 4万字基础调优面试小总结

本文基本涵盖以下内容:一、基于Hadoop的数据仓库Hive基础知识二、HiveSQL语法三、Hive性能优化四、Hive性能优化之数据倾斜专题五、HiveSQL优化十二板斧六、Hive面试题(一)七、Hive/Hadoop高频面试点集合(二)基于Hadoop的数据仓库Hive基础知识Hive是基于Hadoop的数据仓库工具,可对存储在HDFS上的文件中的数据集进行数据整...

大数据星球-浪尖 705

处理--在搭建hive中遇到的一些问题

如果没有hive-site.xml文件可能是没有拷贝,hive-site.xml从hive-default.xml.template文件拷贝的。打开并在<configuration> </configuration>中增加连接数据库的配置:(放在最下方)这个问题出现的原因是因为配置没有配置好导致的。要修改hive-site.xml文件。点击新建数据库,输入信息后点击确定即可。建立hive库并查询是否建立成功。处理方法:新建一个hive库。希望对各位友友有帮助。

VC_djx的博客 1415

hive常见优化问题汇总

一、总体思想 http://blog.youkuaiyun.com/u011750989/article/details/12024301 1、让服务器尽可能的多做事情,榨干服务器资源,以最高系统吞吐量为目标 再好的硬件没有充分利用起来,都是白扯淡。 比如: (1) 启动一次job尽可能的多做事情,一个job能完成的事情,不要两个job来做 通常来说前面的任务启动可以稍带一起做的事情就一起做了...

远有青山 636

hive hql文档_大数据学习路线分享hive的运行方式

  大数据学习路线分享hive的运行方式,hive的属性设置: 1、在cli端设置 (只针对当前的session) 3、在java代码中设置 (当前连接) 2、在配置文件中设置 (所有session有效) 设置属性的优先级依次降低。 cli端只能设置非hive启动需要的属性。(log属性,元数据连接属性) 查找所有属性: hive>set; 查看当前属性的值:通常是hadoop hive&g...

weixin_33520952的博客 190
上一篇: 使用spring @Scheduled注解执行定时任务
下一篇: Hive 中内部表与外部表的区别与创建方法
weixir123
博客等级 码龄16年 1粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值