章节内容
上一节我们完成了:
- HiveServer2 的介绍和配置安装
- 修改 core-size hdfs-site 实现集群的启动
- Beeline 简单上手
- HCatalog 简单上手
背景介绍
这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。
之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。
注意,如果你和我一样,打算用公网部署,那一定要做好防火墙策略,避免不必要的麻烦!!!
请大家都以学习为目的,也请不要对我的服务进行嗅探或者攻击!!!
但是有一台公网服务器我还运行着别的服务,比如前几天发的:autodl-keeper 自己写的小工具,防止AutoDL机器过期的。还跑着别的Web服务,所以只能挤出一台 2C2G 的机器。那我的配置如下了:
- 2C4G 编号 h121
- 2C4G 编号 h122
- 2C2G 编号 h123
Flume 简介
Flume 是一个分布式
,高可靠
,高可用
的海量日志采集、聚合、传输的系统。
Flume 支持在日志系统中定制各类数据发送方,用于采集数据
。
Flume 提供对数据进行简单处理
,并写到各种数据接收方的能力。
简单概括:
Flume是实时采集日志
的数据采集引擎。它有三个重要的组件概念:
- Source
- Channel
- Sink
他们之间的关系如下图表示:
Flume特点
- 分布式:Flume
分布式集群
部署,扩展性好
- 可靠性好:当节点出现
故障时
,日志能够被传送到其他节点
上而不会丢失 - 易用性:Flume配置
使用繁琐
,对使用人员专业度要求高
- 实时采集:Flume
采集流模式
对数据进行实时采集
类似工具
DataX
阿里异构数据源同步工具Kettle
开源ETLLogStash
应用程序日志、事件的传输、处理、管理和搜索的平台Scribe
FaceBook 开源的日志收集系统
Flume架构
Agent
本质上一个JVM进程
,该JVM进程控制Event数据流
从外部日志生产者传输到目的地
,或
是下一个Agent
。
一个完整的Agent
中包含了三个完整的组件
:Source、Channel、Sink。
Source
是指数据的来源方式,Channel
是一个数据缓冲池,Sink
定义了数据输出的方式和目的地。
Source
负责接受数据到 Flume Agent的组件。Source
组件可以处理各种类型
,各种格式
的日志数据。
Channel
为了Source和Sink
之间的缓冲
,Channel允许Source和Sink运作在不同的速率上。
Channel
是线程安全
的,可以同时
处理多个Source
写入操作以及多个SInk
的读取操作。
常见的Channel
如下:
Memory Channel
是内存中的队列。Memory Channel在允许数据丢失的情况下使用File Channel
将所有事件都写到磁盘。
Sink
不断地轮询
Channel中的事件并且批量的移除它们,将这些事件批量写入存储或者索引系统,或者被发送到另一个Agent。
Event
是Flume定义的是一个数据流
传输的最小单位
。
Flume拓扑
串行模式
将多个 Flume
结合起来,从最初的Source到最终Sink。
此模式不建议过多
的Flume,过多不仅会影响传输速率,而且一旦传输过程中某个节点宕机
,会影响整个系统。
复制模式
将事件流向一个或者多个
目的地,这种模式将数据源复制到多个Channel
中,每个Channel都有相同的数据,Sink可以选择传入不同的目的地。
负载均衡
多个 Sink
逻辑上划分到一个Sink组
,Flume将数据发送到不同的Sink上。
Flume内部原理
- Source接受事件,交给其Channel处理
- 处理器通过拦截器 Interceptor,对事件进行处理,比如压缩解码、正则拦截、时间戳
- 经过拦截的事件再传给Channel选择器,将事件写入相应的Channel。
- 最后由Sink处理各个Channel事件。
项目下载
下载Flume
这里我选择:1.9.0
http://archive.apache.org/dist/flume/
使用 wegt 下载,或者 你现在好传到服务器上。我传到了 h122 机器上。
h122 /opt/software/
上传后进行解压
cd /opt/software
tar zxvf apache-flume-1.9.0-bin.tar.gz -C ../servers/
cd ../servers
ls
环境变量
修改配置文件
vim /etc/profile
写入如下的内容:
# flume
export FLUME_HOME=/opt/servers/apache-flume-1.9.0-bin
export PATH=$PATH:$FLUME_HOME/bin
写入的内容如下图:
刷新配置文件即可。
配置文件
cd $FLUME_HOME/conf
mv flume-env.sh.template flume-env.sh
vim flume-env.sh
把 JAVA_HOME
配置进去,防止出错。
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
配置的结果如下图:
至此!Flume的安装和配置已经完成!