0

我有这个 bash 脚本。

JDBC_CON=$1
USERNAME=$2
PASSWORD=$3
HIVE_DB=$4
TABLE_NAME=$5
QUERY=$6
maxlength=500
COLUMN=$7
TARGET_DIR=$8
MAPPER=$9

echo $QUERY

sqoop import -Dorg.apache.sqoop.splitter.allow_text_splitter=true \
--connect $JDBC_CON --username $USERNAME --password $PASSWORD \
--hive-import --hive-database $HIVE_DB --hive-table $TABLE_NAME \
--fetch-size 1000 --delete-target-dir --compression-codec org.apache.hadoop.io.compress.SnappyCodec \
--as-textfile --query "$QUERY" \
--split-by $COLUMN --target-dir $TARGET_DIR -m $MAPPER;

当我通过 Talend Tsystem 运行它时,变量 Query 被拆分为不同的变量。

共享日志直到损坏。

信息] 08:21:52 xxx_xxx.import_data_0_6.Import_Data-TalendJob:'Import_Data' - 开始。[统计] 连接到端口 10739 上的套接字 [统计] 已连接 [INFO] 08:21:52 aycap_dev.import_data_0_6.Import_Data- tFileInputDelimited_1 - 从数据源检索记录。[信息] 08:21:52 aycap_dev.import_data_0_6.Import_Data-tSystem_1 - 设置参数。[信息] 08:21:52 aycap_dev.import_data_0_6.Import_Data-tSystem_1 - 根目录:'/home/talenduser/dm/'。[信息] 08:21:52 aycap_dev.import_data_0_6.Import_Data-tSystem_1 - 执行命令。[INFO] 08:21:52 aycap_dev.import_data_0_6.Import_Data-tSystem_1 - 要执行的命令:'sh -x import_data.sh xxxxxx talend xxxxxx default tablename SELECT /* FROM tablename WHERE $CONDITIONS column1 /user/hive/tmp'。[信息] 08:21:52 aycap_dev.import_data_0_6。Import_Data- tSystem_1 - 命令已成功执行。选择警告:/opt/cloudera/parcels/CDH-7.1.6-1.cdh7.1.6.p0.10506313/bin/../lib/sqoop/../accumulo 不存在!Accumulo 导入将失败。请将 $ACCUMULO_HOME 设置为 Accumulo 安装的根目录。

  • JDBC_CON=jdbc:oracle:thin:@//xxxxxxx/orcl
  • 用户名=talend
  • 密码=xxxx
  • HIVE_DB=默认
  • TABLE_NAME=表名
  • 查询=选择
  • 列='*'
  • TARGET_DIR=从
  • MAPPER=TALEND.tablename
  • 回声选择
  • sqoop import -Dorg.apache.sqoop.splitter.allow_text_splitter=true --connect xxxxxx --username talend --password xxxxx --hive-import --hive-database default--hive-table xxxxx --fetch-size 1000 - -delete-target-dir --compression-codec org.apache.hadoop.io.compress.SnappyCodec --as-textfile --query SELECT --split-by /bin /boot /data /dev /etc /home /keytab /lib /lib64 /media /mnt /opt /proc /root /run /sbin /srv /sys /tmp /usr /var --target-dir FROM -m 表名

有人可以帮我解决这个问题。

4

0 回答 0