题目描述:
定时将HDFS指定目录下的多个日志文件下载到Linux本地磁盘中,并且合并为一个文件。
1:假设HDFS上有一个目录 hdfs://bigdata01:9000/d2/20210101,此目录中会有多个日志文件
```
[root@bigdata01 ~]# hdfs dfs -ls hdfs://bigdata01:9000/d2/20210101
-rw-r--r-- 2 root supergroup 1361 2021-01-01 00:01 /user_00.log
-rw-r--r-- 2 root supergroup 1361 2021-01-01 01:01 /user_01.log
-rw-r--r-- 2 root supergroup 1361 2021-01-01 02:01 /user_02.log
省略....
-rw-r--r-- 2 root supergroup 1361 2021-01-01 23:01 /user_23.log
```
注意:默认情况下每天会产生一个新的日期目录,每小时产生1个日志文件,所以一天会产生24个日志文件
2:定时任务可以将前一天日期目录中的日志数据最终合并输出到本地的一个日志文件中
效果:
最终会在Linux本地产生类似这样的文件
```
[root@bigdata01 ~]# ls /data/d2/20210101
-rw-------. 1 root root 9999 Jan 02 01:00 user.log
```
任务要求:
1:开发脚本实现此需求,需要兼容脚本重跑补数据的情况
2:脚本支持crontab定时调度,每天读取前一天HDFS中指定日期目录中的数据
3:脚本每天凌晨1点执行,将HDFS中昨天的数据下载到Linux本地
任务提示、思路分析:
1:参考课程中定时上传数据至HDFS的实战内容
2:合并文件的时候可以考虑使用追加重定向功能 >>