本文介绍Sqoop如何以EMR集群的方式读写OSS-HDFS服务的数据。
前提条件
-
已创建EMR-3.42.0及以上版本或EMR-5.8.0及以上版本的集群,并在创建时选择了Sqoop。具体步骤,请参见创建集群。
-
已开通并授权访问OSS-HDFS服务。具体操作,请参见开通并授权访问OSS-HDFS服务。
操作步骤
-
登录EMR集群。
-
登录EMR on ECS控制台。
-
单击创建的EMR集群。
-
单击节点管理页签,然后单击节点组左侧的
。
-
单击ECS ID。在ECS实例页面,单击实例ID右侧的远程连接。
如果您希望使用SSH方式(SSH密钥对或SSH密码)在Windows和Linux环境中登录集群,请参见登录集群。
-
-
将OSS-HDFS数据导入MySQL。
sudo sqoop import --connect / --username --password --table --target-dir --temporary-rootdir --check-column
--incremental --last-value -as -m -
参数说明
参数
是否必选
说明
dburi
必选
数据库的访问链接,例如
jdbc:mysql://192.168.xxx.xxx:3306/
。dbname
必选
数据库的名称。
username
必选
数据库登录用户名。
password
必选
数据库登录密码。
tablename
必选
MySQL表的名称。
oss-dir
必选
读取或写入OSS-HDFS服务指定路径下的数据,例如
oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/dir/
。oss-tmpdir
可选
临时写入目录。指定mode为append模式时,需要指定该参数。
采用append模式后,Sqoop会先将数据导入临时目录,然后将文件重命名为正常目标目录。如果目标目录已经存在于HDFS中,则Sqoop拒绝导入并覆盖该目录的内容。
col
可选
增量导入场景的检查列。
mode
可选
增量导入模式,支持append和lastmodified两种模式。
-
append模式:基于递增列的增量数据导入。
-
lastmodified模式:基于时间列的增量数据导入。
value
可选
指定上次增量导入的检查列的最大值。
format
可选
文件存储的格式。取值为avrodatafile、sequencefile、textfile(默认值)、parquetfile。
count
可选
指定MapReduce的任务数。
-
-
使用示例
将OSS-HDFS服务examplebucket中指定路径下的数据导入MySQL中的数据库表src_kv。
sqoop import --connect jdbc:mysql://master-1-1/sqoop_test --username root --password password1 --table src_kv -m 1 --target-dir oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/tmp/sqoop_kv --as-parquetfile
-
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/157684.html