哪种组合小型HDFS块最简单?

KAR*_*ván 6 hadoop hdfs flume

我正在用Flume收集日志到HDFS.对于测试用例,我有小文件(~300kB),因为日志收集过程是根据实际用途进行缩放的.

有没有简单的方法将这些小文件组合成更接近HDFS块大小(64MB)的较大文件?

KAR*_*ván 5

GNU coreutils 拆分可以完成工作.

如果源数据是行 - 在我的情况下它们是 - 并且一行是围绕的84 bytes,那么HDFS块64MB可以包含800000行:

hadoop dfs -cat /sourcedir/* | split --lines=800000 - joined_
hadoop dfs -copyFromLocal ./joined_* /destdir/
Run Code Online (Sandbox Code Playgroud)

--line-bytes选项:

hadoop dfs -cat /sourcedir/* | split --line-bytes=67108864 - joined_
hadoop dfs -copyFromLocal ./joined_* /destdir/
Run Code Online (Sandbox Code Playgroud)