中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Java實現非結構化數據遷移

發布時間:2021-11-16 10:05:05 來源:億速云 閱讀:328 作者:iii 欄目:大數據

本篇內容主要講解“怎么用Java實現非結構化數據遷移”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么用Java實現非結構化數據遷移”吧!

 一、操作說明

1、JAVA版遷移工具說明

Java版S3Transfer工具目前為公測階段,此遷移工具支持從AWS S3、阿里云、騰訊云、百度云等存儲遷移文件到京東云對象存儲;同時也支持本地文件列表遷移。大概邏輯為先獲取文件的地址或外鏈,然后根據外鏈讀取數據,然后進行遷移,這個工具是listObject,transfer,md5check 三個工具的集成:

listObject工具的目的是列出用戶配置bucket下的所有文件的列表。如配置prefix,則列出該prefix下的所有文件列表;

transfer工具的目的是將源文件遷移到oss對象存儲中;

md5check工具用于md5值校驗。

2、工具特點
  • 支持豐富的數據源:
    本地數據:將本地存儲的數據遷移到 OSS;
    其他對象存儲:目前支持 AWS S3,阿里云 OSS,騰訊云COS,百度BOS,華為 OBS存儲遷移至京東云OSS,后續會不斷擴展;
    URL 列表:根據指定的 URL 下載列表進行下載遷移到 京東云OSS;
    Bucket 相互復制:京東云OSS的 Bucket 數據相互復制, 支持跨賬號跨地域及同區域的數據復制。

  • 支持斷點續傳;

  • 支持流量控制;

  • 支持遷移特定前綴的文件;

  • 支持并行數據下載、上傳;

  • 遷移校驗:對象遷移后的校驗。

3、實操遷移場景說明

為保證實操的可操作性和直觀性,本文檔采用大文件傳輸(2個10G大小的文件),類型為s3file,從京東云賬號①通過外網傳輸至京東云賬號②對象存儲空間,用來模擬跨公有云之間的對象存儲遷移,任務控制端為京東云的一臺Centos 7.4云主機

怎么用Java實現非結構化數據遷移

4、備注
  1. 大文件傳輸會將單個文件分成若干個切片進行傳輸,如圖:

怎么用Java實現非結構化數據遷移

  2. 遷移過程中,遷移日志將默認打印到 ./log 目錄下。遷移的所有文件將打印到audit-0.log中,遷移成功的文件將打印到audit.success日志中(如果將目標端傳輸成功的文件刪除后,需要刪除audit.success日志文件方可進行重新傳輸),如果需要篩選遷移失敗的文件,請使用命令:

1 grep "1$" audit-0.log*

二、環境準備

1、新建云主機
地域操作系統配置帶寬JDK版本
華北-北京CentOS 7.4 64位8核16G20Mbps1.8.0_191
2、新建Bucket

需要準備兩個京東云賬號,一個在華北-北京創建對象存儲空間,一個在華東-上海創建對象存儲空間,以此來模擬跨公有云的對象存儲遷移。

賬號①-華北-北京:beijing-to-shanghai
賬號②-華東-上海:shanghai-from-beijing

怎么用Java實現非結構化數據遷移

怎么用Java實現非結構化數據遷移

3、使用S3fs在云主機實例上掛載Bucket
  1. 安裝依賴包

1 yum install automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel -y

   2.安裝以及編譯

1 git clone https://github.com/s3fs-fuse/s3fs-fuse.git
2 cd s3fs-fuse
3 ./autogen.sh
4 ./configure
5 make && make install

   3.創建密碼文件

1 echo Access_Key_ID:Access_Key_Secret > ~/.passwd-s3fs
2 chmod 600 ~/.passwd-s3fs

Access_Key_ID:Access_Key_Secret獲取方式:https://uc.jdcloud.com/account/accessKey

怎么用Java實現非結構化數據遷移

   4.掛載對象存儲到本地目錄/hcc(目錄名稱根據自己的名字簡稱定義)

1 mkdir /hcc
2 s3fs bucketname /hcc -o passwd_file=~/.passwd-s3fs -o url="https://s3.cn-north-1.jcloudcs.com"

mkdir:創建hcc文件夾作為本地掛載目錄

s3fs:手動掛載命令,其中bucketname為bucket名稱、/hcc是本地掛載路徑、passwd_file為密碼文件位置、url為京東云對象存儲兼容S3域名(請輸入空間的Bucket域名)

   5.查看掛載結果

1 df -h

怎么用Java實現非結構化數據遷移

   6.通過dd命令在所掛載的對象存儲里生成文件

這個命令會在所掛載的源對象存儲Bucket里生成2個大小為10GB的小文件。

1 cd /hcc
2 for ((i=1;i<=2;i++));do dd if=/dev/zero of=block_$i.file bs=1M count=10240;done

文件生成結果:

怎么用Java實現非結構化數據遷移

怎么用Java實現非結構化數據遷移

4、部署JAVA環境

下載解壓jdk

1 [root@pocenv-hcc-test-hb ~]# wget https://pocenv-hcc.oss.cn-north-1.jcloudcs.com/jdk-8u191-linux-x64.tar.gz && tar zxf jdk-8u191-linux-x64.tar.gz && mv jdk1.8.0_191/ /usr/local/ && ln -s /usr/local/jdk1.8.0_191/ /usr/local/jdk

配置環境變量

1 vim /etc/profile

在配置文件尾部加入

1 ######## JDK #######
2 JAVA_HOME=/usr/local/jdk1.8.0_191
3 JAVA_BIN=/usr/local/jdk1.8.0_191/bin
4 PATH=$PATH:$JAVA_BIN
5 CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
6 export JAVA_HOME JAVA_BIN PATH CLASSPATH

重新加載變量配置文件并查看jdk版本

1 [root@pocenv-hcc-test-hb jdk8]# source /etc/profile
2 [root@pocenv-hcc-test-hb jdk8]# java -version
3 java version "1.8.0_191"
4 Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
5 Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

三、遷移操作

1、下載Java 版S3Transfer
1 [root@pocenv-hcc-test-hb ~]# mkdir -p /root/java_transfer;cd /root/java_transfer;wget https://downloads.oss.cn-north-1.jcloudcs.com/transfer-tools-java-1.0.0.jar;wget https://downloads.oss.cn-north-1.jcloudcs.com/application.yml
2、配置文件說明`application.yml`

重點說明:

  • jobType:任務類型,分為listObject列出文件、transfer傳輸、md5check md5檢查,我們這里是傳輸,所以選擇transfer;

  • sourceType:數據來源的類型,分別為urlfile,diskfile,s3file(AWS S3、騰訊云COS、百度BOS、華為 OBS、京東云 OSS)aliyunfile,disklistfile(本地文件列表),我們京東云是兼容s3的,所以選擇s3file;

  • src.access.id/ src.secret.key:源對象存儲的AK/SK;

  • src.endpoint:源對象存儲的Endpoint;
    阿里云:https://help.aliyun.com/document_detail/31837.html?spm=a2c4g.11186623.6.572.6a537f5ewpHZJZ
    騰訊云:https://cloud.tencent.com/document/product/436/6224
    百度云:https://cloud.baidu.com/doc/BOS/S3.html#.E6.9C.8D.E5.8A.A1.E5.9F.9F.E5.90.8D
    華為云:https://support.huaweicloud.com/api-obs/zh-cn_topic_0136050628.html

  • src.bucket:源對象存儲的Bucket;

  • des.access.id/des.secret.key:目標對象存儲的AK/SK;

  • des.endpoint:目標對象存儲的Endpoint;

  • des.bucket:目標對象存儲的Bucket;

注:如下標紅內容是我們需要關注的(“:“ 后要加個空格才能生效):

##########################################################################################
#jobType 為 listObject,transfer
jobType: transfer
#sourceType 類型共有:urlfile,diskfile,s3file,aliyunfile,disklistfile
sourceType: s3file
#urlType : onlyUrl
#############################################################################################
#sourceType 為 urlfile ,diskfile時,filePath 為必填項
#filePath:

#urlFilePrefix: 10

#該鏈接的Content-Disposition超過京東云限制,如不獲取該header值繼續傳,則配置為true;否則將該url打印在錯誤日志里,由用戶對該url的header值自行修改
ContentDispositionTooLongContinue: false
#sourceType為urlfile,表示從用戶提供的url列表中遷移。文件列表內容為[ object外鏈,objectkey ] 使用逗號分隔

###########################源bucket配置################################################
#jdcloud
#src.access.id : XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#src.secret.key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#src.endpoint : https://s3.cn-north-1.jcloudcs.com

#aliyun
#src.access.id : XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#src.secret.key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#src.endpoint : https://oss-cn-beijing.aliyuncs.com

#tencent
#src.access.id : XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#src.secret.key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#src.endpoint : https://cos.ap-beijing.myqcloud.com

#baidu
#src.access.id : XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#src.secret.key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#src.endpoint : https://s3.bj.bcebos.com

#aws
#src.access.id : XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#src.secret.key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#src.endpoint : https://s3.us-east-2.amazonaws.com

#huawei
#src.access.id : XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#src.secret.key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#src.endpoint : https://obs.cn-north-1.myhuaweicloud.com

#qiniu
#src.access.id : XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#src.secret.key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#src.endpoint : https://cn-south-1-s3.qiniu.com
#src.domainOfBucket : XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

#-bucket
#src.bucket : beijing-to-shanghai
#src.prefix :

##################目標bucket配置 destination ############################################################
des.access.id : XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
des.secret.key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
des.endpoint : http://s3.cn-east-2.jdcloud-oss.com
des.bucket : shanghai-from-beijing
des.prefix :

3、啟動 S3Transfer

后臺啟動:

1 [root@SpringBoot-forbuild java_transfer]# nohup java -jar transfer-tools-java-1.0.0.jar --Dspring.config.location=application.yml &

前臺啟動:

1 [root@SpringBoot-forbuild java_transfer]# java -jar transfer-tools-java-1.0.0.jar --Dspring.config.location=application.yml
4、啟動效果

通過傳輸過程提示,我們可以看到文件傳輸狀態和結果:

怎么用Java實現非結構化數據遷移

5、傳輸結果

任務傳輸完成后如下圖:

怎么用Java實現非結構化數據遷移

我們點擊目標對象存儲空間shanghai-from-beijing,能看到在源對象存儲空間beijing-to-shanghai生成的兩個10GB文件已經傳輸過來了。

怎么用Java實現非結構化數據遷移

到此,相信大家對“怎么用Java實現非結構化數據遷移”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

正镶白旗| 陵川县| 隆安县| 邳州市| 彩票| 马龙县| 四子王旗| 阳高县| 广宗县| 昆明市| 三原县| 宁安市| 伊春市| 陆丰市| 都匀市| 贡山| 从化市| 左权县| 思南县| 图们市| 西和县| 常州市| 西乌珠穆沁旗| 阳东县| 漳州市| 泌阳县| 孙吴县| 宝鸡市| 綦江县| 扬中市| 二手房| 连平县| 绥化市| 拉孜县| 包头市| 通江县| 保德县| 大悟县| 千阳县| 灯塔市| 河池市|