配置Sqoop通过IAM委托访问OBS
参考配置MRS集群通过IAM委托对接OBS完成Sqoop客户端对接OBS文件系统的配置后,可在Sqoop客户端导入关系型数据库的表到OBS中,或导出OBS中的表到关系型数据库中。
前提条件
RDS MySQL实例与Sqoop所在的MRS集群在同一虚拟私有云和子网下。
通过Sqoop导入MySQL数据到OBS中
- 登录RDS管理控制台,选择“实例管理”,选择待导入数据RDS MySQL实例所在行的操作列的“登录”,以root用户登录该实例。
- 在首页单击“新建数据库”创建数据库,例如“test”。在数据库列表中单击新创建的数据库名称进入数据库管理页面,在“表”页面单击“新建表”创建表,例如“sourcetable”,包含“id”和“name”字段。
- 选择新建的表所在行的“SQL查询”,在SQL查询页面切换至表所在的数据库,并执行SQL命令向表中插入数据,例如,执行以下命令:
INSERT INTO sourcetable (id,name) VALUES (11,"A"); INSERT INTO sourcetable (id,name) VALUES (22,"B");
执行以下命令查询表数据:
select * from `sourcetable`;
查询到的表数据为:
图1 查询表数据 - 在MySQL官网https://downloads.mysql.com/archives/c-j/下载MySQL对应版本的驱动包,解压后上传至安装了Sqoop客户端节点的“客户端安装目录/Sqoop/sqoop/lib”目录下。
图2 上传MySQL驱动文件
- 以客户端安装用户登录安装客户端的节点。
下载并安装集群客户端的具体操作,请参考安装MRS集群客户端。
- 执行以下命令配置环境变量并认证用户:
切换到客户端安装目录:
cd 客户端安装目录
加载环境变量:source bigdata_env
认证用户,未启用Kerberos认证的集群请跳过该操作:
kinit 组件业务用户
- 通过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 import和sqoop export操作及相关参数介绍请参见从零开始使用Sqoop。
- 登录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驱动包。