数据基础离线 4_第1页
数据基础离线 4_第2页
数据基础离线 4_第3页
数据基础离线 4_第4页
数据基础离线 4_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务4实时计算环境搭建内容导航01任务概述与环境准备明确任务目标,了解整体架构与思维导图02Flume安装与应用掌握Flume安装配置,实现端口监听与文件变化监听03ZooKeeper与Kafka部署完成ZooKeeper集群搭建与Kafka消息系统配置04整合验证与知识拓展实现Flume与HDFS/Kafka整合,系统梳理核心原理任务概述与环境准备01任务4任务4:实时计算环境搭建概述日志采集工具

Flume

和基于发布/订阅的消息系统

Kafka

常与

Spark

组合使用,构建生产级实时计算架构。本任务将完成实时计算环境搭建,构建稳定高效的数据传输通道。FlumeKafkaSpark1阶段一:组件安装3个工单工单4.1Flume的安装与应用工单4.2ZooKeeper的安装与配置工单4.3Kafka的安装与应用2阶段二:验证准备1个工单工单4.4模拟生成日志数据3阶段三:整合验证2个工单工单4.5Flume和HDFS整合工单4.6Flume和Kafka整合▶先安装三大组件,再编写模拟日志程序验证,最后完成Flume与HDFS、Kafka的整合。Flume安装与应用02工单4.1:基本信息与目标Flume的安装与应用——编写配置文件,实现对指定端口数据和文件变化的自动监听工单编号4.1建议学时2学时所属任务实时计算环境搭建环境要求部署好的Hadoop集群知识目标掌握Flume基本概念掌握Flume配置文件结构技能目标完成Flume安装与基础配置能启动、运行与监控FlumeAgent素养目标培养配置文件的规范意识培养解决实际问题的能力⬇️从Flume官网下载

1.9版本

压缩包四步安装流程1上传至master节点上传至master节点

/opt

目录Xftp传输2解压并重命名解压压缩包并重命名tar-zxfapache-flume-1.9.0-bin.tar.gz3配置环境变量配置Flume环境变量修改/etc/profile加入Flume路径4验证安装查看版本验证安装成功flume-ngversion第一步·准备安装包Flume安装步骤进入Flume配置目录

/opt/flume/conf,创建并编辑配置文件

dk.conf创建并编辑配置文件$cd/opt/flume/conf/$vimdk.conf配置目录:/opt/flume/conf配置文件:dk.conf完整配置(dk.conf)#定义组件名称a1.sources=r1a1.channels=c1a1.sinks=k1#配置数据源(NetCat端口监听)a1.sources.r1.type=netcata1.sources.r1.bind=mastera1.sources.r1.port=12600#配置内存通道a1.channels.c1.type=memorya1.channels.c1.transactionCapacity=100a1.channels.c1.capacity=1000#配置日志输出sinka1.sinks.k1.type=logger#绑定组件关系a1.sources.r1.channels=c1a1.sinks.k1.channel=c1监听端口数据:dk.conf配置dk.conf核心参数与启动⚙核心参数说明参数作用配置值type=netcat数据源类型网络端口监听bind=master绑定主机master节点port=12600监听端口12600type=memory通道类型内存通道transactionCapacity事务容量100条capacity通道容量1000条type=logger输出类型日志输出▶启动命令flume-ngagent-cconf-f/opt/flume/conf/dk.conf-namea1-Dflume.root.logger=INFO,console-cconf指定配置目录-f指定配置文件路径-namea1指定

agent名称-Dflume.root.logger设置日志级别为INFO端口监听测试与命令参数flume-ng命令参数参数示例值作用agent—指定运行模式为

采集代理-cconfconf指定Flume配置目录-f/opt/flume/conf/dk.conf指定

配置文件路径-namea1指定

代理名称(须与配置文件一致)-Dflume.root.loggerINFO,console设置日志级别为INFO并输出到控制台nc端口监听测试流程1安装nc工具$yuminstall-ync2连接目标端口$ncmaster126003验证数据回显输入

hello,zhejianganfang并按Enter从节点

显示发送内容返回master节点

确认接收使用execsource持续监听文件变化的完整配置流程1创建并编辑配置文件cd/opt/flume/conf/vimwenjian.conf2启动Flume代理flume-ngagent-cconf-f/opt/flume/conf/wenjian.conf-namea1-Dflume.root.logger=INFO,consolewenjian.conf核心配置组件关键参数说明Sourcetype=exec执行外部命令采集数据Sourcecommand=tail-F/opt/ceshi.log持续监听文件变化Channeltype=memory内存通道,传输效率

