更新时间:2025-07-25 GMT+08:00
分享

配置Sqoop通过IAM委托访问OBS

参考配置MRS集群通过IAM委托对接OBS完成Sqoop客户端对接OBS文件系统的配置后,可在Sqoop客户端导入关系型数据库的表到OBS中,或导出OBS中的表到关系型数据库中。

前提条件

RDS MySQL实例与Sqoop所在的MRS集群在同一虚拟私有云和子网下。

通过Sqoop导入MySQL数据到OBS中

  1. 登录RDS管理控制台,选择“实例管理”,选择待导入数据RDS MySQL实例所在行的操作列的“登录”,以root用户登录该实例。
  2. 在首页单击“新建数据库”创建数据库,例如“test”。在数据库列表中单击新创建的数据库名称进入数据库管理页面,在“表”页面单击“新建表”创建表,例如“sourcetable”,包含“id”和“name”字段。
  3. 选择新建的表所在行的“SQL查询”,在SQL查询页面切换至表所在的数据库,并执行SQL命令向表中插入数据,例如,执行以下命令:

    INSERT INTO sourcetable (id,name) VALUES (11,"A");
    INSERT INTO sourcetable (id,name) VALUES (22,"B");

    执行以下命令查询表数据:

    select * from `sourcetable`;

    查询到的表数据为:

    图1 查询表数据

  4. 在MySQL官网https://downloads.mysql.com/archives/c-j/下载MySQL对应版本的驱动包,解压后上传至安装了Sqoop客户端节点的“客户端安装目录/Sqoop/sqoop/lib”目录下。

    图2 上传MySQL驱动文件

  5. 以客户端安装用户登录安装客户端的节点。

    下载并安装集群客户端的具体操作,请参考安装MRS集群客户端

  6. 执行以下命令配置环境变量并认证用户:

    切换到客户端安装目录:
    cd 客户端安装目录
    加载环境变量:
    source bigdata_env

    认证用户,未启用Kerberos认证的集群请跳过该操作:

    kinit 组件业务用户

  7. 通过sqoop import导入MySQL表数据到OBS:

    sqoop import --connect jdbc:mysql://MySQL IP地址:3306/test --username root --password xxx --table sourcetable  --target-dir obs://并行文件系统名称/xxx --delete-target-dir --fields-terminated-by "," -m 1 --as-textfile

    更多sqoop importsqoop export操作及相关参数介绍请参见从零开始使用Sqoop

  8. 登录OBS管理控制台,选择“并行文件系统”,进入步骤 7配置的存储MySQL数据的并行文件系统路径,下载并查看对应的数据文件,内容与步骤 3MySQL表中插入的数据一致。

    11,A
    22,B

相关文档

若执行sqoop import或sqoop export命令报错“Could not load db driver class: com.mysql.jdbc.Driver”,则表示缺少MySQL驱动包,具体处理步骤请参见Sqoop导入或导出数据时报错缺少MySQL驱动包

相关文档