问题背景
最近在尝试将hadoop中文件信息导入ELK,并分析冷数据;部分效果图如下
但是近期发现crontab脚本同步最新的fsimage时正常,但是无法正常转换成csv格式
初期以为是生成的文件已存在导致,后续将生成文件按时间戳明明后依然无法生成
今天刚好有时间准备分析一下
问题分析过程
整个cronta脚本如下:
FsImage=`ssh 172.20.xx.xx "ls -art /disk1/hadoop/dfs/hadoop-nn1/current/fsimage* |grep -v md5|tail -1"`
mkdir /root/fsimage-analysis/fsimages
scp 172.20.xx.xx:$FsImage /root/fsimage-analysis/fsimages/fsimage_`date +%F`
hdfs -oiv -i ../fsimages/fsimage_2021_03_02 -o /root/fsimage-analysis/csv/fsimage_`date +%F`.csv -p Delimited -delimiter ","
1、首先将前面几行注释;调整crontab时间,观察新的文件是否生成,发现文件并未实际生成
2、修改脚本内容,将日志打印出来,再次调整crontab时间
发现文件没有生成,日志里提示缺少JAVA_HOME
初步怀疑hdfs 命令需要依赖java,需要在crontab中设置
我的java路径在/usr/bin/中,所以这里的JAVA_HOME设置成/usr
设置完成后调整crontab时间,再次查看
发现可以正常执行,问题解决