1000

条容量Sinktype=logger日志输出,调试验证用组件定义与绑定关系#组件定义a1.sources=r1a1.channels=c1a1.sinks=k1#绑定关系a1.sources.r1.channels=c1a1.sinks.k1.channel=c1监听文件变化:wenjian.conf配置通过创建与写入测试文件验证Flume监听启动状态1创建测试文件touch/opt/ceshi.log2写入测试数据echo

"测试数据">>/opt/ceshi.log3验证启动状态终端阻塞且日志出现

SOURCE,name:r1started

即表示Flume成功启动,等待拉取数据注意:LoggerSink组件内部实现逻辑限制,仅能输出

16个字符文件监听测试与注意事项工单4.1小结与素养课堂工单4.1小结本工单完成以下三项核心操作:1Flume安装2端口数据监听3文件变化监听素养课堂数据安全与法律意识数据流动打破安全管理边界,数据窃取、泄露、滥用等事件频发,需多元主体共同参与治理。《中华人民共和国国家安全法》《中华人民共和国网络安全法》依据上述法律法规,履行数据安全风险控制义务,增强可控意识,共同维护国家安全秩序。ZooKeeper与Kafka部署03工单4.2:ZooKeeper的安装与配置4.2本工单完成Kafka所需的

ZooKeeper

安装与配置,需在

master、slave01、slave02

三个节点上操作。工单名称ZooKeeper的安装与配置建议学时1学时所属任务实时计算环境搭建环境要求部署好的Hadoop集群学习目标知识目标理论掌握ZooKeeper基本概念掌握跨节点协同安装与配置ZooKeeper的方法技能目标实践能够启动、验证与管理集群素养目标素养培养严谨细致的集群部署习惯培养创新性地解决问题的能力工单编号目标版本3.4.5目标节点master上传STEP1通过Xftp上传压缩包/opt目录01解压STEP2tar-zxfzookeeper-3.4.5.tar.gz解压完成后重命名02配置STEP3修改配置文件添加环境变量/etc/profile03启动STEP4配置ZooKeeper并启动服务04ZooKeeper安装步骤ZooKeeper配置文件编辑配置zoo.cfg、创建数据目录、设置myid三步完成集群基础配置1配置zoo.cfg编辑配置文件(位于conf/目录),添加集群配置内容conf/zoo.cfg2创建数据目录创建数据与日志目录mkdir-p/opt/zookeeper/tmp/datamkdir-p/opt/zookeeper/tmp/logs3设置myid在/opt/zookeeper/tmp/data下新建myid文件,写入1cd/opt/zookeeper/tmp/datatouchmyidecho

"1">myid1配置zoo.cfg配置文件位于

conf/

目录≡编辑

zoo.cfg,添加集群配置内容2创建数据目录数据目录与日志目录$mkdir-p/opt/zookeeper/tmp/data$mkdir-p/opt/zookeeper/tmp/logs3设置myid在data目录下新建

myid

文件,写入

1$cd/opt/zookeeper/tmp/data$touchmyid$echo"1">myidZooKeeper配置文件编辑启动ZooKeeper集群与小结启动ZooKeeper集群前置检查:确保Hadoop集群已启动(或执行

start-all.sh)步骤命令执行范围启动服务

zkServer.shstart

3台虚拟机查看状态

zkServer.shstatus

3台虚拟机1台

leader+2台

follower选举结果:分别在master、slave01、slave02查看状态,确认选举结果工单小结完成ZooKeeper安装配置,掌握:跨节点协同安装与配置方法集群启动、验证与管理技能工单4.3实时计算环境搭建·建议学时2Kafka的安装与应用工单基本信息工单编号4.3工单名称Kafka的安装与应用所属任务实时计算环境搭建建议学时2学时环境要求部署好的Hadoop集群、ZooKeeper集群工单描述完成高吞吐量的分布式发布/订阅消息系统

Kafka

的安装与应用,学会使用Kafka生产和消费数据。学习目标知识目标技能目标素养目标掌握Kafka基本概念掌握Kafka的部署依赖与配置方法能够完成Kafka的安装与配置能够创建并管理Kafka主题培养灵活的集群管理意识Kafka安装与配置kafka-2.13-2.8.0.tgz

