基于业务流程Centos7下Flume安装配置与集成开发(超详细!!!)一

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 笔记

Centos7下Hadoop完全分布式集群Flume安装


电脑系统:macOS 10.15.4

虚拟机软件:Parallels Desktop14

Hadoop各节点节点操作系统:CentOS 7

JDK版本:jdk1.8.0_162

Flume版本:apache-flume-1.8.0-bin

Flume的下载源地址:


https://flume.apache.org/download.html11.png

bin文件是安装文件,src文件是flume源码,再做二次开发时候需要用到。


第一步:安装软件


(1)上传文件

将本机的安装包上传到虚拟机node1,上传方式:

scp 本机的文件绝对路径 caizhengjie@10.211.55.59:/opt/Hadoop

(2)解压文件

上传成功之后需要对文件赋予权限

chmod u+x apache-flume-1.8.0-bin.tar.gz

解压文件:

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

创建软链接:

ln -s apache-flume-1.8.0-bin flume


第二步:配置环境变量


vim ~/.bashrc

然后添加以下内容,注意三台虚拟机都需要配置环境变量

export FLUME_HOME=/opt/Hadoop/flume
export PATH=$FLUME_HOME/bin:$PATH

最后使之生效

source ~/.bashrc

这里可以测试一下我们的flume有没有安装成功

测试 flume-ng version

当出现下面所示即表示安装成功

[caizhengjie@node3 Hadoop]$ flume-ng version
Flume 1.8.0
Source code repository: https://git-wip-us.apache.org/repos/asf/flume.git
Revision: 99f591994468633fc6f8701c5fc53e0214b6da4f
Compiled by denes on Fri Sep 15 14:58:00 CEST 2017
From source with checksum fbb44c8c8fb63a49be0a59e27316833d


第三步:修改配置文件


在修改配置文件之前我们需要了解我们的项目需求与设计。我们需要通过flume对应用服务器采集日志信息,最后分别送往kafka和HBase中。先看需求分析图

12.png

图中配置了两台分布式日志收集工具,一台日志合并预处理工具,在虚拟机中分别对应了node2,node3与node1。也就是说两台采集,一台汇总。这种场景模型也就是多Agent的复杂流组合,如下图所示:

13.png

(1)更改文件名与分发文件

首先进入node1中,将/opt/Hadoop/flume/conf/目录下的flume-conf.properties.template与flume-env.sh.template文件改名,原因是template表示模版文件。

mv flume-conf.properties.template flume-conf.properties
mv flume-env.sh.template flume-env.sh

然后进入flume-env.sh添加JAVA_HOME

export JAVA_HOME=/opt/Hadoop/jdk1.8.0_162

image.png

这里根据自己的路径做适当修改


最后将flume与flume压缩文件移到node2,node3中


scp -r apache-flume-1.8.0-bin apache-flume-1.8.0-bin.tar.gz caizhengjie@node2:/opt/Hadoop/
scp -r apache-flume-1.8.0-bin apache-flume-1.8.0-bin.tar.gz caizhengjie@node3:/opt/Hadoop/

分别在node2和node3上创建软连接

ln -s apache-flume-1.8.0-bin flume


(2)修改node2上的配置文件

熟悉完项目需求分析之后,我们首先要配置node2最后配置node1。主要修改/opt/Hadoop/flume/conf/目录下的flume-conf.properties文件。我们需要将里面的内容删除,根据我们的要求重新配置,我这里参考的是官方文档


https://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html

首先配置好这三行,加在文件的最前面

agent2.sources = r1
agent2.channels = c1
agent2.sinks = k1

(1)source配置

根据需求source我选择的类型是exec,可以根据官方文档来配置,查看官方文档流程:

17.pngimage.png

倒数第二行agent2.sources.r1.command = tail -F /opt/datas/weblogs.log,表示的是日志文件的路径,没有的话需要自己创建,其他的可以根据官网来,所以这里我的source配置是:

# source配置
agent2.sources.r1.type = exec
agent2.sources.r1.command = tail -F /opt/datas/weblog-flume.log
agent2.sources.r1.channels = c1

(2)channel配置

根据需求channel我选择的类型是memory,同样也可以参考官方文档:

19.png

所以这里我的channel配置是:

# channel配置
agent2.channels.c1.type = memory
agent2.channels.c1.capacity = 10000
agent2.channels.c1.transactionCapacity = 10000
agent2.channels.c1.keep-alive = 5

(3)sink配置

根据需求sink我选择的类型是avro,同样也可以参考官方文档:

20.png

所以这里我的sink配置是:

# sink配置
agent2.sinks.k1.type = avro
agent2.sinks.k1.channel = c1
agent2.sinks.k1.hostname = node1
agent2.sinks.k1.port = 5555

综上我的flume-conf.properties文件总配置是:

agent2.sources = r1
agent2.channels = c1
agent2.sinks = k1
# source配置
agent2.sources.r1.type = exec
agent2.sources.r1.command = tail -F /opt/datas/weblog-flume.log
agent2.sources.r1.channels = c1
# channel配置
agent2.channels.c1.type = memory
agent2.channels.c1.capacity = 10000
agent2.channels.c1.transactionCapacity = 10000
agent2.channels.c1.keep-alive = 5
# sink配置
agent2.sinks.k1.type = avro
agent2.sinks.k1.channel = c1
agent2.sinks.k1.hostname = node1
agent2.sinks.k1.port = 5555
相关文章
|
25天前
|
JavaScript 前端开发 持续交付
Prettier 高级应用:集成 CI/CD 流水线与插件开发
【10月更文挑战第18天】Prettier 是一款流行的代码格式化工具,它能够自动将代码格式化成一致的风格,从而提高代码的可读性和维护性。对于希望进一步发挥 Prettier 潜力的高级用户而言,将 Prettier 集成到持续集成(CI)和持续部署(CD)流程中,确保每次提交的代码都符合团队标准,是非常重要的。此外,通过开发自定义插件来支持更多语言或扩展 Prettier 的功能也是值得探索的方向。本文将详细介绍这两方面的内容。
40 2
|
1月前
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
206 1
|
18天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
61 2
|
22天前
|
监控 安全 Linux
CentOS7下安装配置ntp服务的方法教程
通过以上步骤,您不仅能在CentOS 7系统中成功部署NTP服务,还能确保其配置合理、运行稳定,为系统时间的精确性提供保障。欲了解更多高级配置或遇到特定问题,提供了丰富的服务器管理和优化资源,可作为进一步学习和求助的平台。
51 1
|
1月前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
99 1
|
1月前
|
存储 监控 Linux
在 CentOS 7 中如何对新硬盘进行分区、格式化、挂载及配置最佳实践
本文详细介绍了在 CentOS 7 中如何对新硬盘进行分区、格式化、挂载及配置最佳实践,包括使用 `fdisk` 创建分区、`mkfs` 格式化分区、创建挂载点、编辑 `/etc/fstab` 实现永久挂载等步骤,旨在有效管理服务器磁盘空间,提高系统稳定性和可维护性。
68 1
|
1月前
|
Linux PHP Apache
CentOS 7.2配置Apache服务httpd(下)
CentOS 7.2配置Apache服务httpd(下)
47 1
|
1月前
|
Dart Android开发
鸿蒙Flutter实战:03-鸿蒙Flutter开发中集成Webview
本文介绍了在OpenHarmony平台上集成WebView的两种方法:一是使用第三方库`flutter_inappwebview`,通过配置pubspec.lock文件实现;二是编写原生ArkTS代码,自定义PlatformView,涉及创建入口能力、注册视图工厂、处理方法调用及页面构建等步骤。
48 0
|
2月前
|
Linux
CentOS 7.x时间同步服务chrony配置详解
文章详细介绍了在CentOS 7.x系统中如何安装和配置chrony服务,以及它与ntpd服务的对比,强调了chrony在时间同步方面的高效性和准确性。
181 1
CentOS 7.x时间同步服务chrony配置详解
|
1月前
|
安全 Linux 数据库连接
CentOS 7环境下DM8数据库的安装与配置
【10月更文挑战第16天】本文介绍了在 CentOS 7 环境下安装与配置达梦数据库(DM8)的详细步骤,包括安装前准备、创建安装用户、上传安装文件、解压并运行安装程序、初始化数据库实例、配置环境变量、启动数据库服务、配置数据库连接和参数、备份与恢复、以及安装后的安全设置、性能优化和定期维护等内容。通过这些步骤,可以顺利完成 DM8 的安装与配置。
225 0