flume之flume-daemon.sh

本文详细介绍了Flume-Daemon.sh脚本的启动方法及关键使用注意事项,包括脚本的基本命令用法、默认配置、环境变量设置、PID文件存放位置等,帮助用户正确配置并使用Flume服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    flume-daemon.sh脚本用于启动flume的节点,使用方法为:

[rsync@test flume-0.9.4-cdh3u1]$ bin/flume-daemon.sh 
Usage: bin/flume-daemon.sh.sh (start|stop) <flume-command> <args...>
    例如:

           使用 flume-daemon.sh启动master节点:

[rsync@test flume-0.9.4-cdh3u1]$ bin/flume-daemon.sh start master
starting master, logging to /var/log/flume/flume-rsync-master-oser623.out

    使用注意事项:

       1)该脚本默认将pid文件和log文件分别写到/var/run/flume和/var/log/flume目录下,所以在使用该脚本之前应该先创建这些目录,并且确保运行flume的用户对这些目录有写权限。

       2)flume默认安装时flume可执行命令位于/usr/lib/flume,所以当自定义安装时,必须设置FLUME_HOME路径,设置方法:vi /etc/profile.d/flume.sh,在其中输入:export FLUME_HOME=/home/test/flume/flume-0.9.4-cdh3u1,然后运行:source /etc/profile.d/flume.sh

      3)当直接使用命令启动flume时,pid文件位于/tmp下(flumemaster.pid),如打算使用该脚本启动和停止flume服务,需要先杀死flume服务,并删除/tmp目录下的pid文件,然后在使用该脚本启动。

            


### 配置Flume采集端口数据并传输至Kafka 为了实现从指定端口收集数据并通过Flume将其发送到Kafka,需遵循一系列最佳实践来确保配置的高效性和稳定性。 #### 创建必要的Kafka环境准备 在开始之前,应先启动Zookeeper服务和Kafka服务器,并创建用于存储来自Flume消息的主题。命令如下所示: ```bash ./bin/zkServer.sh start ./bin/kafka-server-start.sh -daemon ./config/server.properties ./bin/kafka-topics.sh --create --topic flume_topic --partitions 3 --replication-factor 1 --zookeeper localhost:2181 ``` 此过程初始化了一个名为`flume_topic`的新主题,它具有三个分区和一个副本因子[^4]。 #### 构建Flume配置文件 接下来构建`flume-conf.properties`文件,在其中定义source、channel与sink组件之间的交互方式。对于本案例而言,采用Netcat作为Source监听特定TCP端口上的输入流;Memory Channel负责临时缓存待处理的消息;而最终目的地则是指向先前建立好的Kafka Topic的Avro Sink。 以下是具体的配置实例: ```properties # 定义agent名称 a1.sources = r1 a1.channels = c1 a1.sinks = k1 # 设置source为netcat类型, 并绑定到本地机器的44444端口上等待客户端连接. a1.sources.r1.type = netcat a1.sources.r1.bind = localhost a1.sources.r1.port = 44444 # 使用memory channel快速传递事件给下游模块 a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 100 # 将sink设置成org.apache.flume.sink.kafka.KafkaSink类, # 这样可以直接向Kafka topic发布记录. a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink a1.sinks.k1.topic = flume_topic a1.sinks.k1.brokerList = localhost:9092 a1.sinks.k1.requiredAcks = 1 a1.sinks.k1.batchSize = 20 # 绑定各部分之间的工作流程 a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1 ``` 上述配置实现了通过监听44444端口接收外部传入的日志条目,并立即将其转发给位于同一台主机上的Kafka集群中的`flume_topic`。 #### 测试配置有效性 完成以上步骤之后,可以通过telnet工具模拟日志生产者角色,尝试向目标端口发送一些测试字符串验证整个链路是否正常工作: ```bash telnet master 44444 ``` 与此同时开启另一个终端窗口执行消费者脚本来实时观察新到达的信息片段: ```bash ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic flume_topic --from-beginning ``` 如果一切顺利的话,则应该能够在控制台上看到由Flume捕获并经由Kafka传播过来的内容展示出来[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值