下载安装1上传Xftp传至

/opt

目录2解压重命名tar-zxfkafka_2.13-2.8.0.tgz3配置环境变量/etc/profile

添加Kafka路径perties核心配置#解压命令tar-zxfkafka_2.13-2.8.0.tgzbroker.id=1listeners=PLAINTEXT://master:9092log.dirs=/opt/kafka/logszookeeper.connect=master:2181,slave01:2181,slave02:2181从机配置与Kafka启动1配置文件远程复制将/opt/kafka目录与profile文件复制至slave01、slave02scp-r/opt/kafkaroot@slave01:/optscp-r/opt/kafkaroot@slave02:/optscp/etc/profileroot@slave01:/etcscp/etc/profileroot@slave02:/etc2Kafka服务启动启动Kafka前,先确认ZooKeeper集群已启动zkServer.shstartkafka-server-start.sh-daemon/opt/kafka/config/perties从机配置修改节点broker.idlisteners主机名slave012slave01slave023slave02Kafka与ZooKeeperKafka2.8可以不依赖ZooKeeper,但官方不推荐这种使用方式。因此,还是需要使用ZooKeeper集群。Kafka主题创建与消息收发四步流程1创建主题slave01$kafka-topics.sh--create--bootstrap-serverslave02:2181--replication-factor1--partitions1--topiclol2查看主题列表slave02$kafka-topics.sh--zookeeperslave02:2181-list3生产者发送消息slave02$kafka-console-producer.sh--broker-listslave02:9092--topiclol输入内容:ILoveMyCollegeILoveMyCountryILoveMyFamily4消费者实时接收slave01$kafka-console-consumer.sh--bootstrap-serverslave02:9092--topiclol--from-beginning执行成功后,生产者发送数据,消费者

实时显示主题创建与消息收发删除主题与工单小结删除主题(在slave01上,图4.27)$kafka-topics.sh--zookeepermaster:2181--delete--topiclol✓执行成功:Topiclolismarkedfordeletion.执行成功后显示删除标记提示;当再次试图查看主题时,则不会显示相关内容。✓工单小结1完成Kafka安装与配置,搭建消息系统环境2创建并管理Kafka主题,掌握主题生命周期操作3熟悉生产者发送消息与消费者接收消息的完整流程整合验证与知识拓展04工单概览·工单信息与学习目标4.4工单名称模拟生成日志数据建议学时1学时所属任务实时计算环境搭建环境要求部署好的onYARN模式的Spark集群模拟生成日志数据,每行包含IP地址访问时间访问URL访问设备类型返回码5个字段,为

Flume与HDFS、Flume与Kafka

整合测试做准备。学习目标1知识目标掌握日志数据的结构与语义信息2技能目标能使用

Python

编写程序生成符合规范的日志数据3素养目标培养数据规范意识;培养创新性地解决问题的能力工单4.4:模拟生成日志数据gen_data.py代码(一):导入与函数定义在

/opt/example

目录下新建文件

gen_data.py,实现

模拟日志数据生成

功能importrandomimporttimeiplist=[101,198,65,177,98,21,34,61,19,11,112,114]host=['pc','Android','iOS']code=['302','502','404']url=['','','','']def

getIP():

return

'.'.join(str(x)forxinrandom.sample(iplist,4))def

getTime():

returntime.strftime('%Y-%m-%d%H:%M:%S',time.localtime())def

getHost():

returnrandom.sample(host,1)[0]def

getCode():

returnrandom.sample(code,1)[0]def

getURL():

returnrandom.sample(url,1)[0]随机生成的字段IP地址时间戳访问URL客户端类型HTTP状态码日志输出持续写入

/opt/tmp/my.log

文件共生成

10000

条记录ƒ核心函数:get_logdef

get_log(count):

whilecount>0:log='{}\t{}\t{}\t{}\t{}\n'.format(

getIP(),getTime(),getURL(),getHost(),getCode())

with

open('/opt/tmp/my.log','a+')asfile:file.write(log)time.sleep(2)count=count-1每次循环生成一行日志,格式为:IP\t时间\tURL\t设备\t状态码每行间隔

2秒,写入

/opt/tmp/my.log

文件共生成

10000

条记录▶程序入口if__name__=='__main__':

