我正在用Flume收集日志到HDFS.对于测试用例,我有小文件(~300kB),因为日志收集过程是根据实际用途进行缩放的.
有没有简单的方法将这些小文件组合成更接近HDFS块大小(64MB)的较大文件?
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)
归档时间: |
|
查看次数: |
2018 次 |
最近记录: |