Hive常见问题
1.HQL是否区分大小写 不区分
hive> select AGE from default.studeNT; --不区分大小写,即使是表中字段
2.查看创建表过程 show create table
hive> show create table default.student; --查看创建表过程的命令
OK
createtab_stmt
CREATE TABLE `default.student`(
`age` int,
`name` string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t' --行内分隔符
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
'hdfs://hadoop01:9000/user/hive/warehouse/student'
TBLPROPERTIES (
'numFiles'='',
'last_modified_by'='root',
'last_modified_time'='',
'COLUMN_STATS_ACCURATE'='true',
'transient_lastDdlTime'='',
'numRows'='',
'totalSize'='',
'rawDataSize'='')
Time taken: 0.063 seconds, Fetched: 20 row(s)
3.hive是否支持跨数据库查询? 支持
hive> select * from default.logs; --和普通sql一样,数据库名.数据表名
4.hive是否可以打印列名? set hive.cli.print.header=true;
hive> select * from default.student limit 5;
OK
1 zhangsan --显示结果不包含列名
2 lisi
3 wangwu
4 zhaoba
5 liliuy
Time taken: 0.047 seconds, Fetched: 5 row(s)
hive> set hive.cli.print.header=true; --设置true,即显示列名
hive> select * from default.student limit 5;
OK
student.age student.name --显示结果包含列名
1 zhangsan
2 lisi
3 wangwu
4 zhaoba
5 liliuy
Time taken: 0.05 seconds, Fetched: 5 row(s)
5.hive是否可以设置reduce的个数 set mapred.reduce.tasks=5;
hive> set mapred.reduce.tasks;
mapred.reduce.tasks=-1 --默认reduce个数为-1
hive> insert overwrite local directory '/root/hive/a' --只能产生一个结果文件
> row format delimited fields terminated by '\t'
> select * from test.t081901
> distribute by length(country)
> sort by te;
hive> set mapred.reduce.tasks=4; --设置4个reduce
hive> insert overwrite local directory '/root/hive/a' --产生4个结果文件
> row format delimited fields terminated by '\t'
> select * from test.t081901
> distribute by length(country) --和普通的MR一样,当【reduce个数>partition个数】,只有两个(等于分区数)结果文件中有数据。
> sort by te;
6.hive是否支持 exist 或 in 查询吗? 支持
hive> select * from default.student where student.age in(3,5,29);
OK
student.age student.name
3 wangwu
5 liliuy
Time taken: 10.217 seconds, Fetched: 2 row(s)
7.hive是否可以查询hive表的集群文件位置? desc formatted T_NAME
INPUT__FILE__NAME字段可以查询出Table在Hdfs上的location
hive> desc formatted default.student; --desc formatted <T_Name>
OK
col_name data_type comment
# col_name data_type comment age int
name string # Detailed Table Information
Database: default --所属数据库
Owner: root --Owner
CreateTime: Mon Aug 17 14:24:29 SGT 2015
LastAccessTime: UNKNOWN
Protect Mode: None
Retention: 0
Location: hdfs://hadoop01:9000/user/hive/warehouse/student --HDFS位置
Table Type: MANAGED_TABLE --内部表
Table Parameters:
COLUMN_STATS_ACCURATE true
last_modified_by root
last_modified_time 1439795658
numFiles 1
numRows 0
rawDataSize 0
totalSize 74
transient_lastDdlTime 1439795895 # Storage Information
SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
InputFormat: org.apache.hadoop.mapred.TextInputFormat
OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
Compressed: No
Num Buckets: -1
Bucket Columns: []
Sort Columns: []
Storage Desc Params:
field.delim \t
serialization.format \t
Time taken: 0.078 seconds, Fetched: 35 row(s)
hive> select name,age,INPUT__FILE__NAME --其中INPUT__FILE__NAME之间是两个下划线
> from default.student;
OK
name age input__file__name
zhangsan 1 hdfs://hadoop01:9000/user/hive/warehouse/student/student
lisi 2 hdfs://hadoop01:9000/user/hive/warehouse/student/student
wangwu 3 hdfs://hadoop01:9000/user/hive/warehouse/student/student
zhaoba 4 hdfs://hadoop01:9000/user/hive/warehouse/student/student
liliuy 5 hdfs://hadoop01:9000/user/hive/warehouse/student/student
jiujiu 9 hdfs://hadoop01:9000/user/hive/warehouse/student/student
shiba 18 hdfs://hadoop01:9000/user/hive/warehouse/student/student
xiyita 28 hdfs://hadoop01:9000/user/hive/warehouse/student/student
NULL NULL hdfs://hadoop01:9000/user/hive/warehouse/student/student
Time taken: 9.902 seconds, Fetched: 9 row(s)
8.hive是否支持本地执行模式
- 支持,当数据量小的时候,本地执行比提交到hadoop集群执行效率提升很大(大批量小作业,尽量采用本地执行模式)
- set hive.exec.mode.local.auto=true;(默认false)
- 满足如下条件才能真正使用本地模式:
- 1、job的数据数据大小必须小于参数hive.exec.mode.local.auto.inputbytes.max(默认值128M)
- 2、job的map处理的文件数小于参数hive.exec.mode.local.auto.input.files.max(默认值4)
- 3、job的reduce数必须小于等于1
- 用参数hive.mapred.local.mem来设置local mode下mapper和reducer task jvm heap size(在本地模式的最大内存量,以字节为单位,0为不限制)
hive> set hive.exec.mode.local.auto=true; --启用本地模式
hive> select name,age,INPUT__FILE__NAME
> from default.student;
Automatically selecting local only mode for query
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there is no reduce operator
Execution log at: /tmp/root/root_20150819122121_4a47f38a-3214-4990-a164-ce5b8a89b88e.log
Job running in-process (local Hadoop) --本地模式的Hadoop
Hadoop job information for null: number of mappers: 0; number of reducers: 0 --0个mapper和0个reducer
2015-08-19 12:21:51,828 null map = 100%, reduce = 0%
Ended Job = job_local531808121_0001 --从jobId也可以看出是Local_Job
Execution completed successfully
MapredLocal task succeeded --本地MR任务完成
OK
name age input__file__name
zhangsan 1 hdfs://hadoop01:9000/user/hive/warehouse/student/student
lisi 2 hdfs://hadoop01:9000/user/hive/warehouse/student/student
wangwu 3 hdfs://hadoop01:9000/user/hive/warehouse/student/student
zhaoba 4 hdfs://hadoop01:9000/user/hive/warehouse/student/student
liliuy 5 hdfs://hadoop01:9000/user/hive/warehouse/student/student
jiujiu 9 hdfs://hadoop01:9000/user/hive/warehouse/student/student
shiba 18 hdfs://hadoop01:9000/user/hive/warehouse/student/student
xiyita 28 hdfs://hadoop01:9000/user/hive/warehouse/student/student
NULL NULL hdfs://hadoop01:9000/user/hive/warehouse/student/student
Time taken: 5.216 seconds, Fetched: 9 row(s)
hive> select name,age,INPUT__FILE__NAME --采用分布式执行MR任务
> from default.student;
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there is no reduce operator
Starting Job = job_1438754688191_0137, --分布式MR任务的JobId
Tracking URL = http://hadoop01:8088/proxy/application_1438754688191_0137/
Kill Command = /hadoop/hadoop-2.2.0/bin/hadoop job -kill job_1438754688191_0137 --kill hadoop job的命令
Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 0 --map任务1个,reduce任务0个
2015-08-19 12:17:18,571 Stage-1 map = 0%, reduce = 0%
2015-08-19 12:17:22,757 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 0.55 sec
MapReduce Total cumulative CPU time: 550 msec
Ended Job = job_1438754688191_0137
MapReduce Jobs Launched:
Job 0: Map: 1 Cumulative CPU: 0.55 sec --1个map任务
HDFS Read: 284 HDFS Write: 592 --HDFS读取284字节,HDFS写出592字节
SUCCESS Total MapReduce CPU Time Spent: 550 msec
OK
name age input__file__name
zhangsan 1 hdfs://hadoop01:9000/user/hive/warehouse/student/student
lisi 2 hdfs://hadoop01:9000/user/hive/warehouse/student/student
wangwu 3 hdfs://hadoop01:9000/user/hive/warehouse/student/student
zhaoba 4 hdfs://hadoop01:9000/user/hive/warehouse/student/student
liliuy 5 hdfs://hadoop01:9000/user/hive/warehouse/student/student
jiujiu 9 hdfs://hadoop01:9000/user/hive/warehouse/student/student
shiba 18 hdfs://hadoop01:9000/user/hive/warehouse/student/student
xiyita 28 hdfs://hadoop01:9000/user/hive/warehouse/student/student
NULL NULL hdfs://hadoop01:9000/user/hive/warehouse/student/student
Time taken: 9.902 seconds, Fetched: 9 row(s)
9.hive是否支持自动Map-Join?
支持,设置hive.auto.convert.join=true,根据输入表的文件大小,自动将reduce端common join转为mapjoin,从而加快大表关联小表的速度。(建议开启)
Hive常见问题的更多相关文章
- Hive常见问题汇总
参考资料: Hive常见问题汇总 啟動hive出錯,提示沒有權限 2015年04月02日 09:58:49 阅读数:31769 这里小编汇集,使用Hive时遇到的常见问题. 1,执行#hive命令进入 ...
- hive 操作(转)
1.命令行操作 (1)打印查询头,需要显示设置: set hive.cli.print.header=true; (2)加"--",其后的都被认为是注释,但 CLI 不解析注释.带 ...
- 【转】hive简介安装 配置常见问题和例子
原文来自: http://blog.csdn.net/zhumin726/article/details/8027802 1 HIVE概述 Hive是基于Hadoop的一个数据仓库工具,可以将结构化 ...
- 【转】 hive简介,安装 配置常见问题和例子
原文来自: http://blog.csdn.net/zhumin726/article/details/8027802 1 HIVE概述 Hive是基于Hadoop的一个数据仓库工具,可以将结构化 ...
- Hive学习01-基础常见问题
理论: 什么是hive: 1. Hive旨在实现轻松的数据汇总,即时查询和分析大量数据. 2. 它提供了SQL,使用户可以轻松地进行临时查询,汇总和数据分析. 3. Hive可以使用用户定义函数( ...
- Hadoop之hive安装过程以及运行常见问题
Hive简介 1.数据仓库工具 2.支持一种与Sql类似的语言HiveQL 3.可以看成是从Sql到MapReduce的映射器 4.提供shall.Jdbc/odbc.Thrift.Web等接口 Hi ...
- Hive SQL 常见问题(转载)
http://www.aboutyun.com/thread-14942-1-1.html 问题导读 1.Hive查询语句和SQL查询语句区别与联系. 2.distribute by.group by ...
- Hive -- 基于Hadoop的数据仓库分析工具
Hive是一个基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库 ...
- Flume + HDFS + Hive日志收集系统
最近一段时间,负责公司的产品日志埋点与收集工作,搭建了基于Flume+HDFS+Hive日志搜集系统. 一.日志搜集系统架构: 简单画了一下日志搜集系统的架构图,可以看出,flume承担了agent与 ...
随机推荐
- SignalR 循序渐进(四) Hub的生命周期以及IoC
有阵子没更新这个系列了,最近太忙了.本篇带来的是Hub的生命周期以及IoC. 首先,Hub的生命周期,我们用一个Demo来看看: public class TestHub : Hub { public ...
- C#中资源文件的使用
在程序中会用到图片,有两种方法,一种是将图片放在运行文件夹中,直接调用,另一种是将图片放入资源文件中. 方法一,一般在.exe文件同级创建文件夹,如“ico”,然后把图标放进去.在程序中代码采用相对路 ...
- 2017 Multi-University Training Contest - Team 4——HDU6069&&Counting Divisors
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6069 题目意思:首先解释一下d[n]这个函数表示n有多少个因子,百度一下可以知道这个函数是一个非完全积 ...
- java基础06 switch
public class SwitchDemo01 { /** * 韩嫣参加计算机编程大赛 如果获得第一名,将参加麻省理工大学组织的1个月夏令营 如果获得第二名,将奖励惠普笔记本电脑一部 如果获得第三 ...
- 【JVM】线上应用故障排查
高CPU占用 一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环. 根据top命令,发现PID为28555的Java进程占用CPU高达200%,出现故障. 通过ps aux ...
- geo实现方案
1.数据库内在支持GIS(地理信息系统) MySQL: 目前只有MyISAM引擎是支持GIS的,Innodb在5.7版本中才支持空间索引.MyISAM这个引擎不支持事务.外键,而且是表锁.适合读为主, ...
- Spring整合jdbc编程
一.Spring对Jdbc的支持 Spring为了提供对Jdbc的支持,在Jdbc API的基础上封装了一套实现,以此建立一个 JDBC 存取框架. 作为 Spring JDBC 框架的核心, ...
- Delphi APP 開發入門(七)通知與雲端推播
Delphi APP 開發入門(七)通知與雲端推播 分享: Share on facebookShare on twitterShare on google_plusone_share 閲讀次數: ...
- Linux系统——VMware克隆
克隆VMware 1. 关闭防火墙 2. 关闭selinux 3. 删除UUID和Mac地址 4.清空网卡缓存 5.关机 ===================== 关闭防火墙 #service ip ...
- HDU 4585 Shaolin(map应用+二分)
题目大意:原题链接 初始少林最开始只有一个老和尚,很多人想进少林,每个人有一个武力值,若某个人想进少林,必须先与比他早进去的并且武力值最接近他的和尚比武, 如果接近程度相同则选择武力值比他小的,按照进 ...