排骨学长(\t) 2023-12-14 11:16 采纳率: 43.5%
浏览 9
已结题

sqoop执行shell批遇到的灵异问题

业务场景,需要读取批量的oracle数据到dhfs,需要采集的oracle的表名存放在full_import_tables.txt中,
我写了一个shell脚本批量执行

#!/bin/bash

# 读取full_import_table.txt中的全部表名
while IFS= read -r table_name
do
  echo "Importing table $table_name to HDFS"
  table_name=$(echo $table_name | sed "s/ciss4/ROOT/")
  sqoop import \
  -Dmapreduce.job.user.classpath.first=true \
  --as-avrodatafile \
  --connect jdbc:oracle:thin:@slave2:1521:helowin \
  --username root \
  --password 123456 \
  --target-dir /data/dw/ods/one_make/full_imp/${table_name^^}/20210101 \
  --table ${table_name^^} \
  -m 1
done < /usr/sqoop/one_make/full_import_tables.txt

执行报错:

img


显示没有这个表
但是我单独把sqoop拿出来执行却可以成功

sqoop import \
-Dmapreduce.job.user.classpath.first=true \
--as-avrodatafile \
--connect jdbc:oracle:thin:@slave2:1521:helowin \
--username root \
--password 123456 \
--target-dir /data/dw/ods/one_make/full_imp/ROOT.CISS_BASE_AREAS/20210101 \
--table ROOT.CISS_BASE_AREAS \
-m 1

这到底是什么原因导致的,有没有行业翘楚可以给我解答一下这个疑惑

  • 写回答

1条回答 默认 最新

  • oo寻梦in记 领域专家: 后端开发技术领域 2023-12-14 13:39
    关注

    这里取值方式不对?

    img

    PS: Apache SQOOP ,官方已经不再维护,建议尽快更换其他方式替代。比如 mysql binlog + kafka + flink 或者 mysql binlog + flink CDC

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月3日
  • 创建了问题 12月14日