我是靠谱客的博主 外向衬衫,最近开发中收集的这篇文章主要介绍flume单节点搭建,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


> flume单节点搭建

一.解压压缩包
flume-ng-1.2.0-cdh3u5.tar.gz :是Hadoop1.x的flume压缩包
flume-ng-1.6.0-cdh5.5.2.tar.gz : 是Hadoop2.x的flume压缩包
[root@hadoop-1 ~] tarzxvf/tmp/flumeng1.2.0cdh3u5.tar.gzC/usr/local/.[root@hadoop1 ] t a r − z x v f / t m p / f l u m e − n g − 1.2.0 − c d h 3 u 5. t a r . g z − C / u s r / l o c a l / 二 . 授 权 [ r o o t @ h a d o o p − 1   ] chown hadoop.hadoop /usr/local/flume-ng-1.2.0-cdh3u5 -R ———> 把解压后生成的 flume-ng-1.2.0-cdh3u5 文件夹以及子文件及文件夹所属着和所属组都改为hadoop用户
[root@hadoop-1 ~] chmod777/usr/local/flumeng1.2.0cdh3u5R>flumeng1.2.0cdh3u5.[hadoop@hadoop1 ] c h m o d 777 / u s r / l o c a l / f l u m e − n g − 1.2.0 − c d h 3 u 5 − R — — — – > 把 解 压 后 生 成 的 f l u m e − n g − 1.2.0 − c d h 3 u 5 文 件 夹 以 及 子 文 件 及 文 件 夹 权 限 改 为 任 何 人 都 可 以 读 写 执 行 操 作 三 . 配 置 环 境 变 量 [ h a d o o p @ h a d o o p − 1   ] vi .bash_profile
添加
export FLUME_HOME=/usr/local/flume-ng-1.2.0-cdh3u5
export FLUME_CONF_DIR= FLUMEHOME/conf.flume[hadoop@hadoop1 ] F L U M E H O M E / c o n f 四 . 修 改 f l u m e 属 性 文 件 [ h a d o o p @ h a d o o p − 1   ] cd /usr/local/flume-ng-1.2.0-cdh3u5/conf/
[hadoop@hadoop-1 ~] cpflumeconf.properties.templateflumeconf.properties[hadoop@hadoop1 ] c p f l u m e − c o n f . p r o p e r t i e s . t e m p l a t e f l u m e − c o n f . p r o p e r t i e s [ h a d o o p @ h a d o o p − 1   ] vi flume-conf.properties
新增
#名字
a1.sources = r1
a1.sinks = k1
a1.channels = c1


# Describe/configure the source
#模式网络模式
a1.sources.r1.type = netcat
#捕获那个机器
a1.sources.r1.bind = hadoop-1
#端口
a1.sources.r1.port = 44444
# Describe the sink
#投到了当前模式显示logger日志
a1.sinks.k1.type = logger
# Use a channel which buffers events in memory
#通道类型:内存
a1.channels.c1.type = memory
#通道总量1000字节可以设大
a1.channels.c1.capacity = 1000
#每个事物达到100,进行投递
a1.channels.c1.transactionCapacity = 100
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

五.运行flume
[hadoop@hadoop-1 ~] cd/usr/local/flumeng1.2.0cdh3u5[hadoop@hadoop1flumeng1.2.0cdh3u5] c d / u s r / l o c a l / f l u m e − n g − 1.2.0 − c d h 3 u 5 [ h a d o o p @ h a d o o p − 1 f l u m e − n g − 1.2.0 − c d h 3 u 5 ] bin/flume-ng agent –conf /usr/local/flume-ng-1.2.0-cdh3u5/conf/ –conf-file conf/flume-conf.properties –name a1 -Dflume.root.logger=INFO,console


-Dflume.root.logger=INFO,console 仅为 debug 使用,请勿生产环境生搬硬套,否则大量的日志会返回到终端。
INFO信息、console产生的控制信息,量特别大,生产环境中用数据量太大了
-c/–conf 后跟配置目录,-f/–conf-file 后跟具体的配置文件,-n/–name 指定agent的名称


六.开启一个新的界面
[root@hadoop-1 ~]$ telnet hadoop-1 44444
hello world!
//输入内容回车
//在运行 /bin/flume-ng 界面能看到输入内容结果


