hadoop生态 apache-Flume-1.8.0 的安装和 使用

hadoop生态 怎么 安装 apache-Flume-1.8.0

Flume 1.8.0 是 Apache Flume 的一个版本,Flume 是一个分布式、可靠且可用的服务,用于高效地收集、聚合和传输大量日志数据到 Hadoop 存储。Flume 主要用于大数据生态系统中,尤其是与 Apache Hadoop 结合使用,来处理大规模的流数据。

主要常见的应用场景:
日志收集: Flume 常被用来收集应用程序日志、服务器日志等,并将其传输到 Hadoop 存储系统中进行进一步分析。
实时数据流: 它还可以用于实时流数据的处理和分析,广泛应用于日志分析、监控系统等场景。
总的来说,Flume 1.8.0 是一个高效的、可靠的数据传输系统,特别适用于处理大规模的流数据,并且与 Hadoop 生态中的其他工具(如 HDFS、HBase)无缝集成。



Flume安装部署

安装apache-flume-1.8.0

第一步
下载好 apache-flume-1.8.0-bin.tar.gz

第二步 解压

tar -zxvf apache-flume-1.8.0-bin.tar.gz

第三步 修改 权限

chmod 777 apache-flume-1.8.0-bin

进⼊apache-flume-1.8.0-bin的⽬录

在这里插入图片描述

第四步 重命名flume-env.sh.template ⽂件

mv flume-env.sh.template flume-env.sh

在这里插入图片描述
第五步 配置 flume-env.sh
在这里插入图片描述

vi flume-env.sh

在这里插入图片描述

第六步

升级替换 guava jar包

cp /opt/module/hadoop-3.3.0/share/hadoop/hdfs/lib/guava-27.0-jre.jar /opt/m
odule/apache-flume-1.8.0-bin/lib/

示例 1

1、先在f

### Flume启动命令详解 Flume是一个分布式的、可靠的、高可用的日志收集系统,其启动命令的参数配置直接决定了Flume Agent的行为运行方式。以下是对`flume-ng agent`启动命令中各参数的详细解析[^1]。 #### 参数解析 1. **`flume-ng agent`** 表示启动一个Flume Agent实例。Agent是Flume的核心组件,负责接收、处理传输数据流。 2. **`--conf /opt/module/apache-flume-1.9.0-bin/conf`** 指定Flume的配置目录路径。该目录通常包含`log4j.properties`等日志配置文件以及`flume-env.sh`等环境变量配置文件。此参数确保Flume能够正确加载全局配置[^3]。 3. **`--name a1`** 定义当前启动的Agent名称为`a1`。Flume支持多个Agent同时运行,每个Agent通过唯一的名称进行区分[^1]。 4. **`--conf-file /opt/module/apache-flume-1.9.0-bin/conf/a1.conf`** 指定当前Agent的具体配置文件路径。此文件定义了数据源(source)、通道(channel)接收器(sink)之间的关系,以及它们的具体实现类参数[^4]。 5. **`-Dflume.root.logger=INFO,console`** 设置Flume的日志级别为`INFO`,并将日志输出到控制台。此参数用于调试或监控Flume运行状态时非常有用[^1]。 6. **JDK版本兼容性** Flume 1.9.0推荐使用JDK 1.8.x版本,如`jdk1.8.0_212`。确保JDK版本与Flume兼容,避免因版本不匹配导致的运行时错误[^3]。 #### 配置文件详解 Flume的配置文件(如`a1.conf`)定义了数据流的拓扑结构,主要包括以下几个部分: 1. **Source** 数据来源,例如Netcat Source、Spooling Directory Source等。配置示例: ```properties a1.sources = r1 a1.sources.r1.type = netcat a1.sources.r1.bind = localhost a1.sources.r1.port = 44444 ``` 2. **Channel** 数据暂存区,例如Memory Channel、File Channel等。配置示例: ```properties a1.channels = c1 a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 100 ``` 3. **Sink** 数据目标,例如HDFS Sink、Logger Sink等。配置示例: ```properties a1.sinks = k1 a1.sinks.k1.type = logger ``` 4. **绑定关系** 将Source、ChannelSink绑定在一起,形成完整的数据流。配置示例: ```properties a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1 ``` #### 常见问题排查 1. **配置文件路径错误** 如果`--conf-file`指定的路径不存在或文件内容有误,Flume将无法正常启动。需检查路径是否正确,并验证配置文件语法[^4]。 2. **依赖库冲突** Flume 1.9.0默认的`guava-11.0.2.jar`可能与Hadoop的版本冲突,需删除并替换为兼容版本[^5]。 3. **日志级别设置不当** 若日志级别过高(如`ERROR`),可能导致问题难以定位。建议在调试阶段设置为`DEBUG`或`INFO`[^1]。 ```bash -Dflume.root.logger=DEBUG,console ``` 4. **端口占用** 如果Source使用的端口被其他进程占用,Flume将无法启动。可通过以下命令检查端口占用情况: ```bash netstat -tuln | grep 44444 ``` ### 示例代码 以下是一个简单的Flume配置文件示例: ```properties # 定义Source a1.sources = r1 a1.sources.r1.type = netcat a1.sources.r1.bind = localhost a1.sources.r1.port = 44444 # 定义Channel a1.channels = c1 a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 100 # 定义Sink a1.sinks = k1 a1.sinks.k1.type = logger # 绑定关系 a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1 ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小Tomkk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值