程序员应如何分析、处理海量数据?

来源:北大青鸟飞迅校区|发布时间:2013-04-17 16:44:52

  在这个云计算热炒的时代,如果你没有处理过海量数据的话,你将不再是个合格的Coder。现在赶紧补补吧~

  前一阵子分析了一个将近1TB的数据群(gz文件,压缩率10%)。因为第一次分析如此巨大的数据,没有经验,所以浪费了许多时间。下面是我整理的一些经验,方便后者。

  欢迎各种补充,我会不断更新这篇文章;觉得有用的话,速度分享链接;有不同意见的话,请果断拍砖;

  下载数据

  Q:怎么自动下载多个文件?

  这是我遇到的第一个问题。当数据量很大时,一般都会分成很多个文件存放。这时下载文件比较麻烦。

  A:用Wget命令。Windows下花费一点时间去下载安装。但之于手动下载,能省不少时间。

  我提供两种方式方式下载文件,

  a)用Wget的递归下载选项 “-r”。一般命令如下

  wget –r http://<下载数据的根目录>/ -o <下载记录文件名> -np

  因为递归下载没法控制进度,所以建议不一要次递归下载太多的文件

  b)用Bat+Wget,多次执行Wget。一般命令如下

  wget –r http://<下载数据的根目录分支1>/ -o <下载记录文件名> -np

  wget –r http://<下载数据的根目录分支2>/ -o <下载记录文件名> -np

  wget –r http://<下载数据的根目录分支3>/ -o <下载记录文件名> -np

  …… ……

  wget –r http://<下载数据的根目录分支N>/ -o <下载记录文件名> -np

  用Bat可以降低出错带来的影响。

  另外,Wget可以通过 –A 选项来指定希望下载的文件的后辍,通过 –P 选项来指定下载文件存放路径。更多命令,参见wget -h

  Q:这速度。。。什么时候才能下完?

  网速永远是个瓶颈

  A:如果下载服务很远的话,你应该考虑代理。wget设置代理的方式如下

  set http_proxy=http://<代理服务器>

  不要忘了多开几个进程,20个试试?

  打开文件

  Q:怎么打开文本文件

  这不是弱智问题。你用记事本打开一个1000MB的文件试试

  A:LTF viewer

  Large Text File viewer, 打开速度会让你惊奇

  Q:怎么打开二进制文件

  A:Hex Editor Neo

  你可以通过下面方式来选择进制:

  右击数据区 => Display As => Hex|Decimal|Octal|Binary|Float|Double

  你可以通过下面方式来选择按多少字节显示:

  右击数据区 => Group By => Bytes|Words|Double|Quad

  编程语言

  当数据量很大时,选择语言要慎重了。因为不同语言有不同的特点,你要在编程时间和运行时间之间权衡。

  模型测试

  开始时,一般挑几个小的数据进行测试,获取第一份分析结果。这时当然希望能快速编程实现。脚本语言是一个很好的选择,比如Python。

上一篇:程序员Hacker传说之不能说的秘密
下一篇:关于编程的10个至理名言,值得一看

热门话题

招生热线: 4008-0731-86 / 0731-82186801

学校地址: 长沙市天心区团结路6号

Copyright © 2006 | 湖南大计信息科技有限公司 版权所有

湘ICP备14017520号-3

关注我们
在线咨询
嘿,我来帮您!