sqoop安装与配置

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

下载Sqoop

下载地址:https://archive.apache.org/dist/sqoop/

image-20220719183019604

安装配置Sqoop

  1. 解压至指定目录
    1
    tar -zvxf sqoop-1.4.6-cdh5.7.0.tar.gz -C /export/servers
  2. cd进入/export/servers目录
    1
    cd /export/servers
  3. 重命名sqoop(可忽略)
    1
    mv sqoop-1.4.6-cdh5.7.0/ sqoop-1.4.6
    image-20220719163229166
  4. 给个最高权限
    1
    sudo chmod -R 777 /export
  5. 修改configure-sqoop文件
    1
    cd /export/servers/sqoop-1.4.6/bin
    image-20220719163748064
    1
    vim configure-sqoop
  6. 将其中关于Zookeep和HBase的行都注释掉,除非集群已经安装了Zookeep和Hbase
    image-20220719163848844
    image-20220719163857404
    image-20220719163916179
    image-20220719163920816
  7. 添加/修改环境变量
    root用户,主节点执行,在/etc/profile文件末尾追加:
    1
    sudo vim /etc/profile
    1
    2
    export SQOOP_HOME=/export/servers/sqoop-1.4.6
    export PATH=$PATH:$SQOOP_HOME/bin
  8. 刷新配置
    1
    source /etc/profile
  9. 拷贝mysql的jdbc jar文件sqoop的lib目录
    image-20220719164113392

验证安装是否成功

  1. 执行命令(以hadoop用户在主节点执行)
    1
    sqoop version
  2. 执行以下命令输入密码(密码为你数据库密码)完成后,屏幕上会显示MySQL数据库中所有数据库实例,例如前面章节新建的hive数据库
    1
    sqoop list-databases --connect jdbc:mysql://master:3306/ --username root -P
    image-20220719164307778

关于报错

报错大部分的原因如下:

image-20220719164430634

那么可能是mysql密码错误,如果不是密码错误请在mysql的登陆状态下执行:

1
grant all privileges on *.* to root@master identified by '密码';
1
flush privileges;

然后再执行sqoop命令

image-20220719165203558

先说说这个错误,其实就是我们的MySQL不允许远程登录,所以远程登录失败了,解决方法如下:

  1. 在装有MySQL的机器上登录MySQL
    1
    mysql -u root -p密码 ;
  2. 使用数据库
    1
    use mysql
  3. 执行这一句执行完可能会报错,不用管它。
    1
    update user set host = '%' where user = 'root';
  4. 刷新权限
    1
    flush privileges;