作者:Manticore-v | 来源:互联网 | 2023-05-19 01:39
1.假设,myql安装在bigdata2上。我们要在bigdata3上执行sqoop1。2.首先,要在mysql上创建一个b3@%的账户,这个账户限定只能从外部ip地址访
1. 假设,myql安装在bigdata2上。我们要在bigdata3上执行sqoop1。
2. 首先,要在mysql上创建一个'b3'@'%'的账户,这个账户限定只能从外部ip地址访问mysql。
3. 在bigdata3上做如下操作
http://www.cloudera.com/documentation/enterprise/5-7-x/topics/cdh_ig_jdbc_driver_install.html
mkdir -p /var/lib/sqoop
chown sqoop:sqoop /var/lib/sqoop
chmod 755 /var/lib/sqoop
然后将从oracle官网下载的mysql的jdbc驱动,放到/var/lib/sqoop的目录下,且owner是sqoop,mod是755
mysql-connector-java-5.1.40-bin.jar
4 切换用户到hdfs
su hdfs
5 设定hadoop的目录
export HADOOP_MAPRED_HOME=/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce
这里个目录有诸多hadoop的jar包,根据安装目录不同,可能略有不同。
6. 在bigdata3上执行
sqoop import --connect jdbc:mysql://10.14.1.4:3306/b_test --username b3 --password b3 --table t1 --target-dir /tmp/x
注意,这个/tmp/x必须不存在。
非常有可能出现各种异常,比如,在bigdata2上用b3做import就不能成功。
如果/tmp/x文件已经存在,也不能成功。
如果HADOOP_MAPRED_HOME没有设置,也不能成功。
如果/var/lib/sqoop里没有jdbc驱动,不会成功。
如果执行命令的用户不对,也可能不成功。
总之,失败的可能是很多的。需要一一排查。