1 下载Sqoop
sqoop下载地址
2 安装2.1 配置/etc/profile, 加入sqoop的Home路径和在PATH加入bin的路径:
#sqoop
export SQOOP_HOME=/usr/local/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
编译配置文件/etc/profile,并确认生效
source /etc/profile
echo $PATH
将数据库驱动复制到sqoop的lib目录中
2.2、配置sqoop-env.sh
#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/opt/hadoop
#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/opt/hadoop
#set the path to where bin/hbase is available
export HBASE_HOME=/opt/hbase-1.1.3
#Set the path to where bin/hive is available
#export HIVE_HOME=/opt/apache-hive-1.2.2-bin
#Set the path for where zookeper config dir is
export ZOOCFGDIR=/opt/zookeeper-3.4.6/conf
2.3、测试是否可用
sqoop help
三、导入与导出
导入与导出是相对于hdfs的,写到hdfs为导入。
3.1、导入: 导入HDFS, 默认情况下,使用导入语句,直接导入到HDFS当前用户的目录下面,生成相应的表名,文件夹名称默认为表名。
sqoop import --connect jdbc:mysql://135.251.254.224:3307/test --username root --password root --table info -m 1
3.1.2、问题: No columns to generate for ClassWriter
mysql驱动版本低,
改为mysql-connector-java-5.1.42就可以了
3.1.3、查询结果
[root@slave1 sqoop-1.4.6]# hdfs dfs -cat /user/root/info/part-m-00000
1,chb
[root@slave1 sqoop-1.4.6]#
3.2、指定到入目录(默认插入HDFS当前用户的目录下面),通过--target-dir dir
指定插入的目录
sqoop import --connect jdbc:mysql://135.251.254.224:3307/test --username 'root' --password 'root' --table info –target-dir info_dir
3.3、如果目录已经存在,使用–delete-target-dir:
sqoop import --connect jdbc:mysql://135.251.254.224:3307/test --username 'root' --password 'root' --table info --delete-target-dir