以前我们跨主机拷贝大数据的时候,比如要拷贝超过100GB的mysql原始数据,我们通常的做法如下:

  • 在源端打包压缩为tar.gz文件
  • 采用scp或者rsync等方式拷贝到目标主机
  • 在目标主机解压文件

这三个过程是同步阻塞,即不能同时异步执行,导致效率低下。

现在我们将过程优化为以数据流的方式,同时执行(非阻塞模式),则效率一般可以提高到原来的3倍以上,具体实现如下:

磁盘读取---->打包---->压缩------>传输---->解压缩-->拆包---->落盘

                     |->tar     |->gzip      |->ssh      |->gzip   |->tar

比如我要将本地的test目录拷贝到“目标IP”的的data目录,则命令如下:

tar -c test/ |pigz |ssh -c arcfour128 目标IP "gzip -d|tar -xC /data"

当然,这里的解压过程仍然用了效率比较低下的gzip,如果将解压工具换成lz4(但需要单独编译安装),则效率可以再提高不少。

如果不需要解压,则命令变为:

tar -c test/ |pigz |ssh -c arcfour128 目标IP "cat >/data/test.tar.gz"

注:因为采用了流式压缩,解压过程必须加上-i参数,及tar –ixf /data/test.tar.gz 。

说明: pigz是一个高效的压缩工具,可以将多核CPU的每一分剩余性能都用来做压缩计算。而传统的gzip则只能用单核CPU。比如一台2个8core cpu服务器采用pigz和gzip压缩相同的数据,一般性能差距至少在7-8倍以上(一般不会达到理论的16倍,因为受限于磁盘的读写速度和内存等资源)。

使用tar+pigz+ssh实现大数据的高效传输的更多相关文章

  1. tar+pigz+ssh实现大数据压缩传输

    磁盘读取---->打包---->压缩------>传输---->解压缩-->拆包---->落盘 |->tar     |->gzip      |-&g ...

  2. C#大数据文本高效去重

    C#大数据文本高效去重 转载请注明出处 http://www.cnblogs.com/Huerye/ TextReader reader = File.OpenText(@"C:\Users ...

  3. JDBC之 大数据内容的传输

    JDBC之 大数据内容的传输 什么是大数据内容? 在数据库中,有一条一条的记录,记录中很多字段都是几个字符就够的,假如现在要把一部小说存入数据库,这本小说当然不是几个字符组成,而是由几万字组成,这本小 ...

  4. WebService - 怎样提高WebService性能 大数据量网络传输处理

    直接返回DataSet对象 返回DataSet对象用Binary序列化后的字节数组 返回DataSetSurrogate对象用Binary序列化后的字节数组 返回DataSetSurrogate对象用 ...

  5. C# 之 提高WebService性能大数据量网络传输处理

    1.直接返回DataSet对象 特点:通常组件化的处理机制,不加任何修饰及处理: 优点:代码精减.易于处理,小数据量处理较快: 缺点:大数据量的传递处理慢,消耗网络资源: 建议:当应用系统在内网.专网 ...

  6. Python socket ssh接收大数据

    通过socket连续接收返回数据 Server服务端 import socket,os server = socket.socket() server.bind(('localhost',9999)) ...

  7. WebService下实现大数据量的传输

    设置RemotingFormat = SerializationFormat.Binary;再序列化,通过WebService传输,客户端接收,再反序列化,确实效果大大的优于直接传送DataSet,不 ...

  8. 大数据攻城狮之Hadoop伪分布式篇

    对于初学大数据的萌新来说,初次接触Hadoop伪分布式搭建的同学可能是一脸萌笔的,那么这一次小编就手把手的教大家在centos7下搭建Hadoop伪分布式. 底层环境: VMware Workstat ...

  9. 追本溯源 解析“大数据生态环境”发展现状(CSDN)

    程学旗先生是中科院计算所副总工.研究员.博士生导师.网络科学与技术重点实验室主任.本次程学旗带来了中国大数据生态系统的基础问题方面的内容分享.大数据的发展越来越快,但是对于大数据的认知大都还停留在最初 ...

随机推荐

  1. 破产姐妹第六季/全集2 Broke Girls迅雷下载

    英文全名2 Broke Girls,第6季(2016)CBS. 本季看点:<破产姐妹>第五季季终集达到了收视人数699万收视率1.7.在第五季终集,两姐妹发现Han(马修·摩伊 饰)的生活 ...

  2. 管道命令和xargs的区别

    一直弄不懂,管道不就是把前一个命令的结果作为参数给下一个命令吗,那在 | 后面加不加xargs有什么区别NewUserFF 写道:懒蜗牛Gentoo 写道:管道是实现“将前面的标准输出作为后面的标准输 ...

  3. Java NIO ServerSocketChannel

    A Java NIO ServerSocketChannel is a channel that can listen for incoming TCP connections, just like ...

  4. B样条

    在数学的子学科数值分析里,B-样条是样条曲线一种特殊的表示形式.它是B-样条基曲线的线性组合.B-样条是贝兹(贝塞尔)曲线的一种一般化,可以进一步推广为非均匀有理B样条(NURBS),使得我们能给更多 ...

  5. frp错误处理:login to server failed: authorization failed

    frp使用过程中会出现各种错误信息,有些朋友不太清楚,打算记录一些常见的错误返回代码,这里介绍一下frpc客户端[W] [control.go:111] login to server failed: ...

  6. 第一章 Java加解密简介

    1.加密算法: 移位.替代(古典加密) 对称加密:DES.AES 非对称加密:RSA 散列函数算法(单向加密):MD5.SHA.Mac 数字签名算法:RSA.DSA 其中,前三种主要完成数据的加解密: ...

  7. 关于微软C#中的CHART图表控件的简单使用【转】

    最近公司项目要用到Chart图表控件,这是一个比较老的东西了,目前网络上似乎已经不太流行这个控件,但是只要配置了相关的属性,效果还是可以的.前前后后摸索了好久,接下来谈谈这个件控件最重要的几个属性. ...

  8. 0mq 入门 (转)

    最近做后台发现很多地方需要队列,我用东西一般有两个要求:     1) 够傻够简单.    2) 有源码,能看又能改.    最后相中了0mq,下面介绍如何安装和写个简单的例子.一. linux平台: ...

  9. winform中RichTextBox在指定光标位置插入图片

    代码如下: //获取RichTextBox控件中鼠标焦点的索引位置 int startPosition = this.richTextBox1.SelectionStart; //从鼠标焦点处开始选中 ...

  10. iOS开发-iOS8地理位置定位

    现在的App基本上都有定位功能,旅游网站根据定位推荐旅游景点,新闻App通过地理位置推荐当地新闻,社交类的App通过位置交友,iOS中实现以上功能需要一个核心的框架CoreLocation,框架提供了 ...