利用Tsunami UDP将大数据迁移至云中

当你的数据规模达到PB级别的时候,想要移动这样大规模数据时就会变的费时费力,这也是企业在利用AWS规模化和弹性优势处理分析任务时面临的最大挑战之一。本文主要介绍了加速文件传输协议,谈到如何利用Tsunami DUP实现将大规模数据迁移到云中,其中利用UDP处理数据传输,TCP负责连接控制。

值得一提的是,与SCP、FTP或者HTTP等纯粹基于TCP的协议不同,这些混合型UDP/TCP协议处理数据的吞吐量更加出色,它可以充分利用当前的可用带宽的情况下,不易受到网络延迟的影响,这些特性使其成为远距离数据传输当中的一个很好的选择。例如在AWS区域基础设施之间将大型文件由本地传输到云端。在理想状况下,利用混合UDP/TCP模式加速的文件传输协议比传统的TCP协议(例如FTP)在传输速率上要快几十倍乃至上百倍。

在本文中,主要介绍到了如何使用Tsunami DUP,这套文件传输方案属于UDP/TCP混合加速文件传输协议,旨在将大规模数据从Amazon EC2迁移到Amazon S3当中(其它强大的文件传输与工作流加速方案还包括Aspera、ExpeDat、File Catalyst、Signiant以及Attunity。其中多数产品都可从AWS
Marketplace当中获得)。

AWS公有数据集

AWS以免费方式为社区托管着大量公有数据集。在今天的文章中,我们将尝试对维基百科流量统计V2---总容量为650GB,包含着为期十六个月内维基百科所有文章每个小时的综合浏览统计数据。这套公有数据集作为EBS快照进行保存,大家可以在AmazonEC2实例当中加以使用。要了解处理流程的具体信息,大家可以点击此处查看EC2说明文档。我们将把这套容量高达650GB(已经过压缩)的数据集从运行在AWS弗吉尼亚地区的AmazonEC2实例中移动到AWS东京地区的AmazonS3存储桶当中。一旦大规模的数据迁移到AmazonS3中,大家就可以利用这些大规模数据进行大数据分析,从而应用于你的项目当中。您可以使用AWS中的AmazonElastic
MapReudce服务(简称EMR),以及Amazon Redshift快速导入来自AmazonS3的数据并进行大规模分析。在本示例中,我们的主要任务是将大规模数据集从某区域的AmazonEC2实例内迁移到其它区域,但其原理也适用于从内部数据中心到AWS或者相反的数据集移动流程。

Tsunami UDP

Tsunami UDP是一套免费的开源文件传输协议,另外还有相关命令行界面,旨在利用TCP实现控制,由UDP完成数据传输。其设计目的在于利用UDP作为后备机制替代基于TCP数据包确认方案的拥塞控制机制,从而大幅提高网络传输效率,同时在丢包或者延迟不稳定的网络中带来更具效率的传输效果。用这种方式能显著降低和改善网络延迟对于数据吞吐能力的影响,相比之下使用传统的纯TCP协议远远无法达到同样的传输速率水平。

Tsunami UDP最初于2002年由Mark Meiss和印第安纳大学实验室里的同事们一同打造。今天得到广泛使用的版本是最初代码的fork版本,发布于2009年且目前由Sorceforge负责打理。Tsunami
UDP之所以获得众多AWS用户的支持,主要是出于以下几点原因:

(1)速度很快;

(2)完全免费;

(3)使用简便。

在AmazonEC2实例中设置AWS公有数据集

在我们对TsunamiUDP进行测试之前,首先需要为自己的测试下载一套数据集。我们已经提前在ap-northeast-1区域的Amazon S3存储桶中保留了一份数据副本。

1、设置 Tsunami UDP服务器

