Hive的使用之脚本文件

原创 2016年09月01日 11:42:35


好处

在实际开发中,遇到复杂的hivesql,在文件里先写好再执行,比直接在控制台写更高效,纠错,修改更方便,也易于后期维护。


[hadoop@hello110 ~]$ 模式

在hive没有启动的时候,非hive内,在linux用户输入命令界面。
输入命令后,会启动hive,然后执行。执行完退出hive,每执行一条都要启动,比较耗时。

$>hive -e "sql语句"

[hadoop@hello110 ~]$ hive -e "show tables"
which: no hbase in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/hadoop/app/jdk1.8.0_73/bin:/home/hadoop/app/hadoop-2.7.2/bin:/home/hadoop/app/hadoop-2.7.2/sbin:/home/hive2.1/bin:/home/hadoop/bin)
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hive2.1/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/app/hadoop-2.7.2/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]


Logging initialized using configuration in file:/home/hive2.1/conf/hive-log4j2.properties Async: true
OK
array_test
map_test
student_test
test
test2
test3
Time taken: 3.503 seconds, Fetched: 6 row(s)

-------------------------------------------------------------------------

$>hive -e "sql语句">aaa 

把sql执行结果覆盖到aaa文件里

[hadoop@hello110 ~]$ hive -e "show tables" > aaa
which: no hbase in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/hadoop/app/jdk1.8.0_73/bin:/home/hadoop/app/hadoop-2.7.2/bin:/home/hadoop/app/hadoop-2.7.2/sbin:/home/hive2.1/bin:/home/hadoop/bin)
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hive2.1/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/app/hadoop-2.7.2/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]


Logging initialized using configuration in file:/home/hive2.1/conf/hive-log4j2.properties Async: true
OK
Time taken: 2.508 seconds, Fetched: 6 row(s)

[hadoop@hello110 ~]$ ll
total 384164
-rw-rw-r--. 1 hadoop hadoop        50 Sep  1 18:56 aaa
drwxrwxr-x. 4 hadoop hadoop      4096 Mar 13 04:44 app
-rw-rw-r--. 1 hadoop hadoop       629 Aug 26 05:47 derby.log
-rw-rw-r--. 1 hadoop hadoop 212046774 Mar 12 07:36 hadoop-2.7.2.tar.gz
-rw-rw-r--. 1 hadoop hadoop 181310701 Mar  9 13:31 jdk-8u73-linux-x64.tar.gz
drwxrwxr-x. 5 hadoop hadoop      4096 Aug 26 05:47 metastore_db

[hadoop@hello110 ~]$ more aaa
array_test
map_test
student_test
test
test2
test3

------------------------------------------------------------------------------

$>hive -e "sql语句">>aaa  

把sql执行结果追加到aaa文件里


[hadoop@hello110 ~]$ hive -e "desc map_test" >> aaa             
which: no hbase in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/hadoop/app/jdk1.8.0_73/bin:/home/hadoop/app/hadoop-2.7.2/bin:/home/hadoop/app/hadoop-2.7.2/sbin:/home/hive2.1/bin:/home/hadoop/bin)
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hive2.1/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/app/hadoop-2.7.2/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]


Logging initialized using configuration in file:/home/hive2.1/conf/hive-log4j2.properties Async: true
OK
Time taken: 5.296 seconds, Fetched: 2 row(s)

[hadoop@hello110 ~]$ more aaa
array_test
map_test
student_test
test
test2
test3
id                      string                                      
perf                    map<string,int>            
     
          

----------------------------------------------------------------------------------------------

$>hive -S -e "">aaa  -S

安静地,不打印出内容

-----------------------------------------------------------------------------------------------

$>hive -f file 

在文件里写好sql语句,然后用 hive -f 文件  进行执行。

[hadoop@hello110 ~]$ vi t.sql
show tables;
desc map_test;

[hadoop@hello110 ~]$ hive -f t.sql
which: no hbase in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/hadoop/app/jdk1.8.0_73/bin:/home/hadoop/app/hadoop-2.7.2/bin:/home/hadoop/app/hadoop-2.7.2/sbin:/home/hive2.1/bin:/home/hadoop/bin)
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hive2.1/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/app/hadoop-2.7.2/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]


Logging initialized using configuration in file:/home/hive2.1/conf/hive-log4j2.properties Async: true
OK
array_test
map_test
student_test
test
test2
test3
Time taken: 19.658 seconds, Fetched: 6 row(s)
OK
id                      string                                      
perf                    map<string,int>                             
Time taken: 26.635 seconds, Fetched: 2 row(s)

--------------------------------------------------------------------------------------------------

$>hive -i file

执行完了后,不退出hive,还能操作。


[hadoop@hello110 ~]$ hive -i t.sql
which: no hbase in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/hadoop/app/jdk1.8.0_73/bin:/home/hadoop/app/hadoop-2.7.2/bin:/home/hadoop/app/hadoop-2.7.2/sbin:/home/hive2.1/bin:/home/hadoop/bin)
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hive2.1/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/app/hadoop-2.7.2/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]


Logging initialized using configuration in file:/home/hive2.1/conf/hive-log4j2.properties Async: true
array_test
map_test
student_test
test
test2
test3
id                      string                                      
perf                    map<string,int>                             
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
hive> 

---------------


hive> 模式

hive>source file


hive> source t.sql;
OK
array_test
map_test
student_test
test
test2
test3
Time taken: 1.988 seconds, Fetched: 6 row(s)
OK
id                      string                                      
perf                    map<string,int>                             
Time taken: 0.604 seconds, Fetched: 2 row(s)
hive> 





版权声明:本文为原创文章,转载请注明出处:http://blog.csdn.net/zengmingen。-松门一枝花csdn博客

相关文章推荐

Hive中的.hiverc文件及命令运行方式

在${HIVE_HOME}/bin目录下有个.hiverc文件,它是隐藏文件,我们可以用Linux的ls -a命令查看。我们在启动Hive的时候会去加载这个文件中的内容,所以我们可以在这个文件中配置一...

hive之脚本执行

Hive是基于Hadoop的数据仓库,可以将结构化的数据文件hive映射为一张数据库表,并提供几乎完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。     Hive目前还...

[Hive]Hive执行脚本的方式以及转义字符

1. hive脚本的执行方式hive脚本的执行方式大致有三种: 1. hive控制台执行; 2. hive -e "SQL"执行; 3. hive -f SQL文件执行;参考hive的用法usa...

shell命令执行hive脚本(hive交互,hive的shell编程)

Hive执行方式Hive的hql命令执行方式有三种:1、CLI 方式直接执行 2、作为字符串通过shell调用hive –e执行(-S开启静默,去掉”OK”,”Time taken”) 3、作为独立文...

Hive使用脚本加载数据

方式一:直接写在脚本中load_track_logs.sh:#!/bin/sh## 环境变量生效 . /etc/profile## HIVE HOME HIVE_HOME=/opt/cdh-5.3.6...

Hive 脚本执行

继上篇DDL中load的数据继续进行脚本操作。 hive执行脚本hive -e “sql语句” 会将查询的结果打印在控制台上。 hive -e “sql语句” >> xxx 会将查询的结果重定向到...

hive操作create,alter等

hive操作create,alter等 存储,学习,共享 Hive 的官方文档中对查询语言有了很详细的描述,请参考:http://wiki.apache.org/hadoop/Hive/L...

单独的 python 脚本文件使用 django 自带的 model

django1.9.5&python3.4.4 文件结构 在一个爬虫脚本中将爬取的数据通过django自带的model保存到数据库 修改的文件(其余pycharm新建Django项目生成...

PostgreSQL 使用psql插入参数到sql脚本文件中

1. 数据postgres=# select * from tb1; id | name -----+------ 2 | aa 3 | aa 4 | aa 7 | aa...

使用EDIT命令快速编辑脚本文件

SQL*Plus中的edit命令提供给用户一种非常便捷的编辑脚本的手段。 在UNIX或Linux默认调用的是vi编辑器,在Windows环境中edit命令默认调用notepad编辑器。 在.bas...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)