做网站分辨率多少钱,网站开发入门,wordpress的导航菜单,做养生类项目的网站提起Flume, 就先讲一下它的基本作用, 它可以从不同的数据源导入到一个集中的地方存放起来,基本架构如下图所示*上图为Flume Data Flow Model, Ref: Flume 1.9.0 User Guide本篇文章会做一个小demo, 数据从spooling directory来(而不是官网图中画的Web Server), 先经过channel, …提起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环境, 可以参考以下文章RichieHadoop -- 1. 从零搭建HDFSzhuanlan.zhihu.com配置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 dirspool 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启动Flumecd /to_your_flume_home_dir
flume-ng agent --conf-file /path_to_your_hdfs.conf --name agent1 --conf conf -Dflume.root.loggerINFO,console写入Spool Dircd /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