hadoop重命名文件_Hadoop -- 3. 从Flume到HDFS
提起Flume, 就先讲一下它的基本作用, 它可以从不同的数据源导入到一个集中的地方存放起来,基本架构如下图所示
![](/assets/blank.gif)
*上图为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. 从零搭建HDFSzhuanlan.zhihu.com
![](/assets/blank.gif)
配置Flume
从下面的官网直接下载Flume编译好的包(Apache Flume binary)
Download - Apache Flumeflume.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
![](/assets/blank.gif)
然后看一下.log文件中的内容
hdfs dfs -cat /tmp/flume/events.1547361342874.log
![](/assets/blank.gif)
hadoop重命名文件_Hadoop -- 3. 从Flume到HDFS相关推荐
- hadoop重命名文件_hadoop HDFS常用文件操作命令
命令基本格式: hadoop fs -cmd < args > 1.ls hadoop fs -ls / 列出hdfs文件系统根目录下的目录和文件 hadoop fs -ls -R / 列 ...
- hadoop重命名文件_面试系列:深入理解hadoop架构体系
hadoop组件简介 官方文档组织的非常清晰,主要由以下四个组件组成:HDFS.map-reduce.yarn.hadoop-common hdfs架构 HDFS 分布式文件存储系统,主要特点是: 可 ...
- Python 标准库之 os (获取当前目录、读取/设置环境变量、重命名文件、运行shell命令、创建/删除/查看目录文件、判断目录/文件/存在、获取绝对路径、获取文件名、获取换行符、获取路径分隔符)
1. os与sys模块的官方解释如下: os This module provides a portable way of using operating system dependent funct ...
- 小技巧 | 使用 mv 重命名文件无需两次键入文件名称
使用过 Bash 的童鞋都知道 mv 是一个可以用于文件改名的命令,而且使用这个命令修改文件名时我们需要输入两次文件名(旧名字和新名字). 如果有一种情况是只需要你改动文件名中的一个字母,而文件名又特 ...
- python 复制 移动 重命名文件
python 复制 移动 重命名文件 import os import shutil # 复制文件: shutil.copyfile("oldfile", "newfil ...
- python pandas rename_使用Pandas重命名文件
我试图用excel工作表和pandas重命名文件,但是我一直收到一个IO错误.在"文件名"列中,我有原始文件名以及"重命名"列中的原始文件名.我知道还有其他方法 ...
- 使用批处理复制并以时间规则重命名文件
原文:使用批处理复制并以时间规则重命名文件 @echo off ::获取日期 将格式设置为:20110820 set datevar=%date:~0,4%%date:~5,2%%date:~8,2% ...
- 【linux基础】重命名文件和文件夹
linux下重命名文件或文件夹的命令mv既可以重命名,又可以移动文件或文件夹. 例子:将目录A重命名为B mv A B 例子:将/a目录移动到/b下,并重命名为c mv /a /b/c 其实在文本模式 ...
- VS2010 重命名文件:源文件名和目标文件名相同 的解决方案
VS2010 重命名文件:源文件名和目标文件名相同 的解决方案 参考文章: (1)VS2010 重命名文件:源文件名和目标文件名相同 的解决方案 (2)https://www.cnblogs.com/ ...
最新文章
- R.Java文件报错
- Cloud for Customer mobile应用里pass Code登录界面的绘制原理
- 1024到了,默默给自己点个赞!
- vue加跨域代理静态文件404_vue-cli 设置跨域代理 线上地址报404
- Android开发之路--(2)--Android四大组件
- React中PureComponent原理
- Qt下实现多线程串口通信
- PHP使用PHPExcel删除Excel单元格指定列的方法
- VsCode+PicGO+腾讯云实现快速上传markdown图床
- unzip命令 – 解压缩zip文件
- ipad键盘映射_如何在iPad上重新映射修饰键
- java retainall_java 取交集方法retainAll
- win10禁用uac_在Win 7、8或10上通过简便方法禁用用户帐户控制(UAC)
- 【Python学习】制作一个汇率换算程序
- CentOS 7安装WRF,SMOKE,CMAQ
- 2020西湖论剑Web复现
- 源码分析 --- MapReduce如何确定任务的SplitSize、Splits、Map、Reduce
- C语言,移动鼠标获得当鼠标当前位置坐标
- 客户旅行地图教程 - 带15个示例
- 9秒学院-技术宅七夕示爱招数“高大上”赶快来看看