hive 使用 beeline 执行hql传参数; hive 使用distcp 和 MSCK 进行hive数据库迁移
beeline 命令
-u 指定链接
-e 指定hql
-f 指定hql文件
--hiveconf 指定传参数, 参数在hql里形如 ${hiveconf:var}, 要有hiveconf:前缀
jdbc='jdbc:hive2://bd-master01-pe2.f.cn:10000/default;principal=hive/bd-master01-pe2.fastretailing-pro.cn@F.CN'
beeline -u "$jdbc" --slient=true --outputformat=tsv2 --hiveconf date="20181115" -f /home/fr-renjie.wei/fix_daily_fact.hql
beeline -u "$jdbc" --slient=true --outputformat=tsv2 --hiveconf date="20181115" -e 'select * from table where column1 like "${hiveconf:date}"'
hadoop distcp 可以在两个集群间快速迁移文件或文件夹, -u参数可以差异更新
在beeline里可以执行MSCK命令来让hive识别没有被添加metastore信息的文件
set hive.msck.path.validation=ignore;
MSCK REPAIR TABLE db.table;