hive命令行小窍门
2015-08-10 16:41
197 查看
1.用户不需要退出hive CLi就可以执行bash shell命令,只要在命令前加!并且以分号结尾就可以了
hive CLI中不能使用需要用户进行输入的交互式命令,而且不支持shell的“管道”功能和文件名的自动补全功能。例如,
这个命令表示的是查找文件名为*.hql的文件,而不是表示显示以。hql结尾的所有文件。
2.在hiveCLI中执行Hadoop的dfs命令,只需要将hadoop命令的关键字hadoop去掉,然后以分号结尾就可以;
这种命令的方式实际比在shell中直接执行hadoop dfs的命令更高效。因为hive不会重新起动jvm实例而是在hive的当前进程中完成。
hive使用--来进行注释。
3.输出列名。
4.数据库名字大概是h开头的
5.删除库的时候后面加关键字“CASCADE”,hive会先删除该库中的所有表在删除数据库。默认的关键字为“RESTRICT“意思是,用户必须先删除该库中的所有表这个操作才会成功。
6.列出非当前数据库下的表
7.查询表的详细信息
8.只查看某一列的信息,只需要写出列名
9.严格检查查询语句的条件中是否添加了分区的查询条件
10hive不优先进入mr的设置
set hive.exec.mode.local.auto=true;
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
5.删除库的时候后面加关键字“CASCADE”,hive会先删除该库中的所有表在删除数据库。默认的关键字为“RESTRICT“意思是,用户必须先删除该库中的所有表这个操作才会成功。
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
9.严格检查查询语句的条件中是否添加了分区的查询条件
hive>set give.mapred.mode=strict;设置之后如果对分区表进行查询而where子句没有加分区过滤,将会禁止提交这个任务。与其相反的关键字是”nonstrict“
10hive不优先进入mr的设置
set hive.exec.mode.local.auto=true;
相关文章推荐
- zoj 1671 Walking Ant 【bfs】
- axure中的变量及函数
- java 验证码生成
- 。net 页面跳转大全
- 如何使用CSS Sprites技术进行图片合并
- CodeForces 4A-Watermelon
- HDOJ-2004-成绩转换
- Http Session和Cookie
- AFN的使用方式
- 人生警语
- 数据库事务隔离级别
- MySQL基础(一)
- Android AsyncTask 解析
- Java8之Stream(2)
- php中的错误级别
- BNU - 4216 - 修路(并查集)
- Grails开源框架Note
- location的search操作——解析url字符串,返回包含所有参数的一个对象
- Bootstrap改变控件的高度和宽度问题
- css去掉使用bootstrap框架后打印网页时预览效果下的超链接