我的工作在SunOS(这是轻微脑死亡)。 以下是磁盘吞吐量为上述的Solaris机 -
bash-3.00$ iostat -d 1 10
sd0 sd1 sd2 sd3
kps tps serv kps tps serv kps tps serv kps tps serv
0 0 0 551 16 8 553 16 8 554 16 8
0 0 0 701 11 25 0 0 0 1148 17 33
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
问题陈述
我有大约1000 files
和每个文件是大小1GB
。 我需要找到一个String
在所有这些1000 files
,并哪些文件包含特定字串。 我有工作Hadoop File System
和所有的1000 files
是在Hadoop中的文件系统。
所有的1000 files
正在real-time
文件夹,所以如果我不喜欢这个下面,我将让所有的1000 files
。 我需要找到哪些文件包含一个特定的字符串。
bash-3.00$ hadoop fs -ls /apps/technology/b_dps/real-time
因此,对于上述问题的陈述,我使用下面的命令,将发现所有的文件,其中包含了特定的与字符串
hadoop fs -ls /apps/technology/b_dps/real-time | awk '{print $8}' | while read f; do hadoop fs -cat $f | grep cec7051a1380a47a4497a107fecb84c1 >/dev/null && echo $f; done
因此,在上述情况下,它会找到所有包含此字符串cec7051a1380a47a4497a107fecb84c1的文件。 而且它的工作对我罚款,我能够得到含有特定字符串的文件名。
我的问题是-
但随着上述命令的问题是,它是非常非常慢 。 那么,有没有办法,我们可以parallelize
上面的命令,或者上面的命令来搜索文件的速度快了很多?
任何建议将不胜感激。