小编k_m*_*hap的帖子

带有bash脚本的未绑定变量

我在调试脚本时变得绝望,我使用了一些从我的高级同事那里推荐给我的结构,我不知道如何让它正常工作.

 #!/bin/bash -x
set -ueo pipefail
exec &>/tmp/dq.log
source ${BASH_SOURCE%/*}/env-prd.sh

times=${2:-1}
sleep=${3:-1}

name="all-dq_hourly"


fs_lock_file="/tmp/mwa/jobs/prd-${name}.lock"

( flock -n 200
    log="/var/log/mwa/prd/$(date +%Y-%m-%d)__${name}.log"
    for i in $(seq 1 $times); do
        if [[ ! -f /tmp/stop ]]; then
        couple commands

      fi
        sleep $sleep
    done

) 200>"$fs_lock_file" | tee -a $log

rm $fs_lock_file
Run Code Online (Sandbox Code Playgroud)

从高管中,我可以看到部件的未绑定变量存在问题tee -a $log,couple commands可以直接执行.我试图在日志路径中使用backtics,但没有任何好处.我怀疑fs_lock_file存在同样的问题,但我还没有先修复日志.
有人可以睁开眼睛告诉我我失踪了吗?我无法使脚本记录到指定的路径.

bash shell scripting

8
推荐指数
1
解决办法
3万
查看次数

在Impala/Hive中删除多个分区

1-我试图一次删除多个分区,但努力用Impala或Hive来做.我尝试了以下查询,有和没有':

ALTER TABLE cz_prd_corrti_st.s1mme_transstats_info DROP IF EXISTS PARTITION (pr_load_time='20170701000317') PARTITION (pr_load_time='20170701000831')

我得到的错误如下:

AnalysisException:第3行中的语法错误:PARTITION(pr_load_time ='20170701000831')^遇到:PARTITION预期:CACHED,LOCATION,PURGE,SET,UNCACHED CAUSED BY:异常:语法错误

分区列是bigint类型,只删除一个分区的查询按预期工作:

ALTER TABLE cz_prd_corrti_st.s1mme_transstats_info DROP IF EXISTS
PARTITION   (pr_load_time='20170701000317')
Run Code Online (Sandbox Code Playgroud)

2-首先删除hdfs数据然后删除Impala/Hive中的分区,或者它应该是反之亦然?

sql hive partitioning hdfs impala

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

bash ×1

hdfs ×1

hive ×1

impala ×1

partitioning ×1

scripting ×1

shell ×1

sql ×1