概述
> 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 ~]
tar−zxvf/tmp/flume−ng−1.2.0−cdh3u5.tar.gz−C/usr/local/二.授权[root@hadoop−1 ]
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/flume−ng−1.2.0−cdh3u5−R———–>把解压后生成的flume−ng−1.2.0−cdh3u5文件夹以及子文件及文件夹权限改为任何人都可以读写执行操作三.配置环境变量[hadoop@hadoop−1 ]
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@hadoop−1 ]
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 ~]
cpflume−conf.properties.templateflume−conf.properties[hadoop@hadoop−1 ]
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/flume−ng−1.2.0−cdh3u5[hadoop@hadoop−1flume−ng−1.2.0−cdh3u5]
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单节点搭建所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复