Sqoop 在linux部署全流程

490 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情

一.SQOOP架构:

Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如:MySQL ,Oracle ,Postgres等) 中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

1.官网:

呸 - (apache.org)

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

从以上的配置来看我们需要有hadoophive

三.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

image.png

[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