sqoop将hdfs导出到mysql失败

yws3nbqq  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(469)

我不知道哪里出错了,但是我的sqoop export命令从hdfs到mysql每次都失败。

sqoop export --connect "jdbc:mysql://quickstart.cloudera:3306/streaming" 
--username root --password cloudera --table pd_count --update-key id 
--update-mode allowinsert  --export-dir /user/cloudera/input/* -m 1 --batch

导出目录中只有1个文件夹,包含3个文件,即,
第m-00000部分
第m-00001部分
第m-00002部分
我已经更新了最后一个文件,以便了解--update参数。但是,不管我尝试了多少次排列,工作都失败了。
我将数据导出到mysql中,没有增量更新,数据导出成功。
我用“增量追加”将数据导入到hdfs中,很成功。
但是当我尝试用“update key”和“update mode”将数据导出到mysql时,它没有传输,并且失败了。
上述命令是最后使用的命令。
下面是这个链接最近的错误日志,请帮助我。
提前谢谢。

zujrkrfu

zujrkrfu1#

好的..我假设了一些不同的东西。你能试着用下面的选项吗
使用 --verbose 再次导出扩展日志。
您可以查看失败应用程序的应用程序日志。要获取它们,请以运行sqoop命令的用户身份运行以下命令- yarn logs -applicationId application_1513399439223_0001 > app_logs.txt. 好像你没有加上 --input-fields-terminated-by .
根据您的最新评论更新答案
我看到您已终止作业。这可能与性能有关。请尝试调整以下内容,然后再次运行sqoop:
将Map器的数目设置为4 -m 4 批量插入数据 --batch 使用属性 sqoop.export.records.per.statement 指定将在每个insert语句中使用的记录数 sqoop export -Dsqoop.export.records.per.statement=100 --connect 最后,使用sqoop.export.statements.per.transaction属性指定每个事务将插入多少行。 sqoop export -Dsqoop.export.statements.per.transaction=100 --connect 请提供Yarn日志,数据量是多少?

相关问题