(1)要在ap-northeast-1区域(也就是东京)启动一套Amazon Linux实例,我们首先需要指定10Gbit网络以及充足的临时性容量以保存这套数据集。比如您可以选择i2.8xlarge Amazon EC2实例,当然c3.4xlarge则可以作为更具成本效率的备选方案。要获得更多与可用Amazon EC2实例类型相关的细节信息,大家可以点击此处查看Amazon
EC2实例类型页面。为了方便起见,我们已经创建了一套CloudFormation模板以启动Amazon EC2实例,其初始端口为TCP 22与TCP/UDP 46224,用于SSH与Tsunami UDP接入。接下来在EC2实例上设置一套本地临时性分卷,并从https://console.aws.amazon.com/cloudformation/home?region=ap-northeast-1- cstack=sn%7ETsunamiUDP|turl%7E  https://s3.amazonaws.com/aws-blog-examples/tsunami.template源中安装Tsunami
UDP应用程序。如果遇到实施阻碍,大家可以点击此处查看AWS说明文档中关于如何启动CloudFormation堆栈的指导信息。

(2)通过SSH登录我们刚刚创建的实例,如下所示:

ssh -i mykey.pem ec2-12-234-567-890.compute-1.amazonaws.com

(3)利用IAM凭证设置
AWS CLI:

aws configure

(4)将维基百科统计数据复制到临时设备当中:

aws s3 cp --region ap-northeast-1 --recursive s3://accel-file-tx-demo-tokyo/\ /mnt/bigephemeral

下载这些文件需要耗费很长一段时间。如果大家不打算利用Hadoop对数据集进行后续操作,而只打算测试数据吞吐能力或者Tsunami UDP的相关功能,则可以在自己的Amazon Linux实例中使用下列代码以快速创建一个临时文件,利用它来代替测试所需要的650G实际数据集:

fallocate -l 650G bigfile.img

Tsunami UDP 输机制只需很短时间就能达到最大可用传输速率。在传输对象为大量小型文件时,协调处理任务恐怕会对性能造成负面影响,因此我们最好移动少数大规模文件而非大量小规模文件。举例为说,在i2.2xlarge实例当中,Tsunami UDP在传输单一650GB文件时能够将速率稳定在650Mbps左右。相比之下,传输大量个体体积在50MB左右的页面计数文件只能带来约250Mbps传输水平。

为了为维基百科数据最大限度提供数据传输效果,大家可以利用以下命令创建出单一大型tar文件:

tar cvf /mnt/bigephemeral/wikistats.tar \ /mnt/bigephemeral

(5)文件作好了各项传输准备之后,利用端口TCP/UDP46224启动TsunamiUDP服务器并将所有文件提供给临时RAID0存储阵列:

tsunamid --port 46224 /mnt/bigephemeral/*

2、设置Tsunami UDP客户端

(1)在us-east-1(即弗吉尼亚地区)启动一个AmazonLinux实例。为了检测这个实例是否与我们之前在ap-northeast-1设施中的实例属于同种类型,大家可以再次使用前面提到的CloudFormation模板,只不过这一次将其用在us-east-1当中。

(2)通过SSH登录我们刚刚登录完成的实例。

3、数据传输与性能测试

(1)运行Tsunami UDP客户端,利用我们在AWS东京区设施中启动的Amazon
EC2实例Tsunami UDP服务器的公共IP地址替代下面中括号中的“server”部分:

tsunami connect [server] get *

(2)如果大家希望控制传输速率以避免网络链接使用量趋于饱和,可以使用“速率设定(set rate)”选项。举例来说,以下命令可以将传输速率限定为100
Mbps:

tsunami set rate 100M connect [server] get *

(3)在Tsunami UDP服务器上使用CloudWatchNetworkOut,在Tsunami
UDP客户端上使用NetworkIn以获取性能表现数据。

在从东京到弗吉尼亚这种长距离文件传输过程中,我们的i2.2xlarge实例获得了651 Mbps,也就是81.4 MB每秒的出色速率表现。考虑到两地的间隔,这样的成绩相信能令大家满意。

(4)为了将结果与其它基于TCP的协议进行对比,大家可以尝试利用scp协议(即Secure
copy)再作一次传输以便进行比较。举例如下:

scp -i yourkey.pem [email protected][server]:/mnt/bigephemeral/bigfile.img

我们为服务器、客户端以及SCP协议提供同样的i2.2xlarge实例,在传输单一650GB大型文件时我们只能得到约9MB每秒的传输效果。这样的表现只达到Tsunami UDP的十分之一。由此可见,即使考虑到SCP所引入的加密SSH连接因素,但Tsunami UDP确实可以带来显著的性能提升。

将数据集移动至Amazon S3当中

当数据被传输至ap-northeast-1设施内的EC2实例中后,我们可以将其进一步迁移到Amazon S3内。完成这项任务后,大家就可以利用并行COPY命令将其导入至AmazonRedshift,利用Amazon EMR对其加以直接分析或者归档以待今后使用:

(1)在AWS东京区设施内创建新的Amazon
S3存储桶。

(2)将来自us-east-1 Amazon EC2实例中的数据复制到刚刚创建的存储桶当中:

aws s3 cp --recursive /mnt/bigephemeral \ s3://<your-new-bucket>/

注意: 新的通用AWS CLI会自动利用多通道传输机制对指向Amazon S3的传输活动作出数据吞吐能力优化。

注意: 如果大家在利用Tsunami UDP传输之前对自己的维基百科流量统计V2数据集进行打包,那么在利用Amazon EMR对其加以进一步分析之前需要首先完成解压。

利用Amazon EMR进行数据集分析

当数据集被保存在AmazonS3之后,大家还可以利用Amazon EMR对其进行大数据分析。在本文中使用的示例专门针对维基百科数据集,大家可以点击此处利用Amazon EMR上的ApacheSpark对其统计内容进行查询。

总结:

Tsunami UDP提供一种免费、简便、高效的文件传输方式,允许大家将大规模数据在AWS与本地环境或者不同区域之间随意传输,还可以与AWS CLI的多通道上传机制相结合,Tsunami UDP又能成为一种便捷而无需投入成本的大规模数据集移动方式。利用Amazon S3和Amazon Glacier不仅能够提供持久且成本极低的对象存储服务,同时允许我们利用AmazonEMR以及Amazon Redshift等AWS服务对其进行大数据分析,不但能帮助您解决时间成本,同时能给您带来更好的效率。

当然,还需要指出的是,Tsunami UDP也存在自己的局限。它不支持原生加密机制,只能通过单线程实施传输而且由于缺少SDK或者插件的辅助而很难实现自动化执行。利用单线程运行多个客户端及服务器有可能在传输时中断,导致重试,这通常会降低整体数据的吞吐能力。Tsunami UDP也不支持原生Amazon S3集成,因此Amazon EC2实例上的传输机制必须首先中止,然后再利用AWS CLI等工具被重新发送至Amazon S3处。

最后,由于Tsunami UDP代码库的最近一次更新已经是2010年的事了,因此目前其不具备任何商用支持机制也没有与该产品相关的任何活跃开源论坛。相比之下,ExpeDat S3 Gateway与Signiant SkyDrop这两款文件加速传输方案很好地解决了这些弊端,而且这两款产品都支持加密机制,提供原生S3集成而且包含更多额外功能,这也使得这两种方案具备相当强大的商用客户吸引力。

利用Tsunami UDP将大数据迁移至云中

时间: 2024-08-14 20:50:59

利用Tsunami UDP将大数据迁移至云中的相关文章

Tsunami 跨机房大数据迁移【ubuntu】

一.Tsunami 安装 1.首先确保系统已经安装automake和autoconfapt-get install automake autoconf (linux 系统:yum -y install automake autoconf ) git clone git://github.com/rriley/tsunami-udp.git cd tsunami-udp ./recompile.sh (在ubuntu 构建出错,原因是automake失敗了.需要修改recompile.sh把aut

怎么利用云服务进行网站数据迁移

对于站长群体来说,网站数据搬家一直是一件比较麻烦的事情,以致于耽误了网站的正常的运行.要打包数据下载到本地,又要数据库备份迁移,如果不懂技术,还得找人设置服务器或空间等等.站长虽然爱折腾,但也会感到有点烦. 在云概念火热的今天,动辄大数据神马的年达,难道不能用云进行网站数据迁移工作吗? 答案是肯定的.自云技术出现以来,基于云的计算解决方案的流行度就一直是有增无减.这类解决方案恰好满足了个人和企业需求,是个人和企业改进工作职能的最佳选择.经过一段时间的发展,云计算已成为必须的存在,现在它以多种多样

大数据迁移

由于服务器调整,需要把服务器A上面约2T的数据库表空间文件迁移到同网段的另一台服务器B. 具体来说,就是N个32G的表空间文件(注意,是单个文件32G) 局域网传输文件的工具很多,但是没想到的是,一旦处理起这么大的文件,基本全部歇菜.. 先试了FeiQ,传输速度是很快,1000M网卡下速度可以达到90M/s,但是,文件传输到5280M的时刻就出错了,试了N次也不行. 然后在服务器B上架上FTP服务,在A上面用FTP软件往上上传,但是FTP软件看到这么大的单文件也歇菜了,连文件大小都显示成了负的.

大数据迁移之DRBD扩容

扩容主/备物理数据盘: [[email protected] ~]# drbdadm down data [[email protected] ~]# mount /dev/sdb1 /mnt/ [[email protected] ~]# df -h Filesystem      Size  Used Avail Use% Mounted on /dev/sda3       7.2G  1.9G  5.0G  28% / tmpfs           242M     0  242M  

当大数据遇上云计算,传统互联网将退出历史舞台?

很多人还没有搞清楚什么是PC互联网,移动互联网来了,我们还没有搞清楚移动互联的时候,大数据时代又来了.--马云 其实当我们还没有搞清楚大数据时代,大数据加云计算的时代又来了.数据和内容作为互联网的核心,而数据和内容的充分利用离不开云计算.早在奥巴马当选的时候就听说过大数据,奥巴马在总统竞选中使用大数据分析来收集选民的数据,让他可以专注于对他最感兴趣的选民,不久前在北京举办道德第一届"一带一路"国际合作高峰论坛已经将"大数据"入"十三五"规划的国家

大数据时代,银行BI应用的方案探讨

大数据被誉为21世纪发展创造的新动力,BI(商业智能)成为当下最热门的数据应用方案.据资料显示:当前中国大数据IT投资最高的为五个行业中,互联网最高.其次是电信.金融.政府和医疗.而在金融行业中,银行拨得头筹,其次才是证券和保险. 如何有效应用大数据.云计算等新信息技术,创造价值和财富,创造未来,是我们面临的巨大机遇和挑战. 下面把银行大数据应用做个详细全面的介绍. 一.大数据金融应用场景 从大数据技术特性以及银行近几年的应用探索来看,大数据在银行商业智能方面的应用主要体现在以下几个方面: 1.

国家统计局初尝大数据“甜头”

大数据时代已经悄悄来临,谁掌握了大数据,谁就可以抢占市场先机.自2012年以来,大数据已经成为一个浪潮儿,“大数据”即将成为“明日之星”.目前,我国各个行业,包括金融.电商.政府等都在使用大数据.大数据帮助政府企业等解决了及其多的海量数据,可视化的效果还帮助他们更加清晰的分析局面,做出及时有效的决策. 一.亲身体验大数据 大数据澎湃的浪潮,在人们不经意间,以迅雷不及掩耳之势汹涌而来.反应迅速的中国政府统计,真诚而执着地追随着大数据发展的脚步,一刻也不曾停歇. 不能否认,大数据应用是“一把手工程”

大数据实践:ODI 和 Twitter (一)

本文利用twitter做为数据源,介绍使用Oracle大数据平台及Oralce Data Integrator工具,完成从twitter抽取数据,在hadoop平台上处理数据,并最终加载到oracle数据库. 数据集成分为三个阶段:获取.整理.分析和决策. 本文从实际出发,讲述大数据处理的真实案例,而不是简单的讲述理论知识.首先会使用flume从twitter加载数据到HDFS,其实是加载到Hive数据库,然后利用(Oracle Data Integrator)ODI来实现逆向工程,并转换Hiv

Windows Azure上的大数据服务: HDInsight的介绍

这个视频介绍了目前非常流行的大数据处理框架Hadoop的Windows Azure上的实现:HDInsight,以及利用MapReduce来对大数据进行分析,利用Hive进行查询,利用客户端PowerBI, PowerQuery对结果进行展示等过程. 讲的通俗易懂,实乃Hadoop大数据处理最佳入门:) http://channel9.msdn.com/Series/MVA-China-2/dataservices-20140918-2-5