class未找到是因为map是本地方式运行,生成的jar包在/tmp/sqoop-[username]目录下有两种解决方式
方式一
修改mapred运行方式,修改为伪分布方式
# 1.etc/hadoop/mapred-site.xml:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.admin.user.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value>
</property>
</configuration>
# 2. etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
# 3. Start ResourceManager daemon and NodeManager daemon:
$ sbin/start-yarn.sh
方式二
在任务命令中增加–bindir参数
$sqoop import \
--connect jdbc:mysql://localhost:3306/*** \
--username **** \
--password ****** \
--table ***** \
--columns * \
--target-dir /test \
--delete-target-dir \
--fields-terminated-by '\t' \
--bindir [SQOOP_NAME]/lib