提起Flume, 就先讲一下它的基本作用, 它可以从不同的数据源导入到一个集中的地方存放起来,基本架构如下图所示

*上图为Flume Data Flow Model, Ref: Flume 1.9.0 User Guide

本篇文章会做一个小demo, 数据从spooling directory来(而不是官网图中画的Web Server), 先经过channel, 再写入HDFS

*Note: Flume的source, channel和sink的类型非常多,所以本次用的source是Spooling Directory Source, Sink是 HDFS Sink, Channel是Memory Channel

前提准备

搭建HDFS环境, 可以参考以下文章

Richie:Hadoop -- 1. 从零搭建HDFS​zhuanlan.zhihu.com

配置Flume

从下面的官网直接下载Flume编译好的包(Apache Flume binary)

Download - Apache Flume​flume.apache.org

解压放在某个路径下, 然后把flume加入环境变量, 如下

export FLUME_HOME=/Path_To_Your_Flume_Dir/flume-1.8.0
export PATH=$PATH:$FLUME_HOME/bin

之后记得source以下, 例如

source ~/.zshrc

创建spool dir

spool dir其实就是一个目录, 所以和创建目录的指令都一致

mkdir /path_to_your_spooldir

为source和sink配置config文件

这里先命名为hdfs.conf吧

agent1.sources = source1
agent1.sinks = sink1
agent1.channels = channel1agent1.sources.source1.channels = channel1
agent1.sinks.sink1.channel = channel1agent1.sources.source1.type = spooldir
agent1.sources.source1.spoolDir = /path_to_your_spooldiragent1.sinks.sink1.type = hdfs
agent1.sinks.sink1.hdfs.path = /tmp/flume
agent1.sinks.sink1.hdfs.filePrefix = events
agent1.sinks.sink1.hdfs.fileSuffix = .log
agent1.sinks.sink1.hdfs.inUsePrefix = _
agent1.sinks.sink1.hdfs.fileType = DataStreamagent1.channels.channel1.type = memory

启动Flume

cd /to_your_flume_home_dir
flume-ng agent --conf-file /path_to_your_hdfs.conf --name agent1 --conf conf -Dflume.root.logger=INFO,console

写入Spool Dir

cd /to_your_spool_dir
echo "Hello Flume" > .file1.txt
mv .file1.txt file1.txt

*Note: 这里解释一下为什么先写入隐藏文件, 然后再重命名了一下. 这是为了避免写了部分文件的时候, 就被flume source读取了, 所以我们先写入隐藏文件, 然后做个原子操作-重命名,之后flume就可以读到完整的文件了

在HDFS中查看写入内容

hdfs dfs -ls /tmp/flume

然后看一下.log文件中的内容

hdfs dfs -cat /tmp/flume/events.1547361342874.log

可以看到截图最后一行“Hello Flume”, 证明成功写入HDFS

hadoop重命名文件_Hadoop -- 3. 从Flume到HDFS相关推荐

  1. hadoop重命名文件_hadoop HDFS常用文件操作命令

    命令基本格式: hadoop fs -cmd < args > 1.ls hadoop fs -ls / 列出hdfs文件系统根目录下的目录和文件 hadoop fs -ls -R / 列 ...

  2. hadoop重命名文件_面试系列:深入理解hadoop架构体系

    hadoop组件简介 官方文档组织的非常清晰,主要由以下四个组件组成:HDFS.map-reduce.yarn.hadoop-common hdfs架构 HDFS 分布式文件存储系统,主要特点是: 可 ...

  3. Python 标准库之 os (获取当前目录、读取/设置环境变量、重命名文件、运行shell命令、创建/删除/查看目录文件、判断目录/文件/存在、获取绝对路径、获取文件名、获取换行符、获取路径分隔符)

    1. os与sys模块的官方解释如下: os This module provides a portable way of using operating system dependent funct ...

  4. 小技巧 | 使用 mv 重命名文件无需两次键入文件名称

    使用过 Bash 的童鞋都知道 mv 是一个可以用于文件改名的命令,而且使用这个命令修改文件名时我们需要输入两次文件名(旧名字和新名字). 如果有一种情况是只需要你改动文件名中的一个字母,而文件名又特 ...

  5. python 复制 移动 重命名文件

    python 复制 移动 重命名文件 import os import shutil # 复制文件: shutil.copyfile("oldfile", "newfil ...

  6. python pandas rename_使用Pandas重命名文件

    我试图用excel工作表和pandas重命名文件,但是我一直收到一个IO错误.在"文件名"列中,我有原始文件名以及"重命名"列中的原始文件名.我知道还有其他方法 ...

  7. 使用批处理复制并以时间规则重命名文件

    原文:使用批处理复制并以时间规则重命名文件 @echo off ::获取日期 将格式设置为:20110820 set datevar=%date:~0,4%%date:~5,2%%date:~8,2% ...

  8. 【linux基础】重命名文件和文件夹

    linux下重命名文件或文件夹的命令mv既可以重命名,又可以移动文件或文件夹. 例子:将目录A重命名为B mv A B 例子:将/a目录移动到/b下,并重命名为c mv /a /b/c 其实在文本模式 ...

  9. VS2010 重命名文件:源文件名和目标文件名相同 的解决方案

    VS2010 重命名文件:源文件名和目标文件名相同 的解决方案 参考文章: (1)VS2010 重命名文件:源文件名和目标文件名相同 的解决方案 (2)https://www.cnblogs.com/ ...

最新文章

  1. R.Java文件报错
  2. Cloud for Customer mobile应用里pass Code登录界面的绘制原理
  3. 1024到了,默默给自己点个赞!
  4. vue加跨域代理静态文件404_vue-cli 设置跨域代理 线上地址报404
  5. Android开发之路--(2)--Android四大组件
  6. React中PureComponent原理
  7. Qt下实现多线程串口通信
  8. PHP使用PHPExcel删除Excel单元格指定列的方法
  9. VsCode+PicGO+腾讯云实现快速上传markdown图床
  10. unzip命令 – 解压缩zip文件
  11. ipad键盘映射_如何在iPad上重新映射修饰键
  12. java retainall_java 取交集方法retainAll
  13. win10禁用uac_在Win 7、8或10上通过简便方法禁用用户帐户控制(UAC)
  14. 【Python学习】制作一个汇率换算程序
  15. CentOS 7安装WRF,SMOKE,CMAQ
  16. 2020西湖论剑Web复现
  17. 源码分析 --- MapReduce如何确定任务的SplitSize、Splits、Map、Reduce
  18. C语言,移动鼠标获得当鼠标当前位置坐标
  19. 客户旅行地图教程 - 带15个示例
  20. 9秒学院-技术宅七夕示爱招数“高大上”赶快来看看

热门文章

  1. 【渝粤题库】陕西师范大学292961 会计学 作业 (高起专)
  2. 物联网将成为第四次工业革命的基石
  3. ZigBee网络架构详解
  4. 两轮差速机器人舵机转轴示意图_机器人教程2:舵机及转向控制原理
  5. 输入法问题_「图」KB4515384再爆新问题:OOBE时中文输入法阻止创建本地账户
  6. NOIP模拟测试17「入阵曲·将军令·星空」
  7. Delphi下实现全屏快速找图找色 二、矩阵遍历
  8. Java实现将日志信息存到TXT中
  9. spring定时注解方式定时写到xml里面融合
  10. Redis-cluster集群【第一篇】:redis安装及redis数据类型