目录
拷贝安装包
解压
改名
拷贝jar包
修改配置文件
配置环境变量
查看安装情况
查看指定mysql服务器中数据库
查看指定mysql服务器数据库中的表
在hive中创建一个teacher表跟mysql的students中的teacher结构相同
将mysql中students库中的sc数据导出到hdfs指定的文件目录中
将mysql中test1库中的a数据导出到hdfs指定的文件目录中
带条件过滤
带条件过滤,指定查询列
query使用
将students中sc表导入到hive default库中
将students中sc表导入到hive test库中
重写,原数据会被覆盖
增量导入
前提:这里需要两个压缩包
拷贝安装包
使用xftp拉到虚拟机opt/install里面
解压
tar -zxf sqoop-1.4.7.tar.gz -C ../soft
改名
cd ../soft/
mv sqoop-1.4.7/ sqoop147
拷贝jar包
cp /opt/soft/hive312/lib/hive-common-3.1.2.jar ./opt/soft/sqoop147/lib
cp /opt/soft/hive312/lib/mysql-connector-java-8.0.25.jar ./opt/soft/sqoop147/lib
把sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz里面的lib下面的的avro-1.8.1.jar拷贝到/opt/soft/sqoop147/lib 里面
把sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz里面的sqoop-test-1.4.7.jar拷贝到/opt/soft/sqoop147里面
修改配置文件
转到sqoop/conf目录下面
cp sqoop-env-template.sh sqoop-env.sh
vim sqoop-env.sh
里面修改五行,没有的添加
#Set path to where bin/hadoop is available export HADOOP_COMMON_HOME=/opt/soft/hadoop313 #Set path to where hadoop-*-core.jar is available export HADOOP_MAPRED_HOME=/opt/soft/hadoop313 #Set the path to where bin/hive is available export HIVE_HOME=/opt/soft/hive312 export HIVE_CONF_DIR=/opt/soft/hive312/conf #Set the path for where zookeper config dir is export ZOOCFGDIR=/opt/soft/zk345/conf
配置环境变量
vim /etc/profile
#SQOOP_HOME export SQOOP_HOME=/opt/soft/sqoop147 export PATH=$PATH:$SQOOP_HOME/bin
刷新环境变量
source /etc/profile
查看安装情况
sqoop version
查看指定mysql服务器中数据库
[root@hadoop3 ~]# sqoop list-databases --connect jdbc:mysql://192.168.152.184:3306 --username root --password 12345
查看指定mysql服务器数据库中的表
[root@hadoop3 ~]# sqoop list-tables --connect jdbc:mysql://192.168.152.184:3306/students --username root --password 12345
在hive中创建一个teacher表跟mysql的students中的teacher结构相同
[root@hadoop3 ~]# sqoop create-hive-table --connect jdbc:mysql://192.168.152.184:3306/students --username root --password 12345 --table teacher --hive-table teachers
将mysql中students库中的sc数据导出到hdfs指定的文件目录中
[root@hadoop3 ~]# [root@hadoop3 conf]# sqoop import --connect jdbc:mysql://192.168.152.184:3306/students --username root --password 12345 --table sc --target-dir /tmp/student/sc1 --fields-terminated-by '\t' -m 1
将mysql中test1库中的a数据导出到hdfs指定的文件目录中
[root@hadoop3 conf]# sqoop import --connect jdbc:mysql://192.168.152.184:3306/test1 --username root --password 12345 --table a --target-dir /tmp/test1/a --fields-terminated-by '\t' -m 2
带条件过滤
sqoop import --connect jdbc:mysql://192.168.152.184:3306/students --username root --password 12345 --table sc --where "id='1'" --target-dir /tmp/students/id1 -m 1
带条件过滤,指定查询列
[root@hadoop3 ~]# sqoop import --connect jdbc:mysql://192.168.152.184:3306/students --username root --password 12345 --table sc --columns "CID,score" --where "SID='01'" --target-dir /tmp/students/sid01columns -m 1
query使用
[root@hadoop3 ~]# sqoop import --connect jdbc:mysql://192.168.152.184:3306/students --username root --password 12345 --target-dir /tmp/students/scquerys --query 'select * from sc where $CONDITIONS and CID="02" and score>80 ' --fields-terminated-by '\t' -m 1
将students中sc表导入到hive default库中
[root@hadoop3 ~]# sqoop import --connect jdbc:mysql://192.168.152.184:3306/students --username root --password 12345 --table sc --hive-import test -m 1
将students中sc表导入到hive test库中
[root@hadoop3 ~]# sqoop import --connect jdbc:mysql://192.168.152.184:3306/students --username root --password 12345 --table sc --hive-import --hive-database test -m 1
重写,原数据会被覆盖
[root@hadoop3 ~]# sqoop import --connect jdbc:mysql://192.168.152.184:3306/students --username root --password 12345 --table sc --hive-import --hive-overwrite --hive-database test -m 1
增量导入
[root@hadoop3 ~]# sqoop import --connect jdbc:mysql://192.168.152.184:3306/students --username root --password 12345 --table sc --hive-import --incremental append --hive-database test1 -m 1