业务场景,需要读取批量的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
执行报错:
显示没有这个表
但是我单独把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
这到底是什么原因导致的,有没有行业翘楚可以给我解答一下这个疑惑