--自动补全功能:tab键
--可以把“设置系统属性变量,增加hadoop分布式内存,自定义hive扩展的jar包”放在“$HOME/.hiverc”文件中
--在hive的CLI中执行bash shell命令,只要在命令前加上!,并且以分号(;)结尾就可以
! /bin/echo “what up dog”;
--在hive中使用hadoop的dfs命令
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 --如果A和B都为null返回true,其他的等号(=)一样
--修改log级别
--默认的日志存放路径:
/tmp/
--通过配置可以指定Hive中log4j日志配置文件的存放路径
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。
--hive的join语句,只支持等值连接。(注: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 by和sort by语句中涉及到的列完全相同,而且采用的默认的升序排序方式。那么在这种情况下,可以使用cluster by来代替。
--注意:使用distribute by和sort by语句 或者简化版的cluster by语句会剥夺sort by的并行性,然而这样可以实现输出文件的数据是全局排序的。
-- explain dependency语法:以JSON格式输出table或partition信息
explain dependency select * from wyp;
-- TRUNCATE可以删除HDFS上面相关表存储的数据,但是会保持表和metadata的完整性
truncate table p;
--在开发了hive的udf udaf udtf函数的jar文件后,需要将jar文件放入hive的环境中才可以使用。
add jar path/test.jar;