shell脚本调度impala脚本总结

背景:由于公司使用oozie调度工作流但是其不支持impala只能转shell间接调度

首先说下impala的交互方式:

  1. 使用客户端直接进入impala然后进行sql操作,配好环境后impala-shll即可
  2. 使用hue
  3. impala-shell -q ‘select。。。’ -i localhost(地址)
  4. 若sql比较多可以写成文件后缀名无所谓impala-shell -f filename -i localhost即可

用shell脚本来执行impala:

在shell脚本中直接写impala-shell -q ‘select。。。’ -i localhost即可

问题:上述都好解决问题是脚本中需要变量怎么弄?

impala的这些资料明显没有hive的多,找了好久才找到解决方法,特此记录。

举例:

  • 正常切库:use test;
  • hive中使用变量切库:use ${db_name};
  • impala中使用变量切库(注意是脚本中的变量)use ${var:db_name};
    use ${var:db_name};

使用方式:${var:var_name}不能直接像hive中引用变量名

impala在shell中传参方式:

#!/bin/bash
file=$1
db_name=$2
create_date=$3
impala-shell --var=db_name=${db_name} --var=create_date=${create_date} -f $1 -i test-cdh2

格式比较奇怪:--var=var_name=var_value

在脚本中不要出现${var_name}类似的东西即使注释掉也会报错

题外:关于oozie对与shell脚本的调度配置:

在制定shell文件时不光要制定还要添加file,将执行的shell和shell调度的sql文件都添加这样就不会报错文件找不到了

oozie配置截图

猜你喜欢

转载自blog.csdn.net/bigdataprimary/article/details/82884821