shell定时创建Hive表分区

2015-07-24 06:57:36 · 作者: · 浏览: 1

首先看一下hive 的help命令:

[hdfs@xxx hive]$ hive  -h
Missing argument for option: h
usage: hive
 -d,--define           Variable subsitution to apply to hive
                                  commands. e.g. -d A=B or --define A=B
    --database      Specify the database to use
 -e          SQL from command line
 -f                     SQL from files
 -H,--help                        Print help information
 -h                     connecting to Hive Server on remote host
    --hiveconf    Use value for given property
    --hivevar          Variable subsitution to apply to hive
                                  commands. e.g. --hivevar A=B
 -i                     Initialization SQL file
 -p                         connecting to Hive Server on port number
 -S,--silent                      Silent mode in interactive shell
 -v,--verbose                     Verbose mode (echo executed SQL to the
                                  console)
[hdfs@xxxx hive]$ 


使用crontab定时给hive表增加表分区:

方法1:

 -e          SQL from command line

执行命令:

[hdfs@xxxx hive]$ hive --database gcld -e 'alter table gcldlog add partition (dt=\\'2015-06-14\\') location \\'2015-06-14\\'';


Logging initialized using configuration in file:/etc/hive/conf.dist/hive-log4j.properties
OK
Time taken: 1.097 seconds

方法2:

-i                     Initialization SQL file

编辑好sql命令:

alter table gcldlog add partition (dt=‘2015-06-10') location '2015-06-10';

exit;(记得加上退出命令)

执行命令:

hive --database gcld -i /script/gcld/test.sql ;




这样就可以实现shell动态给hive表增加分区表的操作。