题目一:编写一个Shell脚本,实现以下功能1:在HDFS在/目录下创建一个用户目录:itcast2:在HDFS用户目录itcast下创建日志目录:log3:在HDFS的log目录下创建三个主机目录:node1node2nod3创建完之后,效果如下:4:每隔一个小时(提醒:sleep3600),分别对每台主机的/export/server/hadoop-2.7.5/logs目录下的.log文件进行压缩,压缩文件存放到每台主机的/export/data目录,压缩文件格式:log_2021_01_07_175636.tar.gz5:每隔1个小时(提醒:sleep3600),分别将每台主机的/export/data下的压缩后的日志文件上传对/itcast/log下的对应主机目录下,日志上传到HDFS之后,原来本地的日志压缩包要删除效果如下:#!/bin/bash#主机地址存放目录HOSTS=${HADOOP_HOME}/etc/hadoop/slaves#HADOOP_BINHADOOP_BIN=${HADOOP_HOME}/bin#分别创建hdfs各主机文件对应备份目录forhostin$(cat$HOSTS)doecho"创建集群/itcast/log/${host}目录"hadoopfs-mkdir-p/itcast/log/${host}echo"目录创建完毕!"done#日志目录LOGDIR=/export/server/hadoop-2.7.5/logs#备份路径BACKUP=/export/data#开启备份whiletruedoforhostin$(cat$HOSTS)doecho"备份时间:北京时间$(date+%Y-%m-%d_%H:%M:%S)"echo"---------------------开始备份${host}日志数据---------------------"#备份时间BACKUPTIME=$(date+%Y_%m_%d_%H%M%S)#备份文件名BACKUPNAME=log_${BACKUPTIME}.tar.gzecho"进入${LOGDIR}目录"#进入日志目录,备份日志到目标文件夹echo"将log相关文件备份至${BACKUP}/${BACKUPNAME}"sshroot@${host}"cd${LOGDIR};mkdir${BACKUPTIME};cp*.log${BACKUPTIME};tar-czvf${BACKUP}/${BACKUPNAME}./${BACKUPTIME};rm-rf${BACKUPTIME};"#移动hadoop日志文件到hdfs集群echo"移动文件至集群/itcast/log/${host}"sshroot@${host}"${HADOOP_BIN}/hadoopfs-moveFromLocal${BACKUP}/${BACKUPNAME}/itcast/log/${host}"echo"-------------------------${host}日志备份结束-------------------------"donesleep3600done题目二:使用自己的话(面试)描述HDFS上传文件流程题目三:使用自己的话(面试)描述HDFS下载文件流程选做题(可以不做):题目四:使用HDFS的JavaAPI封装一个方法uploadDirToHDFS(StringlocalDirPath,StringhdfsPath),要求传入一个文件夹路径和HDFS路径,将该文件夹的下所有子文件夹和文件上传到指定的HDFS路径下。importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop....