Flume——安装与配置

1)Flume简介
Flume是Cloudera提供的一个海量日志收集系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume还提供了对数据进行的简单处理,并写到各种数据接收方(可定制)的能力。Flume说白了就是一个融入Hadoop当中的分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。

2)Flume安装
Flume提供了两种安装方式,第一种和普通的unix环境安装软件一样,使用apt-get install flume的形式实现;另外一种是下载tar包安装方式。因为对于Flume需要安装到多台机器上,一般不建议使用第一种安装,所以接下来就对tar安装方式进行说明:
首先,从 https://github.com/cloudera/flume/downloads下载所需的tar包,这里将以flume-0.0.3.tar.gz 部署到hadoop集群中为例,将其解压到$FLUME_HOME目录下(自定义),最好是和hadoop集群安装目录一致,这样方便管理。
然后,需要将 $FLUME_CONF_DIR添加到环境变量中,也就是通过vim /etc/profile:

点击(此处)折叠或打开

  1. $FLUME_CONF_DIR = $FLUME_HOME/conf

最后,为了运行的便利,将flume安装路径以及zookeeper安装路径添加到环境变量中,之所以需要有zookeeper,是因为flume对其有所依赖。

点击(此处)折叠或打开

  1. export FLUME_HOME=/usr/local/hadoop/flume-0.9.3
  2. export PATH=$FLUME_HOME/bin:$PATH

  3. export ZOOKEEPER=/usr/local/hadoop/zookeeper-3.3.4-cdh3u3
  4. export PATH=$ZOOKEEPER/bin:$PATH
这样,就完成了在一条机器上flume的安装,键入flume可以看到flume所有命令项参数:

点击(此处)折叠或打开

  1. usage: flume command [args...]
  2. commands include:
  3. dump Takes a specified source and dumps to console
  4. node Start a Flume node/agent (with watchdog)
  5. master Start a Flume Master server (with watchdog)
  6. version Dump flume build version information
  7. node_nowatch Start a flume node/agent (no watchdog)
  8. master_nowatch Start a Flume Master server (no watchdog)
  9. class <class> Run specified fully qualified class using Flume environment (no watchdog)
  10. ex: flume com.cloudera.flume.agent.FlumeNode
  11. classpath Dump the classpath used by the java executables
  12. shell Start the flume shell
  13. killmaster Kill a running master
  14. dumplog Takes a specified WAL/DFO log file and dumps to console

3)Flume配置
进入$FLUME_HOME/conf目录,其中有3个文件,flume-conf.xml、flume-site.xml、log4j.properties ,第一个是flume默认配置文件,第二个是用户配置文件。有的版本没有flume-site.xml,这时候会有个模板文件,把它cat或是mv进flume-site.xml就okay了。下面是简要配置:

点击(此处)折叠或打开

  1. <configuration>

  2. <property>
  3. <name>flume.master.servers</name>
  4. <value>hadoop-01</value> // 可以设置多个服务主节点,根据集群大小设置
  5. <description>This is the address for the config servers status
  6. server (http)
  7. </description>
  8. </property>

  9. <property>
  10. <name>flume.collector.event.host</name> // 也可以多个
  11. <value>hadoop-02</value>
  12. <description>
  13. This is the host name for default "remote" collector.
  14. </description>
  15. </property>

  16. <property>
  17. <name>flume.collector.port</name>
  18. <value>35853</value>
  19. <description>
  20. This is default tcp port that the collector listens to in order to receive events it is collecting.
  21. </description>
  22. </property>

  23. </configuration>
将配置好的flume整个目录通过scp -r copy到集群中其它节点上。这样在命令行中运行flume master启动主节点,键入flume node 启动其它节点。然而,在实际环境中,需要用户进行适当调整,这可以参考 http://archive.cloudera.com/cdh/3/flume/UserGuide/
### Linux 系统中安装配置 Apache Flume 的指南 #### 1. 准备工作 确保系统已安装 Java 开发环境(JDK),因为 Flume 基于 Java 构建。可以通过以下命令检查 JDK 是否已正确安装: ```bash java -version ``` 如果没有安装,可通过官方文档或其他资源完成 JDK 安装[^1]。 --- #### 2. 创建目录并上传 Flume 压缩包 进入服务器终端,创建一个专门用于存放软件的目录,并将 Flume 压缩包上传至此处。例如: ```bash mkdir -p /opt/software cd /opt/software ``` 通过工具(如 MobaXterm 或 WinSCP)将下载好的 Flume 压缩包(如 `apache-flume-1.10.1-bin.tar.gz`)上传到此目录[^2]。 --- #### 3. 解压压缩包 使用以下命令解压 Flume 压缩包至指定目录: ```bash tar -zxvf apache-flume-1.10.1-bin.tar.gz -C /opt/module/ ``` 随后切换到模块目录并对文件夹进行重命名以便管理: ```bash cd /opt/module/ mv apache-flume-1.10.1-bin/ flume ``` --- #### 4. 修改日志配置文件 进入 Flume配置目录,编辑 `log4j2.xml` 文件以自定义日志路径和级别。例如: ```xml <Property name="LOG_DIR">/opt/module/flume/log</Property> <Root level="INFO"> <AppenderRef ref="Console" /> </Root> ``` 这一步骤有助于更好地管理和调试日志输出[^4]。 --- #### 5. 调整 JVM 参数 进入 Flume配置子目录,找到 `flume-env.sh.template` 文件并将其更名为 `flume-env.sh`: ```bash cd /opt/module/flume/conf mv flume-env.sh.template flume-env.sh ``` 接着打开该脚本文件,设置合适的 JVM 参数以优化性能。例如: ```bash export JAVA_OPTS="-Xms512m -Xmx1024m -Dcom.sun.management.jmxremote" ``` 完成后同步修改后的文件到集群节点(如果有多个节点的话)。可以借助工具或命令实现分发操作[^2]。 --- #### 6. 启动 Flume Agent 编写 Flume 配置文件(如 `agent.conf`),其中包含数据源、通道和接收器的具体设定。下面是一个简单的例子——从标准输入读取数据并通过控制台打印出来: ```properties # agent.conf a1.sources = r1 a1.sinks = k1 a1.channels = c1 # Define the source a1.sources.r1.type = exec a1.sources.r1.command = echo "Test message" # Define the sink a1.sinks.k1.type = logger # Use a channel which buffers events in memory a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 100 # Bind the source and sink to the channel a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1 ``` 保存后启动 Flume Agent: ```bash ./bin/flume-ng agent --name a1 --conf ./conf/ --conf-file ./conf/agent.conf -Dflume.root.logger=INFO,console ``` --- #### 7. 测试验证 观察终端是否有预期的日志输出。若有错误提示,则根据具体信息定位问题所在[^5]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值