2 hadoop之HDFS的shell和JAVA API操作

本文详细介绍了如何使用shell脚本和Java API操作Hadoop的HDFS。首先,展示了如何配置环境变量、创建目录并设置日志文件上传路径,接着通过shell脚本实现实时将日志文件上传到HDFS。然后,讲解了Java API的使用,包括创建Maven项目,配置pom.xml,创建并初始化HDFS客户端,以及上传文件到HDFS的步骤。通过这些实践操作,读者能够掌握HDFS的基本操作技巧。
摘要由CSDN通过智能技术生成

  • 一、shell定时采集数据到HDFS

    1.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、设置日志文件上传的路径

    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、实现文件上传

    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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值