将HDFS数据迁移到Azure

开发人员和Hadoop专家负责他和他的团队在切换到Azure时用于通过TLS加密通过网络传输数据的过程。

去年年中,我的团队决定将我们的Hadoop工作负载(包括数据和应用程序)转移到Azure。 本文提供了一些我们用于将本地HDFS数据迁移到Azure HDInsight的最佳实践。 下面提到的是我们采用TLS加密通过网络传输数据的两种方法。

方法一

ExpressRoute Azure服务使用Azure与本地数据中心之间的专用连接(ExpressRoute与Internet上的典型连接相比,具有更高的安全性,可靠性和速度,并具有较低的延迟)。 我们利用集成运行时来利用Data Factory的本机数据复制功能来迁移数据。 Data Factory的自托管集成运行时(SHIR)应该安装在Azure虚拟网络上的Windows VM池中。 可以将VM扩展到多个VM,以充分利用网络和存储IOPS或带宽。

迁移方法一图解
迁移方法一图解

如果需要为旧版应用程序迁移大量数据(即数据量> 50 GB),则建议使用此方法。

方法二

使用多种工具中的任何一种,通过常规Internet连接将数据传输到Azure存储,例如:AzCopy,Azure PowerShell和Azure CLI。

迁移方法二图解
迁移方法二图解

此方法用于复制较小量的数据(即2-5 GB或更少),或出于临时目的使用PoC环境数据,或将不涉及任何转换的数据传输到Azure。

示例一

// shell
azcopy copy  '<local-directory-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-name>' --recursive

上面的azcopy命令使用azcopy和该目录中的所有基础文件(递归)将整个目录复制到Azure容器。 结果是Azure容器中具有相同名称的目录。

示例二

// shell
az storage fs file upload -s "C:\myFolder\upld.txt " -p    testdir/upld.txt  -f testcont --account-name teststorgeaccount  --auth-mode login

上面的az cli命令将一个名为upld.txt的文件从本地文件系统上传到存储帐户testtorgeaccount下名为testcon的Azure容器中的目录testdir。

示例三

// PowerShell
$contxt = New-AzStorageContext -StorageAccountName '<storage-account-name>' -StorageAccountKey '<storage-account-key>'
$localSrcFile =  "upld.txt"
$containerName = "testcont"
$dirname = "testdir/"
$destPath = $dirname + (Get-Item $localSrcFile).Name
New-AzDataLakeGen2Item -Context $contxt -FileSystem $containerName -Path $destPath -Source $localSrcFile -Force

上面的PowerShell命令集将名为upld.txt的文件从本地文件系统上载到Azure容器testconr中名为testdir的目录中。

SO资源郑重声明:
1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!3187589@qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!

SO资源 » 将HDFS数据迁移到Azure