对于hadoop目录中的所有文件,计算md5校验和

IAM使用hadoop apache 2.7.1在centos和iam新增到centos

如果我想计算md5校验和的特定文件在hadoop我可以发出以下命令

hdfs dfs -cat /hadoophome/myfile | md5sum 

但如何如果我想计算md5校验和hadoophome hdfs目录中的所有文件

我的意思是如何编写一个脚本来遍历/ hadoophome中的所有文件,这是特定的hdfs目录,然后将每个文件名加上它的新行md5校验和写入一个包含所有结果的文件

注意:我被迫捕捉hdfs文件,然后使用该文件的md5sum而不是

 hadoop fs -checksum 

因为我想要md5的价值

我从下面的脚本开始

 for i in $(hadoop fs -ls /hadoophome | sed '1d;s/ */ /g' | cut -d\ -f8 ); do hdfs dfs -cat "$i" | md5sum ; done; 

您可以使用find命令对在给定目录中find的每个文件及其子目录exec命令,然后将输出redirect到另一个文件:

# find /hadoophome -type f -exec md5sum "{}" \; >> /tmp/file-list.txt

输出如下所示:

 # find /bin/ -type f -exec md5sum "{}" \; ...snip... 2de30aeb16259b7051520d2c6c18b848 /bin/mlnx_dump_parser e1f7d74a86c8fa85588e239f974a6d24 /bin/ibv_task_pingpong 9fbb31d5760f35911eeb644d99c615ab /bin/mlnx_get_vfs.pl 9f43d9718c5e41727a6520080158b494 /bin/flint_ext 2f315aa63072d96718e7fe268643869c /bin/mlnx_perf f31173018f34839e24d5ecf25c811a30 /bin/fwtrace 361cb80244b429f4df29ea2555eee134 /bin/mlnx_qcn c17cd67a2e996881d9157ec30b7b215f /bin/mdevices_info 49f03faf85a80d54eedea5ef69358f01 /bin/mlnx_qos ...snip...