get_log(10000)i程序启动后持续运行,直到生成完所有记录或手动中断。gen_data.py代码(二):主循环与运行本工单通过编写Python程序模拟生成日志数据,为后续测试奠定基础。1数据列表定义iplists模拟访客

IP地址url模拟访问

URLhost模拟访问

设备类型code模拟返回

状态码2函数功能getIP()/getHost()随机抽样取值getCode()/getURL()随机抽样取值getTime()获取系统当前时间作为

访问时间3核心函数get_log()2s每隔

2s

生成一行日志,写入

/opt/tmp/my.log每行包含:IP地址、访问时间、URL、设备类型、返回码4运行命令与日志验证$python/opt/example/gen_data.py运行后终端无显示,等待

1~2min,按

Ctrl+C

中断,再查看日志:$cat/opt/tmp/my.log代码解读与运行验证各函数作用与数据生成逻辑·运行方法与日志输出验证基本信息工单编号4.5工单名称Flume和HDFS整合建议学时2

学时所属任务实时计算环境搭建环境要求已安装Flume的Hadoop集群核心任务配置FlumeAgent,指定sinks输出到

HDFS,

fileType

设为

DataStream

。通过双终端验证:一终端模拟生成日志数据,另一终端执行采集传输。学习目标知识目标掌握Flume与HDFS整合的架构技能目标能够编写集成HDFSSink的FlumeAgent配置文件素养目标培养构建生产级数据管道的系统思维与解决实际问题的能力工单4.5:基本信息与目标agent2.conf配置(一):启动与Sources启动Hadoop集群,并编辑agent2.conf完成Sources与Sinks配置Step1启动Hadoop集群在

master

节点执行以下命令:$start-dfs.sh$start-yarn.shStep2编辑agent2.conf/opt/example/agent2.confSources配置监听/opt/tmp/my.log新数据写入a1.sources=r1a1.sources.r1.type=execmand=tail-F/opt/tmp/my.loga1.sources.r1.shell=/bin/sh-ca1.sources.r1.selector.type=replicatingSinks配置输出到HDFSa1.sinks=k1a1.sinks.k1.type=hdfsa1.sinks.k1.hdfs.path=hdfs://:9000/record_hdfs_flumea1.sinks.k1.hdfs.fileType=DataStreama1.sinks.k1.hdfs.useLocalTimeStamp=trueagent2.conf配置(二):Channels与绑定1Channels配置#Channels配置:内存通道a1.channels=c1a1.channels.c1.type=memorya1.channels.c1.capacity=1000000a1.channels.c1.transactionCapacity=10000通道容量设为

100万

,事务容量

1万

,匹配高吞吐数据采集场景2串联绑定#串联绑定a1.sources.r1.channels=c1a1.sinks.k1.channel=c1Source将监听到的日志数据写入ChannelSink从Channel读取数据并写入HDFS指定目录绑定关系确保数据的完整流转监听文件→内存通道→HDFS存储Guava版本冲突解决解决Flume与Hadoop之间的Guava库版本兼容性问题!问题现象与原因运行Flume时可能遇到错误:

NoSuchMethodError原因是

Flume中Guava版本较低,而

Hadoop中版本较高,导致版本冲突。✓解决方案rm-f/opt/flume/lib/guava-11.0.2.jarcp

/opt/hadoop-3.2.4/share/hadoop/common/lib/guava-27.0-jre.jar

/opt/flume/libHDFS整合验证流程HDFS验证流程:目录创建→双终端数据采集→文件验证→内容查看注意配置Sinks时一定要加上

a1.sinks.k1.hdfs.fileType=DataStream

,否则文件会出现乱码情况。1创建HDFS目录在HDFS上创建目录hdfsdfs-mkdir/record_hdfs_flume2双终端操作一个终端运行

gen_data.py

模拟日志数据,另一个启动Flumeflume-ngagent-cconf-f/opt/example/agent2.conf-namea1-Dflume.root.logger=INFO,console3验证文件产生查看目录下是否已生成数据文件hdfsdfs-ls/record_hdfs_flume4查看文件内容查看采集到的文件内容hdfsdfs-cat/record_hdfs_flume/FlumeData.1690873412595SUMMARY工单成果通过配置

FlumeAgent,完成

Flume与HDFS的整合Flume整合HDFS工单目标已达成LITERACYCLASS素养课堂·勤奋与坚持勤能补拙1孙敬「悬梁」苦读,以绳束发、绑于房梁,防瞌睡以专心治学2古人追梦尚能付出超常努力,今时学习更当坚持初心、不轻言放弃3成功往往眷顾勤奋的人“工单4.5小结与素养课堂工单4.6:基本信息与目标基本信息4.6Flume和Kafka整合工单编号4.6工单名称Flume和Kafka整合建议学时2

学时所属任务实时计算环境搭建环境要求已安装Flume、Kafka的Hadoop集群工单任务整合

Flume和Kafka,配置FlumeAgent指定Sinks输出到Kafka(需指定正确主题)。通过

三个终端

验证:1模拟生成日志数据→2执行采集传输→3显示日志数据学习目标知识目标掌握Flume、Kafka在数据实时采集和传输中的角色与功能技能目标熟练启动FlumeAgent并监控运行状态;在Kafka中显示日志数据素养目标培养独立学习能力;培养解决实际问题的能力集群启动·三步骤集群启动准备依次启动Hadoop集群与ZooKeeper/Kafka集群,并创建Kafka主题1Hadoop集群启动start-dfs.shstart-yarn.sh2ZooKeeper/Kafka集群启动zkServer.shstartkafka-server-start.sh-daemon/opt/kafka/config/perties3Kafka主题创建kafka-topics.sh--create--zookeeperslave02:2181--replication-factor1--partitions1--topictestagent3.conf配置(一):Sources与SinksFlumeAgent配置/opt/example/agent3.confAgent:a1r1(Source)→c1(Channel)→k1(Sink)a1.sources=r1a1.sinks=k1a1.channels=c1a1.sinks.k1.topic

用于配置Kafka主题,在上述代码中为

test。Sources(r1)a1.sources.r1.*a1.sources.r1.type=execmand=tail-F/opt/tmp/my.loga1.sources.r1.shell=/bin/sh-ca1.sources.r1.selector.type=replicating监听

/opt/tmp/my.log

是否有新数据写入Sinks(k1)a1.sinks.k1.*a1.sinks.k1.type=org.apache.flume.sink.kafka.KafkaSinka1.sinks.k1.topic=testa1.sinks.k1.brokerList=:9092a1.sinks.k1.kafka.bootstrap.servers=:9092ducer.requiredAcks=1a1.sinks.k1.batchSize=5输出到

Kafkaagent3.conf配置(二):Channels与绑定配置内存通道参数,并将Source、Channel、Sink三者串联成完整数据链路Channels配置#Channels设为内存a1.channels.c1.type=memorya1.channels.c1.capacity=1000000a1.channels.c1.transactionCapacity=10000通道容量设为

100万,事务容量

1万,保障高吞吐数据传输串联绑定#将三者串联起来a1.sources.r1.channels=c1a1.sinks.k1.channel=c1Source将数据写入Channel,Sink从Channel读取数据并发送至

Kafka绑定关系确保数据从

监听文件

→内存通道

→Kafka主题

的完整流转三个终端并行执行,完成数据流验证闭环:终端1数据生成python/opt/example/gen_data2.py终端2Flume采集flume-ngagent-cconf-f/opt/example/agent3.conf-na1-Dflume.root.logger=INFO,console终端3Kafka消费kafka-console-consumer.sh--bootstrap-servermaster:9092--topictestKafka消费输出示例IP地址时间戳访问域名设备类型状态码42023-08-0103:32:23pc302982023-08-0103:32:25iOS404982023-08-0103:32:27pc302012023-08-0103:32:29pc404772023-08-0103:32:31iOS404Flume负责从源头采集数据,Kafka提供高性能消息队列服务,两者整合构建出

稳定高效的数据流处理架构。三终端验证与运行结果工单小结本工单通过配置

FlumeAgent

连接Flume和Kafka,完成了数据实时采集和传输的整合操作。素养课堂珍惜时间,做时间的主人「盛年不重来,一日难再晨。及时当勉励,岁月不待人。」古训警示"少壮不努力,老大徒伤悲"——时间流逝不留痕迹。现实挑战互联网带来便捷的同时,也让时间管理更加困难:网络购物、短视频、游戏等容易使人沉迷。行动号召在美好年华里做对的事,科学合理使用网络,做时间的主人。工单4.6小结与素养课堂知识链接:Flume简介与特性FlumeFlume

是Apache软件基金会提供的高可用、高可靠、分布式海量日志采集、聚合和传输系统。基于流式架构,灵活简单,支持定制数据发送方,可对数据简单处理后写入本地文件系统、HDFS、HBase等接收方。日志采集聚合传输流式架构1高可靠性故障时数据不丢失,提供

3种可靠性保障机制:端到端、存储后失败重传、尽力而为2可扩展性3层架构(Agent/Collector/Storage)均可水平扩展,Master多实例部署避免单点故障3灵活简单的数据流结构适配多种数据类型,支持按需定制4负载均衡与故障转移节点故障时自动转移任务,保障数据处理连续性Flume核心概念:Agent与EventAgentEventFlume由多个

Agent

连接形成数据传输通道,每个Agent是独立的Java守护进程,负责从数据源接收数据并发往下一目的地。一个Agent由以下三个核心组件构成:Source数据入口接收数据到Agent支持Avro、Thrift、Exec、SpoolingDirectory、NetCatTCP、Kafka等多种数据源格式Channel数据通道Source与Sink之间的缓冲区线程安全,支持多Source写入、多Sink读取Sink数据出口从Channel轮询批量取出Event写入HDFS、Hive、HBase、Kafka等目的地或发送至另一AgentHeader(键值对属性)Event是数据在Channel中的封装形式,由

Header(键值对属性)和

Body(字节数组数据)两部分组成。Body(字节数组数据)Source将原始数据封装为Event放入Channel,Sink取出后再转换输出。Source封装→Channel传输→Sink转换输出AAvroSource监听

Avro

端口,与上一层Agent的AvroSink配合组成分层拓扑结构参数解释channels与Source绑定的Channel,多个用空格分隔type组件类型,应为avrobind监听的主机名或者IP地址port监听的端口threads允许生成的最大工作线程数量TThriftSource监听

Thrift

端口,支持配置以安全模式运行参数解释channels与Source绑定的Channel,多个用空格分隔type组件类型,应为thriftbind监听的主机名或IP地址port监听的端口threads生成的最大工作线程数量EExecSource运行给定

UNIX命令,从标准输出连续获取数据参数解释channels与Source绑定的Channel,多个用空格分隔type组件类型,应为execcommand给定的UNIX命令,一般是cat或者tailFlumeSource组件(一)监听型Source核心参数对比📂SpoolingDirectorySource文件目录监听监听指定目录,自动收集新文件数据,读完后重命名标记完成配置参数参数说明channels绑定的Channel,多个用空格分隔type固定值

spooldirspoolDir待监听的目标目录路径⚡KafkaSourceKafka消息消费作为Kafka消费者,从指定主题读取消息;多Source可配置同一消费者组配置参数参数说明channels绑定的Channel,多个用空格分隔type固定值

org.apache.flume.source.kafka.KafkaSourcekafka.bootstrap.serversKafka集群地址列表kafka.consumer.group.id消费者组唯一标识kafka.topics目标主题列表,逗号分隔kafka.topics.regex主题正则表达式(优先级高于kafka.topics)🔌NetCatTCPSourceTCP端口监听监听指定TCP端口,接收文本数据并按行转为Event(类似

nc-k-l)配置参数参数说明channels绑定的Channel,多个用空格分隔type固定值

netcatbind监听的主机名或IP地址port监听的端口号FlumeSource组件(二)三种常用Source组件对比:文件目录监听、Kafka消息消费、TCP端口监听两种Channel核心差异:Memory

高吞吐但易丢失,JDBC

可靠持久化MemoryChannelEvent队列存储于内存,适合高吞吐量场景,故障时丢失内存数据。参数默认值解释type—组件类型,应为memorycapacity100内存中存储Event的最大数量transactionCapacity100Source或Sink每个事务中存取Event的操作数量JDBCChannel通过Derby数据库持久化存储,注重可恢复性的流处理场景。参数默认值解释type—组件类型,应为jdbcdb.typederby使用的数据库,目前只支持Derbydriver.classorg.apache.derby.jdbc.EmbeddedDriverJDBC驱动类driver.url自动构建JDBC连接的URLdb.usernamesa连接数据库使用的用户名db.password—连接数据库使用的密码FlumeChannel组件(一)FlumeChannel组件(二)KKafkaChannel:Event存储于Kafka集群,具备高可用性与复制机制,故障时数据仍可用核心参数配置参数解释type组件类型,应为

