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进程即可
- 复杂架构 : 多个agent之间串联 相当于大家手拉手共同完成数据的采集传输, 在串联的架构中没有主从之分, 每个agent的地位都是一样的
三、安装部署
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