大数据组件-Flume集群环境搭建

🥇🥇【大数据学习记录篇】-持续更新中~🥇🥇


个人主页:beixi@
本文章收录于专栏(点击传送):【大数据学习】

💓💓持续更新中,感谢各位前辈朋友们支持学习~💓💓

文章目录

    • 1.Flume集群环境介绍
    • 2.搭建环境介绍
    • 3.启动HDFS集群环境
    • 4.Flume集群环境搭建

1.Flume集群环境介绍

Flume是一个分布式、可靠和高可用性的数据采集工具,用于将大量数据从各种源采集到Hadoop生态系统中进行处理。在大型互联网企业的数据处理任务中,Flume被广泛应用。

Flume集群环境介绍:

  • Agent:Flume的基本组成单元是Agent,用于在不同的节点之间传输数据。Agent可以是单节点或分布式部署。

  • Source:Source是Flume数据采集的起点,用于从数据源(如日志文件、网络流、消息队列等)中获取数据并将其发送到Channel中。Flume支持多种Source类型,如Avro、Netcat、Exec等。

  • Channel:Channel是Flume的缓存区,用于暂存从Source获取的数据。Flume支持多种Channel类型,如Memory、File、Kafka等,可以根据数据量和数据传输速率选择合适的Channel类型。

  • Sink:Sink是Flume的目标,用于将数据输出到指定的目标位置。Flume支持多种Sink类型,如HDFS、HBase、Elasticsearch等。

  • Event:Event是Flume传输的基本单元,表示采集到的数据。一个Event包含Header和Body两个部分,其中Header用于描述Event的属性(如时间戳、数据类型等),Body是实际的数据内容。

  • Collector:Collector用于收集Flume的监控信息,如Agent的启停状态、数据采集速率等。Flume提供了Web界面和API接口来实现监控和管理。


Flume逻辑上分三层架构:agent,collector,storage。agent用于采集数据,agent是Flume中产生数据流的地方,同时,agent会将产生的数据流传输到collector。collector的作用是将多个agent的数据汇总后,加载到storage中。storage是存储系统,可以是一个普通file,也可以是HDFS,HIVE,HBase等。
在这里插入图片描述

2.搭建环境介绍

本次搭建的环境有:
Oracle Linux 7.4,三台虚拟机,分别为master,slave1,slave2
JDK1.8.0_144
Hadoop2.7.4集群环境
Flume1.6.0

3.启动HDFS集群环境

1.打开master命令窗口,启动HDFS平台。

start-dfs.sh

在这里插入图片描述

2.查看”主节点”上HDFS守护进程

jps

在这里插入图片描述

3.打开slave1从机命令窗口,查看HDFS守护进程。

jps

在这里插入图片描述

4.打开slave2从机命令窗口,查看HDFS守护进程。

jps

在这里插入图片描述

4.Flume集群环境搭建

1.打开master命令窗口。
在这里插入图片描述

2.解压Flume压缩文件至/opt目录。

tar -zxvf experiment/file/apache-flume-1.6.0-bin.tar.gz -C /opt

在这里插入图片描述

3.修改解压后文件夹的名字为flume。

mv /opt/apache-flume-1.6.0-bin /opt/flume

在这里插入图片描述

4.查看Flume配置文件目录conf

ll /opt/flume/conf/

在这里插入图片描述

5.复制Flume配置文件flume-env.sh.template名为flume-env.sh

cp /opt/flume/conf/flume-env.sh.template /opt/flume/conf/flume-env.sh

在这里插入图片描述

6.查找Java安装路径

echo $JAVA_HOME

在这里插入图片描述

7.配置flume-env.sh文件

vim /opt/flume/conf/flume-env.sh

在这里插入图片描述

8.按键 i ,更改代码如下:

export JAVA_HOME=/usr/lib/java-1.8

在这里插入图片描述

9.按键Esc,按键”:wq!”保存退出。
10.通过ssh命令,跳转至slave1机器命令窗口创建日志文件夹,再退回到master命令窗口。

ssh slave1
mkdir -p /root/flume/logs
exit

在这里插入图片描述

11.通过ssh命令,跳转至slave2机器命令窗口创建日志文件夹,再退回到master命令窗口。

ssh slave2
mkdir -p /root/flume/logs
exit

在这里插入图片描述

12.在当前“主节点”命令窗口中,配置slave.conf文件,进行配置。

vim /opt/flume/conf/slave.conf

在这里插入图片描述

13.按键 i ,更改代码如下:

# 主要作用是监听目录中的新增数据,采集到数据之后,输出到avro (输出到agent)
# 注意:Flume agent的运行,主要就是配置source channel sink
# 下面的a1就是agent的代号,source叫r1 channel叫c1 sink叫k1
a1.sources = r1
a1.sinks = k1
a1.channels = c1
#具体定义source
a1.sources.r1.type = spooldir
#先创建此目录,保证里面空的
a1.sources.r1.spoolDir = /root/flume/logs
#对于sink的配置描述 使用avro日志做数据的消费
a1.sinks.k1.type = avro
# hostname是最终传给的主机名称或者ip地址
a1.sinks.k1.hostname = master
a1.sinks.k1.port = 44444
#对于channel的配置描述 使用文件做数据的临时缓存 这种的安全性要高
a1.channels.c1.type = file
a1.channels.c1.checkpointDir = /root/flume/checkpoint
a1.channels.c1.dataDirs = /root/flume/data
#通过channel c1将source r1和sink k1关联起来
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