org.apache.flume.channel.kafka.KafkaChannelkafka.bootstrap.serversChannel使用的Kafka集群实例列表kafka.topicChannel使用的Kafka主题kafka.consumer.group.idChannel向Kafka注册时使用的消费者群组IDFlumeSink组件(一)HDFSSinkhdfs将Event写入

HDFS,支持文本/序列文件,支持压缩,可按时间、文件大小或Event数量定期滚动文件。参数解释channel与Sink连接的Channeltype组件类型,应为

hdfshdfs.pathHDFS目录路径(如

hdfs://namenode/flume/webdata/)HiveSinkhive将包含分隔文本或JSON数据的Event流式传输到Hive表或分区,使用Hive事务写入,提交后立即对查询可见。参数解释channel与Sink连接的Channeltype组件类型,应为

hivehive.metastoreHivemetastore的URI(如

thrift://:9083)hive.databaseHive数据库名hive.tableHive表名LoggerSinklogger使用

INFO

级别将Event内容输出到日志中,主要用于

测试、调试。参数解释channel与Sink绑定的Channeltype组件类型,应为

loggerHBaseSink写入HBase数据库用于将数据写入HBase数据库。HBase自动读取classpath下的

hbase-site.xml,需确保FlumeAgent能访问HBase集群;数据写入的原子性由HBase保证,确保单行操作的完整性。核心参数channel与Sink绑定的Channeltype组件类型,固定为HBasetable要写入的HBase表名columnFamily要写入的HBase列族KafkaSinkFlume与Kafka整合负责把数据发送到Kafka主题中,目的就是将Flume和Kafka整合,使基于拉取的处理系统能够处理来自各种FlumeSource采集的数据。核心参数type组件类型,应为org.apache.flume.sink.kafka.KafkaSinkkafka.bootstrap.serversKafkaSink使用的Kafka服务器列表,建议至少配置两个实例以保障高可用性kafka.topic指定消息发布的Kafkatopic名称,若设置此参数,数据将自动发送到该topicFlumeSink组件(二)HBaseSink与KafkaSink的用途说明及核心参数配置ZooKeeper

是一种开源的分布式协调服务,为Hadoop、HBase等分布式系统提供核心支撑。客户端通过

TCP连接与服务器交互,实现请求发送、响应接收、事件监听及心跳维护;集群仅需

半数以上节点存活

即可保障服务可用。核心特性顺序一致性相同客户端事务按提交顺序执行原子性事务状态为"全部完成"或"全部未完成"单一系统镜像连接任意节点,数据视图一致可靠性事务完成后状态永久保留实时性事务完成后客户端限时获取最新数据功能与应用核心功能典型应用分布式协调分布式锁、顺序节点、临时节点命名服务持久化节点管理名称空间配置管理集中式配置,支持动态更新数据发布订阅配置中心负载均衡DDNS动态域名服务知识链接:ZooKeeper简介与特性ZooKeeper核心概念文件系统数据结构维护类似文件系统的层级数据结构,每个子目录项称为

znode,支持自由增删及子节点管理。/(根节点)znodeznodeznode自由增删子节点管理监听机制客户端注册监听后,当目标发生变化时将收到通知。1单个节点监听节点被删除或修改时触发2目录监听目录下创建或删除子节点时触发3递归子目录监听任意子节点结构变化或根节点数据变化时触发ZooKeeper常用操作:创建节点create命令语法与四种节点类型创建示例命令格式create[-s][-e][-c][-tttl]path[data][acl]参数说明-s顺序节点,自动追加序号-e临时节点,会话结束自动删除-c容器节点,末子节点删除后自动清理-t设置过期时间(毫秒),默认禁用节点创建示例持久节点(默认)create/testdata1临时节点create-e/ephemeralephemeraldata顺序节点create/seq_parentcreate-s/seq_parent/#自动追加序号1create-s/seq_parent/#自动追加序号2容器节点create-c/container1读取节点get/stat▸get/test获取节点数据▸stat/test获取节点状态信息▸get-s/test同时获取数据和状态信息2更新节点数据set▸set/testupdate13删除节点delete/deleteall▸delete/test删除无子节点的节点▸deleteall/seq_parent递归删除节点及其所有子节点4设置节点监视(Watch)-w▸get-w/test监视/test节点的数据变更▸ls-w/parent监视/parent节点的子节点变更53ZooKeeper常用操作四大基础操作:读取·更新·删除·监视知识

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论