如何利用GNU Parallel工具在单机上处理百万级数量规模的文件

本文介绍了如何在面临大量小文件数据处理难题时,通过GNU Parallel工具实现单机上的并行处理,有效提升效率。讨论了cat命令的限制,以及使用简单遍历方法的低效,并详细解释了GNU Parallel的工作原理和优化效果,提供不同操作系统下的安装指南。
摘要由CSDN通过智能技术生成

进行数据处理的时候我们经常会遇到这样的情况:一个数据集由一大堆很小的文件组成,这些小文件格式相同,可能是系统的日志文件或者产自传感器等终端。如下图:1234567个文件的总和才20GB左右。

处理这样的数据集给我们带来了如下的问题:

1)  当数据分散在这些大量的独立的小文件的时候,分析很困难。

2)  这些文件的总和超出了单机内存的容量,无法一次性全部载入,处理起来效率很低。

3)  使用分布式框架如hadoop虽然不用担心文件总大小的问题,但是单个文件又太小,HDFS中文件都是以block(64M)的形式存储,实际上HDFS主要是为了流式的访问大文件而设计的,处理大量小文件时候的效率非常低。

所以,我们能不能在单机上将这百万级数量的文件拼接成一个大文件后再处理?

使用linux操作系统的人想必对cat命令相当熟悉,cat命令可以将多个文件拼接成一个文件,这样,似乎一下子就可以解决文件数太多数据太分散的问题了。所以,我们很自然就有了如下的尝试:

$ cat * >> out.txt

然而,结果却并非如我们所愿,居然报错了!

<pre name="code" class="plain">-bash: /bin/cat: Argument lis
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值