Mapreduce 如何将文件作为HAR存档导入HDFS?在爪哇
目前,我们正在通过调用hadoop的FileSystem API中的Mapreduce 如何将文件作为HAR存档导入HDFS?在爪哇,mapreduce,hdfs,har,Mapreduce,Hdfs,Har,目前,我们正在通过调用hadoop的FileSystem API中的org.apache.hadoop.fs.FileSystem.moveFromLocalFile()方法将文件导入HDFS,现在我们在namenode中遇到一些较大的堆大小,因为导入的小文件太多,我们希望减少它。是否有更简单的方法将文件作为HAR导入HDFS,而不必首先导入所有小文件?简而言之,我导入了小文件,但在HDFS中有一个HAR文件包含我导入的文件。无法直接将HAR(Hadoop存档)文件摄取到HDFS中 更好的方法是
org.apache.hadoop.fs.FileSystem.moveFromLocalFile()
方法将文件导入HDFS,现在我们在namenode中遇到一些较大的堆大小,因为导入的小文件太多,我们希望减少它。是否有更简单的方法将文件作为HAR导入HDFS,而不必首先导入所有小文件?简而言之,我导入了小文件,但在HDFS中有一个HAR文件包含我导入的文件。无法直接将HAR(Hadoop存档)文件摄取到HDFS中
更好的方法是,首先将较小的文件复制到HDF中,然后通过将所有这些较小的文件合并在一起创建一个HAR文件
您可以使用hadoop archive
(用法:hadoop archive-archiveName{archive名称}-p{Input parent folder path}{Output folder path})命令创建HAR文件,创建HAR文件后,可以删除原始文件
如果有数百万个小文件,那么您可以将这些文件分块复制
例如,假设您有100000个小文件。一种可能的办法: