记录一下
find . -type f -mtime +7 | xargs rm -rf -P10 -n20
详细可参考:xargs原理及用法详解 - 【The_crossing] - 博客园
并发实现多文件上传hdfs
在Linux中,你可以使用find命令结合xargs来查找多个文件,并且通过xargs的并发特性来将这些文件并发上传到HDFS(Hadoop Distributed File System)。下面是一个基本的示例流程:
首先,你需要确保你有Hadoop命令行工具(如hdfs dfs)已安装并正确配置,以便能够上传文件到HDFS。
以下是步骤:
-
使用
find命令查找特定模式的文件。 -
使用
-print0选项将找到的文件列表以null字符(\0)作为分隔符输出,这样可以处理包含空格和特殊字符的文件名。 -
将
find命令的输出传递给xargs。 -
使用
xargs的-P选项来指定并发进程数,以及-n选项来指定每个进程处理的参数数量。 -
使用
hdfs dfs -put命令来上传文件到HDFS。
下面是一个命令示例:
复制代码find /path/to/search -type f -name "*.txt" -print0 | xargs -P 4 -n 10 -0 hdfs dfs -put -f /path/to/hdfs/
这里的命令解释:
/path/to/search:你需要搜索的本地路径。-type f -name "*.txt":指定搜索类型为文件,并且文件名匹配模式为.txt。-print0:使用null字符作为文件名的分隔符。-P 4:同时运行最多4个并发进程。-n 10:每个hdfs dfs -put命令最多接收10个文件参数。-0:告诉xargs输入是以null字符作为分隔符的。hdfs dfs -put -f:Hadoop命令行工具的命令,用于上传文件到HDFS,-f选项表示如果目标文件已经存在,则覆盖它。/path/to/hdfs/:HDFS上的目标路径。
请注意,HDFS的命令和选项可能根据你的Hadoop版本有所不同。此外,并发上传的数量(-P)和每个命令的参数数量(-n)应该根据你的系统资源和HDFS集群的性能进行调整。
确保你拥有足够的权限来上传文件到HDFS,并且HDFS集群已经启动并运行。如果你的HDFS配置了高可用性,你可能需要确保你的Hadoop配置文件(如hdfs-site.xml和core-site.xml)正确配置了HDFS的地址和nameservices。
本文介绍如何在Linux环境中使用find与xargs命令结合Hadoop的hdfsdfs-put工具,实现文件的并发上传至HDFS.具体步骤包括使用find定位文件,-print0选项处理特殊字符文件名,xargs设置并发进程与参数数量,最后调用hdfsdfs-put上传文件.需注意HDFS命令与选项可能随Hadoop版本变化,并发数量与参数数量应依据系统资源调整.
4733

被折叠的 条评论
为什么被折叠?



