1.用户不需要退出hive CLi就可以执行bash shell命令,只要在命令前加!并且以分号结尾就可以了
hive> ! /bin/echo "hello world";
"hello world"
hive> ! pwd;
/home/me/hivetest
hive CLI中不能使用需要用户进行输入的交互式命令,而且不支持shell的“管道”功能和文件名的自动补全功能。例如,
! ls *.hql;
这个命令表示的是查找文件名为*.hql的文件,而不是表示显示以。hql结尾的所有文件。
2.在hiveCLI中执行Hadoop的dfs命令,只需要将hadoop命令的关键字hadoop去掉,然后以分号结尾就可以;
hive> dfs -ls / ;
这种命令的方式实际比在shell中直接执行hadoop dfs的命令更高效。因为hive不会重新起动jvm实例而是在hive的当前进程中完成。
hive使用--来进行注释。
3.输出列名。
hive> set hive.cli.print.header=true;
4.数据库名字大概是h开头的
hive>show databases like 'h.*';
human
hive> DROP DATABASE IF EXISTS testdb CASCADE;
6.列出非当前数据库下的表
hive> show tables in mydb;
hive> show tables 'my.*'
7.查询表的详细信息
hive> descibe extended mydb.testtable
使用formatted代替extended可以得到更丰富的信息
8.只查看某一列的信息,只需要写出列名
hive> desc mydb.testtable.col1
hive>set give.mapred.mode=strict;
设置之后如果对分区表进行查询而where子句没有加分区过滤,将会禁止提交这个任务。与其相反的关键字是”nonstrict“
10hive不优先进入mr的设置
set hive.exec.mode.local.auto=true;