草庐IT

小文件

全部标签

php - 如何使用 PHP 将一个大的 XML 文件拆分成多个小文件?

我的XML文件包含超过300000个条目,我的脚本每天都必须解析这些条目..xml的结构为:我需要将大的XML文件拆分成较小的文件,以便我的PHP可以运行它们,目前它无法处理它,因为它使用了太多内存。任何人都可以帮助我吗? 最佳答案 很大程度上取决于您的XML文件结构。例如,您可以这样做(假设结构是您发布的结构,包括回车,否则事情会变得更复杂):断行版本:如果格式“恰到好处”,则可以快速切割大型XML文件如果文件格式不完全一样,则崩溃和刻录$fp=fopen(XMLFILE,'r');$decl=fgets($fp,1024);//

PHP:以最快或/和最有效的方式编写大量小文件

想象一下,一个事件将有10,000到30,000个文件,每个文件大约4kb。而且,将有几个事件同时运行。10顶。目前,我将采用通常的方式:file_put_contents.它完成了工作,但速度很慢,而且它的php进程一直占用100%的CPU使用率。fopen,fwrite,fclose,嗯,结果类似于file_put_contents.我试过一些异步io的东西,比如phpeio和swoole.它更快,但一段时间后会产生“太多打开的文件”。php-r'echoexec("ulimit-n");'结果是800000。任何帮助,将不胜感激!好吧,这有点尴尬……你们是对的,瓶颈在于它如何生成

php - 使用 PHP 网络传输大量小文件的快速方法

我在同一个局域网中有2个Linux服务器。使用PHP,我需要将100000个小(10KB)文件从服务器A复制到服务器B。现在我正在使用ssh2_scp_send并且它非常慢(20分钟内10K个文件)。如何让它更快? 最佳答案 通过SSH隧道使用gzip压缩的TAR非常快。数量级比纯scp快,特别是对于许多小文件。以下是linux命令行的示例:user@local#cd/source/;tarczf-*|sshuser@remote"cd/target/;tarxzf-"更新:根据要求,这里您使用纯PHP解决方案-摆弄这个棘手的部分很

java - 用 Java 快速编写数百万个小文本文件的方法?

我必须转储包含大约100-200个字符的600万个文件,而且速度非常慢。实际慢的部分是文件写入,如果我注释掉该部分(调用WriteSoveraFile方法),整个过程将在5-10分钟内运行。事实上,我整夜运行它(16小时)并完成了200万条记录。有没有更快的方法?创建一个数组数组然后一次性全部转储会更好吗?(我的系统只有4GB,这样消耗6GB的数据不会死吗?)程序如下:publicstaticvoidWriteSoveraFile(StringfileName,Stringpath,Stringcontents)throwsIOException{BufferedWriterbw=nu

(14)Hive调优——合并小文件

目录一、小文件产生的原因二、小文件的危害三、小文件的解决方案3.1小文件的预防3.1.1减少Map数量 3.1.2减少Reduce的数量3.2已存在的小文件合并3.2.1方式一:insertoverwrite(推荐) 3.2.2方式二:concatenate 3.2.3方式三:使用hive的archive归档3.2.4方式四:hadoop getmerge一、小文件产生的原因数据源本身就包含大量的小文件,例如api,kafka消息管道等。动态分区插入数据的时候,会产生大量的小文件,从而导致map数量剧增;;reduce数量越多,小文件也越多,小文件数量=ReduceTask数量*分区数;hiv

快速、安全、高效地传输海量小文件

随着互联网技术的不断进步,我们正迈入信息爆炸的时代。在这个时代,企业每天都需要在互联网上传输海量的小文件。与传输常见的大文件相比,海量小文件的传输变得更加困难。接下来,我们将分析海量小文件传输面临的挑战,并介绍一种高效的传输解决方案。一、海量小文件传输的挑战传输效率低下:由于小文件数量众多,传统传输方式效率极低。比如,要传输1万个1MB的小文件,即使在千兆带宽环境下,使用FTP或HTTP也需要很长时间。文件管理难度大:海量小文件带来的另一问题是文件管理的困难。由于文件数量庞大,进行有效的管理和跟踪变得非常复杂。文件大小不一还容易导致传输中断或文件丢失。安全风险高:在海量小文件传输中,安全风险显

5、Linux:如何将大文件切割成多份小文件

最近,在做数据文件的导入操作时,发现有些文本文件太大了,需要将这样的大文件切分成多个小文件进行操作。那么,Linux中如何将大文件切割成许多的小文件呢?在此记录一下。Linux提供了split命令可以轻松实现大文件的分割,其命令格式如下:split[操作大文件的参数][大文件][输出文件的可选参数][输出文件名]其中,操作大文件的参数,有多种切分模式:- 或-l :按行数切割,比如-100,表示每100行切分成一个小文件。-b或 -C :按字节数切割,比如50M,表示每50M切分成一个小文件。-b与-C的区别是,-C按字节切割的同时会尽量保证每行的完整性。输出文件的可选参数,控制输出文件形式:

java - Hadoop MapReduce 小文件内存不足

我正在针对Hadoop上大约300万个小文件运行MapReduce作业(我知道,我知道,但我们对此无能为力-这是我们源系统的性质)。我们的代码没有什么特别的-它使用CombineFileInputFormat将一堆这些文件包装在一起,然后解析文件名以将其添加到文件的内容中,并吐出一些结果。简单易行。因此,我们在HDFS中有大约300万个~7kb的文件。如果我们针对这些文件的一小部分(一个文件夹,可能有10,000个文件)运行我们的任务,我们不会遇到任何麻烦。如果我们针对完整的文件列表运行它,则会出现内存不足错误。错误出现在STDOUT上:##java.lang.OutOfMemoryE

hadoop - 使用 PIG 处理小文件

根据我的理解,Map/Reduce对于大文件效果更好。(我理解这是由于拆分逻辑等),我们可以将文件作为值和文件名作为序列文件中的键并进行优化。现在的问题是我正在使用PIG进行分析,我们有大约数千个文件,但所有文件都以KB为单位。正如我们所知,piglatin被转换并作为MR作业运行,所以我怀疑MR作业会因为小文件而效率低下。有什么方法可以控制通过pig处理的小文件吗?有开箱即用的解决方案吗? 最佳答案 Pig具有将小文件组合成大块的功能:http://pig.apache.org/docs/r0.11.1/perf.html#com

java - 合并大量小文件以进行 mapreduce 输入

我是Hadoop和MapReduce的新手。我们正在开发一个网络监控工具(在java中)。我们定期收集被监控设备的各种信息,比如每5秒一次。并通过java客户端将该信息作为新文件写入HDFS(因为我们没有使用hdfs附加工具)。在HDFS中,我们的数据组织将是这样的:/monitored_info/f1.txt/f2.txt......./f1020010.txt因此每个文件的大小通常小于2KB。我知道每个maptask最多可以占用1个文件,它会产生与maptask一样多的文件,并且工作效率低下。为了摆脱这种情况,我们在提交作业之前使用了FileUtil的合并功能:FileUtil.c