urce.start(NetcatSource.java:161)] Created serverSocket:sun.nio.ch.ServerSocketChannelImpl[/192.168.8.91:44444]

2015-10-14 12:12:08,114 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO - org.apache.flume.sink.LoggerSink.process(LoggerSink.java:70)] Event: { headers:{} body: 68 65 6C 6C 6F 20 77 6F 72 6C 64 21 0D hello world!. }


七.抽取文件到 hdfs 上
[hadoop@hadoop-1 ~] cd /usr/local/flume-ng-1.2.0-cdh3u5/conf
[hadoop@hadoop-1 conf] vi aa.conf
#单节点 写入到hdfs

agent1.channels = ch1
agent1.sources = avro-source1
agent1.sinks = log-sink1
# Define a memory channel called ch1 on agent1
#通道类型:内存
agent1.channels.ch1.type = memory
#缓存的最大容量
agent1.channels.ch1.capacity = 10000
#每事务的最大容量
agent1.channels.ch1.transactionCapacity = 1024
#保持连接的秒数30秒
agent1.channels.ch1.keep-alive = 30
#define source monitor a file
#执行模式
agent1.sources.avro-source1.type = exec
#用的shell格式是bash格式
agent1.sources.avro-source1.shell = /bin/bash -c
#抽取那个文件/home/hadoop/access_log
agent1.sources.avro-source1.command = tail -n +0 -F /home/hadoop/logs.txt
agent1.sources.avro-source1.channels = ch1
#应该是连接数是5
agent1.sources.avro-source1.threads = 5
# Define a logger sink that simply logs all events it receives
# and connect it to the other end of the same channel.
#投递
agent1.sinks.log-sink1.channel = ch1
#头带到哪hdfs
agent1.sinks.log-sink1.type = hdfs
#投递路径====可以不用写在 hdfs 上自动创建
agent1.sinks.log-sink1.hdfs.path = hdfs://192.168.18.71:9000/usr/hadoop/flumeTest
#写类型text文本
agent1.sinks.log-sink1.hdfs.writeFormat = Text
#文件类型是数据流
agent1.sinks.log-sink1.hdfs.fileType = DataStream
#hdfs创建多长时间新建文件,0不基于时间
agent1.sinks.log-sink1.hdfs.rollInterval = 0
#基于数据大小
1000字节
agent1.sinks.log-sink1.hdfs.rollSize = 10000
#hdfs有多少条消息时新建文件,0不基于消息个数
agent1.sinks.log-sink1.hdfs.rollCount = 0
#匹配的一个大小
agent1.sinks.log-sink1.hdfs.batchSize = 1000
#事件的最大数有多少个
agent1.sinks.log-sink1.hdfs.txnEventMax = 1000
#调用的超时多少秒
agent1.sinks.log-sink1.hdfs.callTimeout = 60000
#追加的timeout时间多少秒
agent1.sinks.log-sink1.hdfs.appendTimeout = 60000

[注意:]
上传 http 生成的 log 文件时
1.给 /etc 下 httpd目录及其全部内容授予足够的权限
[root@hadoop-1 ~]chmod -R 777 /etc/httpd
2.给 /var/log/ 下 httpd目录及其全部内容授予足够的权限
[root@hadoop-1 ~]chmod -R 777 /var/log/httpd
3.修改 flume 属性配置文件

#抽取那个文件/home/hadoop/access_log
agent1.sources.avro-source1.command = tail -n +0 -F /etc/httpd/logs/access_log

启动
[hadoop@hadoop-1 flume-ng-1.2.0-cdh3u5]$ bin/flume-ng agent –conf /usr/local/flume-ng-1.2.0-cdh3u5/conf/ -f conf/aa.conf -n agent1 -Dflume.root.logger=INFO,console

查看上传结果
[hadoop@hadoop-1 flume-ng-1.2.0-cdh3u5]$ hadoop fs -cat /usr/hadoop/flumeTest/FlumeData.1521500611180.tmp

hadoop 2.x 和 1.x flume 安装方式一样,只是压缩包不同

最后

以上就是外向衬衫为你收集整理的flume单节点搭建的全部内容,希望文章能够帮你解决flume单节点搭建所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部