欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hadoop HA高可用集群Flume 常用配置总结

程序员文章站 2022-06-15 11:27:57
...

上一篇: Hadoop HA高可用集群Sqoop 常用配置总结 https://blog.csdn.net/pineapple_C/article/details/110307109

一、前戏

基于 CentOS7.4Minimal, Hadoop2.7.1, Zookeeper3.4.8, Hbase1.2.1, Mysql5.7.18, Hive2.0.0, mysql-connector-java-5.1.46, sqoop1.4.7, flume1.6.0
参考:
http://flume.apache.org/releases/content/1.6.0/FlumeUserGuide.html

二、简介

Apache Flume是一个分布式,可靠且可用的系统,用于有效地收集,聚合大量日志数据并将其从许多不同的源移动到集中式数据存储中。

Apache Flume的使用不仅限于日志数据聚合。由于数据源是可定制的,因此Flume可用于传输大量事件数据,包括但不限于网络流量数据,社交媒体生成的数据,电子邮件消息以及几乎所有可能的数据源。

1. 核心组件

  • Source : 对接各个不同的数据源

  • Sink : 对接各个不同存储数据的目的地 (数据下沉池)

  • Channel : 中间临时存储缓存数据

2. 运行机制

  • flume本身是java程序 在需要采集数据的机器上启动agent进程
  • agent进程里面包含了 : source, sink, channel
  • 在flume中, 数据被包装成event 真实的数据在event body中
  • event是flume中最小的数据单元

3. 运行架构

  • 简单架构 : 只需要部署一个agent进程即可

Hadoop HA高可用集群Flume 常用配置总结

  • 复杂架构 : 多个agent之间串联 相当于大家手拉手共同完成数据的采集传输, 在串联的架构中没有主从之分, 每个agent的地位都是一样的

Hadoop HA高可用集群Flume 常用配置总结

三、安装部署

1. /etc/profile.d/hadoop_etc.sh

# Java settings
export JAVA_HOME=/usr/local/src/jdk
export PATH=$PATH:$JAVA_HOME/bin

# Hadoop settings
export HADOOP_HOME=/usr/local/src/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

# Zookeeper settings
export ZK_HOME=/usr/local/src/zookeeper
export PATH=$PATH:$ZK_HOME/bin

# Hbase settings
export HBASE_HOME=/usr/local/src/hbase
export PATH=$PATH:$HBASE_HOME/bin

# Hive settings
export HIVE_HOME=/usr/local/src/hive
export PATH=$PATH:$HIVE_HOME/bin

# Sqoop settings
export SQOOP_HOME=/usr/local/src/sqoop
export PATH=$PATH:$SQOOP_HOME/bin

# Flume settings
export FLUME_HOME=/usr/local/src/flume
export PATH=$PATH:$FLUME_HOME/bin

2. 指定采集方案配置文件

# 定义这个agent中各组件的名字
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# 描述和配置source组件
a1.sources.r1.type = syslogtcp
a1.sources.r1.port = 5140
a1.sources.r1.host = localhost

# 描述和配置 sink 组件
a1.sinks.k1.type = hdfs # 类型
a1.sinks.k1.hdfs.path = hdfs://master:8020/user/flume/syslogtcp # hdfs的路径
a1.sinks.k1.hdfs.filePrefix = Syslog # hdfs 的文件名前缀
a1.sinks.k1.hdfs.round = true # 指定时间戳需要四舍五入
a1.sinks.k1.hdfs.roundValue = 10 # 四舍五入到小于当前时间的最高倍数
a1.sinks.k1.hdfs.useLocalTimeStamp = true # 使用本地时间戳
a1.sinks.k1.hdfs.roundUnit = minute # 四舍五入值的单位,秒、分钟或小时

# 描述和配置 channels 组件
a1.channels.c1.type = memory # 类型
# 将 sources 和 channels 连接
a1.sources.r1.channels = c1
# 将 sinks 和 channels 连接
a1.sinks.k1.channel = c1

3. 启动flume进程

Argument Description
agent 运行Flume代理程序
–conf-file,-f 指定配置文件(如果缺少-z,则为必填)
–zkConnString,-z 指定要使用的ZooKeeper连接(如果缺少-f,则为必填)
–name,-n 该代理的名称(必填)
-D 表示 flume 运行时动态修改 flume.root.logger 参数属性值,并将控制台日志打印级别设置为 DEBUG 级别。日志级别包括:log、info、warn、error
[aaa@qq.com ~]$ flume-ng agent -c /opt/flume/conf/ -f /opt/flume/conf/hdfs_skin.conf -n a1 
-Dflume.root.logger=DEBUG,console

4. 向监听端口发送消息

打开一个新的终端

[aaa@qq.com ~]$ telnet localhost 5140
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
hello flume

5. 在hdfs中查看获取数据信息

[aaa@qq.com ~]$ hdfs dfs -ls /user/flume/syslogtcp
Found 1 items
-rw-r--r--   2 hadoop supergroup        186 2020-11-29 15:36 /user/flume/syslogtcp/Syslog.1606635355238

持续更新…
下一篇: Hadoop HA高可用集群Kafka 常用配置总结 https://blog.csdn.net/pineapple_C/article/details/110353685