--自动补全功能:tab键shell
--能够把“设置系统属性变量,增长hadoop分布式内存,自定义hive扩展的jar包”放在“$HOME/.hiverc”文件中bash
--在hive的CLI中执行bash shell命令,只要在命令前加上!,而且以分号(;)结尾就能够 ! /bin/echo “what up dog”;分布式
--在hive中使用hadoop的dfs命令 dfs -ls /;函数
--查看表的存储路径 hive -S -e "set" | grep warehouse;oop
--开启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/<user.name>/hive.log内存
--经过配置能够指定Hive中log4j日志配置文件的存放路径 hive -hiveconf hive.log4j.file=/home/carl/hive-log4j.properties -hiveconf hive.log4j.exec.file=/home/carl/hive-exec-log4j.propertieshadoop
--临时 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;