-
一、shell定时采集数据到HDFS
1.1、配置环境变量以及日志存放目录
-
(在hadoop01上执行,并且启动HDFS集群)
1、输入指令cd /export/data/进入此目录,并输入指令ls查看。若此目录不存在,则输入指令mkdir -p /export/data/logs来创建这样一个目录。
2、输入指令cd /export/data/logs/来进入logs这个目录内,然后输入指令vi upload2HDFS.sh来进入脚本文件,并输入以下红色字体的内容后进行保存退出。(注意:蓝色字体分别是Java和hadoop的安装目录)
#!/bin/bash
#配置Java环境变量
JAVA_HOME=/export/software/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#配置hadoop环境变量
export HADOOP_HOME=/export/software/hadoop/
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
#日志文件存放的目录,需手动创建
log_src_dir=/export/data/logs/log/
#待上传文件存放的目录,需手动创建
log_toupload_dir=/export/data/logs/toupload/
3、执行命令:mkdir -p /export/data/logs/log来创建日志存放目录,执行命令mkdir -p /export/data/logs/toupload来创建文件上传目录。并输入ls指令查看是否创建成功。
1.2、设置日志文件上传的路径
-
再次输入指令vi upload2HDFS.sh来进入脚本文件,并输入相关的设置日志的文件信息,输入内容为:
#设置日期
date1=`date +%Y_%m_%d`
#日志文件上传到hdfs的根路径
hdfs_root_dir=/data/clickLog/$date1/
#打印环境变量信息
echo "envs: hadoop_home: $HADOOP_HOME"
#读取日志文件的目录,判断是否有需要上传的文件
echo "log_src_dir: $log_src_dir"
1.3、实现文件上传
-
再次输入指令vi upload2HDFS.sh来进入脚本文件,并输入相关的实现文件上传的内容,输入内容为:
ls $log_src_dir | while read fileName
do
if [[ "$fileName" == access.log.* ]]; then
date=`date +%Y_%m_%d_%H_%M_%S`
#将文件移动到待上传目录并重命名
echo "moving $log_src_dir$fileName to $log_toupload_dir"lzy_click_log_$fileName"$date"
mv $log_src_dir$fileName $log_toupload_dir"lzy_click_log_$fileName"$date
-
2 hadoop之HDFS的shell和JAVA API操作
最新推荐文章于 2024-07-21 19:55:43 发布
本文详细介绍了如何使用shell脚本和Java API操作Hadoop的HDFS。首先,展示了如何配置环境变量、创建目录并设置日志文件上传路径,接着通过shell脚本实现实时将日志文件上传到HDFS。然后,讲解了Java API的使用,包括创建Maven项目,配置pom.xml,创建并初始化HDFS客户端,以及上传文件到HDFS的步骤。通过这些实践操作,读者能够掌握HDFS的基本操作技巧。
摘要由CSDN通过智能技术生成