[Flume]Docker下Flume的单点测试

1.拉取Flume镜像

2.启动调试

拉取镜像:

从hub.docker.com中拉取anchorfree/flume镜像,docker pull anchorfree/flume:latest

通过docker image ps查看

宿主机创建卷路径:mkdir /data_volume/flume

通过下面命令创建container:

docker run -p 9090:80 --name flume -it --net host -v /data_volume/flume/:/data anchorfree/flume:latest /bin/bash

命令介绍:

-p 宿主机port:对应容器port

--name 设容器名字为flume

-it 设立伪终端,交互模式运行容器

-v 容器的/data_volume/flume/指向容器的/data路径(默认无便创建)

anchorfree/flume:latest镜像

/bin/bash 进入容器终端交互

退出容器终端可以按ctrl+P+Q,挂起容器,但是不会直接停止容器。

重新进入容器可以docker exec -it <container name> /bin/bash进入

其他命令可以参考docker命令

由于该镜像apt-get指定的代理是ubantu的,所以需要修改,不然无法get到东西

查找sources.list,本文件是可以通过修改apt-get源,但是缺乏vim,所以这里我直接通过在/data_volume/flume下创建文件sources.list

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

把以上写入sources.list,然后进入容器flume后,在容器根目录下的/data查看sources.list

并把sources.list 复制到/etc/apt/下,替换原来sources.list

shell输入apt-get update,即可更新apt-get源,可以使用apt-get

启动调试


首先安装telnet,直接apt-get install telnet

把以下写在/data下的example.conf(自己创建文件flume的conf文件)

# example.conf: 一个单节点的 Flume 实例配置

# 配置Agent a1各个组件的名称
a1.sources = r1    #Agent a1 的source有一个,叫做r1
a1.sinks = k1      #Agent a1 的sink也有一个,叫做k1
a1.channels = c1   #Agent a1 的channel有一个,叫做c1

# 配置Agent a1的source r1的属性
a1.sources.r1.type = netcat       #使用的是NetCat TCP Source,这个的是别名,Flume内置的一些组件都是有别名的,没有别名填全限定类名
a1.sources.r1.bind = localhost    #NetCat TCP Source监听的hostname,这个是本机
a1.sources.r1.port = 44444        #监听的端口

# 配置Agent a1的sink k1的属性
a1.sinks.k1.type = logger         # sink使用的是Logger Sink,这个配的也是别名

# 配置Agent a1的channel c1的属性,channel是用来缓冲Event数据的
a1.channels.c1.type = memory                #channel的类型是内存channel,顾名思义这个channel是使用内存来缓冲数据
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# 把source和sink绑定到channel上
a1.sources.r1.channels = c1       #与source r1绑定的channel有一个,叫做c1
a1.sinks.k1.channel = c1          #与sink k1绑定的channel有一个,叫做c1

然后通过find / -name <filename>找到flume-ng

通过下面命令来启动flume

/opt/flume/bin/flume-ng agent --conf conf --conf-file example.conf --name a1 -Dflume.root.logger=INFO,console

命令解释参考文档https://flume.liyifeng.org/#agent

启动后呈现如此

另开一个宿主机终端,进入flume容器后,telnet localhost 44444,接着输入hello

 回到前一个终端便发现,如下

测试结束。

猜你喜欢

转载自www.cnblogs.com/jacksonkwong/p/13195296.html
今日推荐