版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
1. 介绍
在slave001节点/home/hadoop目录创建netcat.conf文件,将下列内容插入到netcat.conf,启动netcat.conf程序用来监听某个端口,并捕获传输的数据,在其他节点(slave002)使用Telnet协议发送数据。整个过程如同使用QQ聊天软件向另一个客户端发送消息,但对方接收不能回复。
2. 准备工作
- 在slave001中创建netcat.conf文件。Flume可通过Avro监听端口并捕获传输的数据。
# source+channels+sinks 名字定义为 agent
agent.sources = seqGenSrc
agent.channels = memoryChannel
agent.sinks = loggerSink
# 描述 source
agent.sources.seqGenSrc.type = netcat
agent.sources.seqGenSrc.bind = slave001
agent.sources.seqGenSrc.port = 44444
# 描述 sink
agent.sinks.loggerSink.type = logger
# 使用缓冲池
agent.channels.memoryChannel.type = memory
agent.channels.memoryChannel.capacity = 1000
agent.channels.memoryChannel.transactionCapacity = 100
# 将 source 和 sink 绑定到 channel (缓冲池)
agent.sources.seqGenSrc.channels = memoryChannel
agent.sinks.loggerSink.channel = memoryChannel
- 启动netcat.conf
flume-ng agent -n agent -c conf -f /home/hadoop/netcat.conf
3. 测试
- 在slave002节点中传输数据
在slave002中使用Telnet远程协议工具传输数据,使用Telnet工具必须先安装Telnet
su -l root
yum list | grep telnet
yum install -y telnet.x86_64
yum install -y telnet-server.x86_64
su -l hadoop
telnet slave001 44444
出现错误:
防火强未关闭,所以先关闭防火墙:
打开防火墙:service iptables start
关闭防火墙:service iptables stop
查看防火墙状态:service iptables status
然后再来测试:
slave002向slave001传输消息:
slave001接收到消息
- 然后测试一下slave003连接slave001并向其发送消息:
再来查看slave001接收到的消息: