使用JindoDistCp工具遷移第三方云對(duì)象存儲(chǔ)數(shù)據(jù)到OSS/OSS-HDFS
本文介紹如何通過JindoDistCp工具,將第三方云對(duì)象存儲(chǔ)中的數(shù)據(jù)遷移到OSS/OSS-HDFS。
前提條件
準(zhǔn)備遷移環(huán)境并下載JindoDistCp工具,參見JindoDistCp使用說明。
已在Hadoop的
core-site.xml
文件里,配置AccessKey ID和AccessKey Secret。新增配置項(xiàng)詳情,請(qǐng)參見管理配置項(xiàng)。JindoDistCp可以將AccessKey ID和AccessKey Secret預(yù)先寫在Hadoop的
core-site.xml
文件里 ,避免使用時(shí)多次填寫的問題。例如,指定OSS、OSS-HDFS、Amazon S3、COS或OBS的AccessKey ID和AccessKey Secret。以O(shè)SS為例,配置示例如下。<configuration> <property> <name>fs.oss.accessKeyId</name> <value>xxx</value> </property> <property> <name>fs.oss.accessKeySecret</name> <value>xxx</value> </property> </configuration>
拷貝數(shù)據(jù)到阿里云OSS/OSS-HDFS上
您可以使用如下命令將第三方云對(duì)象存儲(chǔ)上的目錄拷貝到OSS/OSS-HDFS上。
hadoop jar jindo-distcp-tool-${version}.jar --src s3://example-s3-bucket/data --dest oss://destBucket.cn-xxx.oss-dls.aliyuncs.com/dir/ --parallelism 10
參數(shù) | 描述 | 示例 |
--src | 第三方云對(duì)象存儲(chǔ)路徑。 | s3://example-s3-bucket/data/ |
--dest | OSS/OSS-HDFS的目標(biāo)路徑。 | oss://destBucket.cn-xxx.oss-dls.aliyuncs.com/ |
--parallelism | 任務(wù)并發(fā)大小,根據(jù)集群資源可調(diào)整。 | 10 |
拷貝增量文件
場(chǎng)景說明:
Distcp任務(wù)在執(zhí)行期間失敗,您想進(jìn)行斷點(diǎn)續(xù)傳,只拷貝剩下未拷貝成功的文件。
源端文件新增了部分文件,只拷貝新增的文件。
在上一次Distcp任務(wù)完成后,使用--update參數(shù),將src中新增或發(fā)生改變的文件和目錄同步到dest上。
hadoop jar jindo-distcp-tool-${version}.jar --src s3://example-s3-bucket/data --dest oss://destBucket.cn-xxx.oss-dls.aliyuncs.com/dir/ --update --parallelism 20
設(shè)置YARN隊(duì)列和帶寬大小
如果您需要設(shè)置DistCp作業(yè)使用的YARN隊(duì)列和帶寬大小,可使用如下命令:
hadoop jar jindo-distcp-tool-${version}.jar --src s3://example-s3-bucket/data --dest oss://destBucket.cn-xxx.oss-dls.aliyuncs.com/dir/ --hadoopConf mapreduce.job.queuename=yarnQueue --bandWidth 100 --parallelism 10
參數(shù) | 描述 |
--hadoopConf mapreduce.job.queuename=yarnQueue | 指定YARN隊(duì)列的名稱。 |
--bandWidth | 指定單機(jī)限流帶寬的大小,單位:MB。 |
配置OSS-HDFS Endpoint
訪問OSS-HDFS需要配置Endpoint(cn-xxx.oss-dls.aliyuncs.com),與OSS對(duì)象接口的Endpoint(oss-cn-xxx-internal.aliyuncs.com)不同。JindoSDK會(huì)根據(jù)配置的Endpoint訪問OSS-HDFS或OSS對(duì)象接口。
使用OSS-HDFS時(shí),推薦訪問路徑格式為:oss://<Bucket>.<Endpoint>/<Object>
。例如oss://mydlsbucket.cn-shanghai.oss-dls.aliyuncs.com/Test
。
這種方式在訪問路徑中包含OSS-HDFS的Endpoint,JindoSDK會(huì)根據(jù)路徑中的Endpoint訪問對(duì)應(yīng)的OSS-HDFS接口。JindoSDK還支持更多的Endpoint配置方式,詳情請(qǐng)參見阿里云OSS-HDFS服務(wù)(JindoFS服務(wù))Endpoint配。
JindoSDK 4.4.0及以上版本默認(rèn)使用域名分離的方式,數(shù)據(jù)讀寫域名默認(rèn)使用內(nèi)網(wǎng)標(biāo)準(zhǔn)OSS域名。如果在非阿里云內(nèi)網(wǎng)環(huán)境執(zhí)行distcp命令,則需要在Hadoop的core-site.xml
文件中配置數(shù)據(jù)流訪問的公網(wǎng)OSS Endpoint。配置示例如下。
<configuration>
<property>
<name>fs.oss.data.endpoint</name>
<value>oss-cn-xxx.aliyuncs.com</value>
</property>
</configuration>
相關(guān)文檔
如果您需要使用JindoDistCp工具的更多功能,請(qǐng)參見JindoDistCp使用說明。
如果您在使用過程中遇到問題,可參見JindoDistCp常見問題進(jìn)行解決。