1. 程式人生 > >shell定時建立Hive表分割槽

shell定時建立Hive表分割槽

首先看一下hive 的help命令:

[[email protected] hive]$ hive  -h
Missing argument for option: h
usage: hive
 -d,--define <key=value>          Variable subsitution to apply to hive
                                  commands. e.g. -d A=B or --define A=B
    --database <databasename>     Specify the database to use
 -e <quoted-query-string>         SQL from command line
 -f <filename>                    SQL from files
 -H,--help                        Print help information
 -h <hostname>                    connecting to Hive Server on remote host
    --hiveconf <property=value>   Use value for given property
    --hivevar <key=value>         Variable subsitution to apply to hive
                                  commands. e.g. --hivevar A=B
 -i <filename>                    Initialization SQL file
 -p <port>                        connecting to Hive Server on port number
 -S,--silent                      Silent mode in interactive shell
 -v,--verbose                     Verbose mode (echo executed SQL to the
                                  console)
[
[email protected]
<span style="font-family: Arial, Helvetica, sans-serif;">hive]$ </span>


使用crontab定時給hive表增加表分割槽:

方法1:

 -e <quoted-query-string>         SQL from command line

執行命令:

[[email protected] 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 <filename>                    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表增加分割槽表的操作。