在这里插入图片描述

14.按键Esc,按键”:wq!”保存退出。
15.将flume分发至slave1、slave2机器。

scp -r /opt/flume slave1:/opt

在这里插入图片描述

scp -r /opt/flume slave2:/opt

在这里插入图片描述

16.配置master.conf文件

vim /opt/flume/conf/master.conf

在这里插入图片描述

17.按键 i ,更改代码如下:

# 获取slave1,2上的数据,聚合起来,传到hdfs上面
# 注意:Flume agent的运行,主要就是配置source channel sink
# 下面的a1就是agent的代号,source叫r1 channel叫c1 sink叫k1a1.sources = r1
a1.sinks = k1
a1.channels = c1#对于source的配置描述 监听avro
a1.sources.r1.type = avro
# hostname是最终传给的主机名称或者ip地址
a1.sources.r1.bind = master
a1.sources.r1.port = 44444#定义拦截器,为消息添加时间戳  
a1.sources.r1.interceptors = i1  
a1.sources.r1.interceptors.i1.type = org.apache.flume.interceptor.TimestampInterceptor$Builder#对于sink的配置描述 传递到hdfs上面
a1.sinks.k1.type = hdfs  
#集群的nameservers名字
#单节点的直接写:hdfs://主机名(ip):9000/xxx
#ns是hadoop集群名称
# a1.sinks.k1.hdfs.path = hdfs://ns/flume/%Y%m%d  
a1.sinks.k1.hdfs.path = /flume/events/root
a1.sinks.k1.hdfs.filePrefix = events-  
a1.sinks.k1.hdfs.fileType = DataStream  
#不按照条数生成文件  
a1.sinks.k1.hdfs.rollCount = 0  
#HDFS上的文件达到128M时生成一个文件  
a1.sinks.k1.hdfs.rollSize = 134217728  
#HDFS上的文件达到60秒生成一个文件  
a1.sinks.k1.hdfs.rollInterval = 60  #对于channel的配置描述 使用内存缓冲区域做数据的临时缓存
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100#通过channel c1将source r1和sink k1关联起来
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

在这里插入图片描述

18.按键Esc,按键”:wq!”保存退出。
至此,Flume集群环境搭建就到此结束了,如果本篇文章对你有帮助记得点赞收藏+关注~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/69613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AOP到底是啥

AOP到底是啥 前言面向切面编程到底是啥意思那么要怎么实现面向切面编程呢?成果 前言 回忆起来,第一次听到这三字母是博主在上大二的时候,那时候看的一脸懵逼,现在马上研二了才想起来回顾下。 只记得当时面向对象编程还没整明白&…

TDengine(2):wsl2+ubuntu20.04+TDengine安装

一、ubuntu系统下提供了三种安装TDengine的方式: 二、通过 apt 指令安装失败 因为是linux初学者,对apt 指令较为熟悉,因此首先使用了该方式进行安装。 wget -qO - http://repos.taosdata.com/tdengine.key | sudo apt-key add -echo "…

【Linux】文件

Linux 文件 什么叫文件C语言视角下文件的操作文件的打开与关闭文件的写操作文件的读操作 & cat命令模拟实现 文件操作的系统接口open & closewriteread 文件描述符进程与文件的关系重定向问题Linux下一切皆文件的认识文件缓冲区缓冲区的刷新策略 stuout & stderr 什…

STM32 硬件IIC 控制OLED I2C卡死问题

#更新通知:2023-09-06 STM32L151 固件库 使用I2C 太难了,又宕机了,建议不要在固件库版本上尝试硬件IIC 了,一般人真用不了,直接使用软件模拟的,或者不要使用固件库了,用HAL 库吧,据说…

既要炫酷好看,又要出图快?可视化大屏模板了解下!

可视化大屏模板可以在很大程度上满足炫酷好看和出图快的需求。使用模板可以节约制作时间,像奥威BI系统就上线了大量的可视化大屏模板。这些模板实际上都是一张张完整的可视化大屏报表,从数据源到数据分析模型,再到数据可视化图表和智能分析功…

《vue3实战》运用push()方法实现电影评价系统的添加功能

目录 前言 电影评价系统的添加功能是什么? 电影评价系统的添加功能有什么作用? 一、push()方法是什么?它有什么作用? 含义: 作用: 二、功能实现 这段是添加开始时点击按钮使…

支持CAN FD的Kvaser PCIEcan 4xCAN v2编码: 73-30130-01414-5如何应用?

这里是引用 Kvaser PCIEcan 4xCAN v2(编码: 73-30130-01414-5)是一款小巧而先进的多通道实时CAN接口,可发送和接收CAN总线上的标准和扩展CAN消息,时间戳精度高。其与所有使用Kvaser CANlib的应用程序兼容。 主要特性 PCI Express…

spring boot项目上传头像

应用还是验证码使用的原理;但是代码逻辑却有所不同。 逻辑前端传给后端,然后写入本机磁盘去,文件名用uuid避免重复。写完就可以顺带把文件名保存到数据库里。上传就这样子。 怎么取用的;还是通过配置映射的方式;通过sr…

vue3升级了些什么

Vue 3 升级了以下几个方面的内容: 响应式系统:Vue 3 使用了 Proxy 对象来替代 Vue 2 中的 Object.defineProperty,这使得响应式系统更加高效和灵活。Vue 3 的响应式系统可以追踪更细粒度的依赖关系,提供了更好的性能和更细致的响应…

Bootstrap的行、列布局设计(网络系统设计)

目录 00-基础知识01-等宽列布局02-指定某一列的宽度03-根据内容自动改变列的宽度04-五种预定义列宽度 .col、.col-sm-*、.col-md-*、.col-lg-*、.col-xl-*05-不同视口宽度按不同的分列方案划分06-删除列内容的盒模型的外边距07-超过12列怎么办?08-重新排列各列的顺序…

继承(个人学习笔记黑马学习)

1、基本语法 #include <iostream> using namespace std; #include <string>//普通实现页面//Java页面 //class Java { //public: // void header() { // cout << "首页、公开课、登录、注册...(公共头部)" << endl; // } // void footer() …

【精品】NLP自然语言处理学习路线(知识体系)

当前&#xff0c;大规模预训练语言模型的强大对话问答、文本生成能力&#xff0c;将自然语言处理&#xff08;NLP&#xff09;的研究和应用推向了新一轮的热潮。NLP是计算机科学、人工智能和语言学等学科交叉的前沿领域。NLP的应用和研究范围非常的广泛&#xff0c;个人是没有找…

利用GitHub实现域名跳转

利用GitHub实现域名跳转 一、注册一个 github账号 你需要注册一个 github账号,最好取一个有意义的名字&#xff0c;比如姓名全拼&#xff0c;昵称全拼&#xff0c;如果被占用&#xff0c;可以加上有意义的数字. 本文中假设用户名为 UNIT-wuji(也是我的博客名) 地址: https:/…

Git常用命令用法

参考视频&#xff1a;真的是全能保姆 git、github 保姆级教程入门&#xff0c;工作和协作必备技术&#xff0c;github提交pr - pull request_哔哩哔哩_bilibili 1.Git初始化 首先设置名称和邮箱。然后初始化一下&#xff0c;然后就创建了一个空的Git仓库。 PS D:\golang\oth…

node socket.io

装包&#xff1a; yarn add socket.io node后台&#xff1a; const express require(express) const http require(http) const socket require(socket.io) const { getUserInfoByToken } require(../../utils/light/tools)let app express() const server http.createS…

【C++漂流记】结构体的定义和使用、结构体数组、结构体指针、结构体做函数参数以及结构体中const的使用

结构体&#xff08;struct&#xff09;是C语言中一种重要的数据类型&#xff0c;它由一组不同类型的成员组成。结构体可以用来表示一个复杂的数据结构&#xff0c;比如一个学生的信息、一个员工记录或者一个矩形的尺寸等。 结构体定义后&#xff0c;可以声明结构体变量&#xf…

NCCoE发布“向后量子密码学迁移”项目进展情况说明书

近日&#xff0c;NIST下属的国家网络安全中心&#xff08;NCCoE&#xff09;发布了一份向后量子密码学迁移&#xff08;Migration to Post-Quantum Cryptography&#xff09;项目情况说明书。该文档简要概述了向后量子密码学迁移项目的背景、目标、挑战、好处和工作流程&#x…

【HTML5高级第二篇】WebWorker多线程、EventSource事件推送、History历史操作

文章目录 一、多线程1.1 概述1.2 体会多线程1.3 多线程中数据传递和接收 二、事件推送2.1 概述2.2 onmessage 事件 三、history 一、多线程 1.1 概述 前端JS默认按照单线程去执行&#xff0c;一段时间内只能执行一件事情。举个栗子&#xff1a;比方说古代攻城游戏&#xff0c…

Jenkins自动构建(Gitee)

Gitee简介安装JenkinsCLI https://blog.csdn.net/tongxin_tongmeng/article/details/132632743 安装Gitee jenkins-cli install-plugin gitee:1.2.7 # https://plugins.jenkins.io/gitee/releases获取安装命令(稍作变更) JenkinsURL Dashboard-->配置-->Jenkins Locatio…

鸿蒙系列-如何使用好 ArkUI 的 @Reusable?

如何使用好 ArkUI 的 Reusable&#xff1f; OpenHarmony 组件复用机制 在ArkUI中&#xff0c;UI显示的内容均为组件&#xff0c;由框架直接提供的称为 系统组件&#xff0c;由开发者定义的称为 自定义组件。 在进行 UI 界面开发时&#xff0c;通常不是简单的将系统组件进行组合…