sqoop java.lang.Exception: java.lang.ClassNotFoundException: Class xxx(表名) not found

忘是亡心i 2023-10-06 21:48 117阅读 0赞

sqoop把mysql数据导入到hdfs 执行报错
sqoop 执行如下

  1. ./sqoop import \
  2. --connect jdbc:mysql://10.xx.120.xxx:3306/fl \
  3. --username root \
  4. --password 606122 \
  5. --table bond_code \
  6. --target-dir /sqoop \
  7. --delete-target-dir \
  8. --fields-terminated-by '\t'

报错信息如下:
在这里插入图片描述

报错原因:
class未找到是因为map是本地方式运行,生成的jar包在/tmp/sqoop-[username]目录下有两种解决方式

解决办法:

方式一

修改mapred运行方式,修改为伪分布方式

  1. # 1.etc/hadoop/mapred-site.xml:
  2. <configuration>
  3. <property>
  4. <name>mapreduce.framework.name</name>
  5. <value>yarn</value>
  6. </property>
  7. <property>
  8. <name>mapreduce.admin.user.env</name>
  9. <value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value>
  10. </property>
  11. <property>
  12. <name>yarn.app.mapreduce.am.env</name>
  13. <value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value>
  14. </property>
  15. </configuration>
  16. # 2. etc/hadoop/yarn-site.xml
  17. <configuration>
  18. <property>
  19. <name>yarn.nodemanager.aux-services</name>
  20. <value>mapreduce_shuffle</value>
  21. </property>
  22. </configuration>
  23. # 3. Start ResourceManager daemon and NodeManager daemon:
  24. $ sbin/start-yarn.sh

方式二
在任务命令中增加–bindir参数

  1. ./sqoop import \
  2. --connect jdbc:mysql://1x.1xx.1x.20x:3306/fl \
  3. --username **** \
  4. --password **** \
  5. --table bond_code \
  6. --target-dir /sqoop \
  7. --delete-target-dir \
  8. --fields-terminated-by '\t' \
  9. --bindir /usr/local/work/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0/lib

发表评论

表情:
评论列表 (有 0 条评论,117人围观)

还没有评论,来说两句吧...

相关阅读