开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情
一.SQOOP架构:
Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如:MySQL ,Oracle ,Postgres等) 中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
1.官网:
2.sqoop原理
这里sqoop同步数据底层技术利用的是mapreduce :
input(数据源) -> mapreduce(这里只有map阶段) -> ouput(数据存放目的地)
3.使用场景
关系型数据库(MySQL) 与hadoop(hdfs,hbase,hive)进行数据传输
二.sqoop安装
下载地址:archive.apache.org/dist/sqoop/
1.解压
[root@dave software]# tar -zxvf ./sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C ./sqoop/
2.环境变量 /etc/profile
#SQOOP_HOME
export SQOOP_HOME=/root/software/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0
export PATH=${SQOOP_HOME}/bin:$PATH
记得source使环境变量生效。
3.配置环境
在/root/software/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0/conf下复制sqoop-env-template.sh创建一个 sqoop-env.sh
里面内容如下:
export HADOOP_COMMON_HOME=/root/software/hadoop/hadoop-3.1.3
export HADOOP_MAPRED_HOME=/root/software/hadoop/hadoop-3.1.3
export HIVE_HOME=/root/software/hive/hive-3.1.2
从以上的配置来看我们需要有
hadoop和hive
三.sqoop启动:
在sqoop中前置条件,需要打开hadoop,并且执行start-all.sh
start-all.sh
可以用ps看看你的
hadoop是不是在运行的。
sqoop version
可以用这个命令看看你的
sqoop是不是安装成功了。
1.查看命令帮助
sqoop help
这个命令最常用的,毕竟那么多参数,谁也不好记住。
2.查看可用的数据 (MySQL)
sqoop得有 mysql的驱动包:
我这里提供一个吧。找到mysql的文件夹,找那个jar包 链接:pan.baidu.com/s/1Rh00kYKM… 提取码:1024
[root@dave software]# mv mysql-connector-java-5.1.27-bin.jar /root/software/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0/lib
sqoop list-databases \
--connect jdbc:mysql://dave:3306 \
--password 123456 \
--username root
3.list-tables 查看库下面的table
sqoop list-tables \
--connect jdbc:mysql://dave:3306/myhive \
--password 123456 \
--username root