hive学习总结(8)—hive注意点

--自动补全功能:tab

 

 

--可以把“设置系统属性变量,增加hadoop分布式内存,自定义hive扩展的jar包”放在“$HOME/.hiverc”文件中

 

 

--hiveCLI中执行bash shell命令,只要在命令前加上!,并且以分号(;)结尾就可以

! /bin/echo “what up dog”;

 

 

--hive中使用hadoopdfs命令

dfs -ls /;

 

 

--查看表的存储路径

hive -S -e "set" | grep warehouse;

 

 

--开启hadoop回收站功能

--删除的数据被转移到HDFS中的/user/$USER/.Trash目录中

-- fs.trash.interval后面的整数是回收站检查点的时间间隔,单位是分钟

fs.trash.interval=1440             --24小时

 

 

--注意谓语操作符,“A=B”和“A<=>B”的区别

A=B                    --A等于B,返回true,反之返回false

A<=>B                --如果AB都为null返回true,其他的等号(=)一样

 

 

--修改log级别

--默认的日志存放路径:

/tmp/<user.name>/hive.log

 

 

--通过配置可以指定Hivelog4j日志配置文件的存放路径

hive -hiveconf hive.log4j.file=/home/carl/hive-log4j.properties

-hiveconf hive.log4j.exec.file=/home/carl/hive-exec-log4j.properties

 

 

--临时

hive --hiveconf hive.root.logger=DEBUG,console

 

 

--修改${HIVE_HOME}/conf/hive-log4j.properties文件(永久)

hive.root.logger=DEBUG,console

 

 

--set hiveconf:hive.root.logger=DEBUG,console;是无效的,不能使用的。因为设定log的参数读取在会话建立以前已经完成了。

 

 

--case ...when...then句式

select name,salary,

case

when salary < 50000.0 then ‘low’

when salary > 50000.0 and salary < 7000.0 then ‘middle’

else ‘high’

end as bracket

from employees;

 

 

--浮点数尽量使用double,对于已经使用float的要使用cast操作符

--和钱相关的都避免使用浮点数

cast(0.2 as float)

--不过将浮点型转换为整数,推荐使用round()floor(),而不是用cast

 

 

--hivejoin语句,只支持等值连接。(注:pig提供的交叉生成功能支持“非等值连接”)

--hive目前不支持在join on子句中使用or

 

 

--order by:全局排序

--sort by:局部排序

--如果hive.mapred.mode=strict;时候,因为order by 时间比较长。必须加上limit限制。

 

 

--distribute by来保证具有相同属性值的记录会分到同一个reduce中进行处理

select s.ymd,s.symbol,s.price_close

from stocks s

distribute by s.symbol

sort by s.symbol ASC,s.ymd ASC;

 

 

--如果distribute bysort by语句中涉及到的列完全相同,而且采用的默认的升序排序方式。那么在这种情况下,可以使用cluster by来代替。

--注意:使用distribute bysort by语句 或者简化版的cluster by语句会剥夺sort by的并行性,然而这样可以实现输出文件的数据是全局排序的。

 

 

-- explain dependency语法:以JSON格式输出tablepartition信息

explain dependency select * from wyp;

 

 

-- TRUNCATE可以删除HDFS上面相关表存储的数据,但是会保持表和metadata的完整性

truncate table p;

 

 

--在开发了hiveudf udaf udtf函数的jar文件后,需要将jar文件放入hive的环境中才可以使用。

 add jar path/test.jar;

 

猜你喜欢

转载自gaoxianwei.iteye.com/blog/2159856