在cloudera中运行sqoop作业时发生数组索引越界异常

rqdpfwrv  于 2021-06-03  发布在  Sqoop
关注(0)|答案(1)|浏览(403)

我正在运行一个sqoop作业,以便将数据从hdfs获取到teradata,我正在将数组从异常范围中释放出来。有人能告诉我可能出了什么问题吗。
下面提到的是我使用过的命令
hdfs-->文件名.dat中的文件名

Sqoop command--> 
sqoop export \
--connect jdbc:teradata://teradarta_server_name/DATABASE=database_name\
--username username\
--password pwd\
--table My_table_name\
--input-fields-terminated-by '|' \
--lines-terminated-by '\n' \
--export-dir /HDFS-path

teradata版本:15.10
terdatada tablename包含46列,hdfs中的文件也是如此。
错误:
java.lang.arrayindexoutofboundsexception:46位于com.teradata.connector.hdfs.serde.hdfstextserde.deserialize(hdfstextserde)。java:293)在com.teradata.connector.common.connectorcombineinputformat$connectorcombinefilerecordreader.getcurrentvalue(connectorcombineinputformat。java:397)在org.apache.hadoop.mapred.maptask$newtrackingrecordreader.getcurrentvalue(maptask。java:535)在org.apache.hadoop.mapreduce.task.mapcontextimpl.getcurrentvalue(mapcontextimpl。java:75)在org.apache.hadoop.mapreduce.lib.map.wrappedmapper$context.getcurrentvalue(wrappedmapper。java:86)在com.teradata.connector.common.connectormmapper.run(connectormmapper。java:117)在org.apache.hadoop.mapred.maptask.runnewmapper(maptask。java:787)在org.apache.hadoop.mapred.maptask.run(maptask。java:341)在org.apache.hadoop.mapred.yarnchild$2.run(yarnchild。java:164)位于java.security.accesscontroller.doprivileged(本机方法)javax.security.auth.subject.doas(主题。java:415)在org.apache.hadoop.security.usergroupinformation.doas(usergroupinformation。java:1693)在org.apache.hadoop.mapred.yarnchild.main(yarnchild。java:158)

50pmv0ei

50pmv0ei1#

将tera数据连接器jar保存在sqoop类路径中,然后在下面进行尝试。

sqoop export \
      --connect jdbc:teradata://teradarta_server_name/DATABASE=database_name\
      --connection-manager org.apache.sqoop.teradata.TeradataConnManager \
      --table My_table_name\
      --username username\
      --password pwd\
      --fields-terminated-by '|' \
      --lines-terminated-by '\n' \
      --export-dir /HDFS-path \
      --input-null-string "\\\\N" \
      --input-null-non-string "\\\\N"

相关问题