版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用Flume监听数据点击添加文本点击添加文本点击添加文本点击添加文本在实际生产环境中,经常需要监听某一个端口的数据,并对监听到的数据做出相应的提取、分析。除此之外,Hadoop组件在运行过程中会产生大量的日志文件,对这些日志文件进行高效、准确地实时监控对于我们掌握各个组件的运行情况,具有非常重要的实际意义。本项目模拟实际项目需求,使用Flume对指定端口的数据、Hive运行过程中所产生的日志文件进行实时监听,并将监听到的内容输出到Flume控制台、HDFS,通过该项目使学生掌握Flume实时监听指定端口、具体文件并输出到Flume控制台、HDFS的应用。项目概述点击添加文本点击添加文本点击添加文本点击添加文本使用Flume对指定端口的数据、Hive运行过程中所产生的日志文件进行实时监听,并将监听到的内容输出到Flume控制台、HDFS。项目背景点击添加文本点击添加文本点击添加文本点击添加文本Flume监听指定端口并将监听到的数据输出到Flume控制台Flume监听Hive日志文件并将监听到的数据输出到Flume控制台Flume监听Hive日志文件并将监听到的数据输出到HDFS项目演示点击添加文本点击添加文本点击添加文本点击添加文本思维导图点击添加文本点击添加文本点击添加文本点击添加文本思政聚焦2020年春节来临之际,当举国上下张灯结彩之时,一场突如其来的新型冠状病毒在中华大地横扫肆虐。在对确诊、疑似病例的数据特征进行大数据智能分析之后,中国疾病预防控制中心意识到疫情的严重性,习总书记领导的党中央立即做出封城阻断病毒传播的睿智决定,并成立以钟南山院士、李兰娟院士为首的专业医疗团队对新型冠状病毒进行病理分析、治疗方法突破、临床实验等工作。同时,从其他各省调集专业医护人员前往重灾区武汉进行医疗支援。通过大数据技术准确、有效地追踪疾病接触人员动态,探析数据背后隐藏的疫情规律,为精准施策提供科学的参考依据。同时,实时监控疫情的数据,可以让人们实时掌握和监控病情情况,从而了解最新的信息。相信,在全国人民科学抗疫、精准抗疫的努力下,我们一定会取得抗疫的最终胜利,待春暖花开之时,脱去口罩,呼吸新鲜的空气。点击添加文本点击添加文本点击添加文本点击添加文本本项目主要介绍Flume简介、工作原理Flume的优势和特征Flume的下载、安装、配置和启动FlumeAgent三大组件Source、Channel、Sink的原理和属性Flume监听具体端口的数据并输出数据到控制台Flume监听Hive日志文件并将监听到的数据输出到Flume控制台Flume监听Hive日志文件并将监听到的数据输出到HDFS点击添加文本点击添加文本点击添加文本点击添加文本目录能力目标◎能掌握FlumeAgent三大组件Source、Channel、Sink的原理和属性◎能根据实际项目需求配置Flume监听某一端口日志数据并输出到控制台的配置文件◎能根据实际项目需求配置Flume监听某一端口日志数据并输出到HDFS的配置文件◎能根据实际项目需求配置Flume监听Hive日志文件并输出到控制台的配置文件知识目标◎熟悉FlumeAgent三大组件Source、Channel、Sink的原理和属性。◎熟悉Flume监听某一端口日志数据并输出到控制台的配置文件。◎熟悉Flume监听某一端口日志数据并输出到HDFS的配置文件。◎熟悉Flume监听Hive日志文件并输出到控制台的配置文件学习重点◎FlumeAgent三大组件Source、Channel、Sink的原理和属性◎根据不同的项目需求,对FlumeSource、Channel、Sink的属性进行相应的配置。学习难点◎根据不同的项目需求,对FlumeSource、Channel、Sink的属性进行相应的配置。点击添加文本点击添加文本点击添加文本点击添加文本任务1Flume监听指定端口
Flume监听端口6666,并将监听到的数据输出到Flume控制台任务描述点击添加文本点击添加文本点击添加文本点击添加文本任务1Flume监听指定端口Flume是Cloudera提供的一个分布式、高可靠的、高可用的海量日志收集、聚合和传输系统。Flume具有基于流动数据流的简单灵活的体系结构,具有可调整的可靠性机制以及许多故障转移和恢复机制,具有强大的功能和容错能力。Flume使用一个简单的可扩展数据模型,允许在线分析应用程序。Flume于2009年被捐赠给apache软件基金会,成为Hadoop相关组件之一。近几年随着flume不断被完善以及版本的不断升级、flume内部的各种组件不断丰富,用户在开发的过程中使用Flume软件变得越来越容易。Flume简介点击添加文本点击添加文本点击添加文本点击添加文本任务1Flume监听指定端口Flume数据流模型Flume的核心是FlumeAgent,Flumeagent是一个(JVM)进程,承载了三大组件Source、Channel、Sink,事件通过这些组件从外部源流到下一个目标。FlumeSource是负责接收数据到FlumeAgent的组件,接收外部源(如Web服务器)传递给它的事件,外部数据源以目标FlumeSource可以识别的格式将事件发送到FlumeSource。Channel是连接Source和Sink的组件,大家可以将它看做一个数据的缓冲区(数据队列),它可以将事件暂存到内存中也可以持久化到本地磁盘上,Sink从Channel中取出事件,然后将数据发到别处,可以向文件系统、数据库、hadoop存数据,也可以是其他agent的Source。Flume简介点击添加文本点击添加文本点击添加文本点击添加文本任务1Flume监听指定端口Flume的优势表现为以下几点:Flume可以将应用产生的数据输出到Flume控制台或者传输到任何一个集中存储器中,比如HDFS,HBase。当Flume传输的数据量非常大时,如果收集数据的速度超过了数据被写入的速度,甚至超过了系统写入数据的能力,此时,Flume会在数据生产者和数据接收器间做出调整,保证其能够在两者之间提供平稳的数据传输,避免造成Flume进程的崩溃。提供上下文路由特征Flume的管道是基于事务,保证了数据在传送和接收时的一致性。Flume具有高可靠性、高容错性,并且是可升级的、易管理的、可定制的。Flume具有的特征:Flume可以高效率的将多个网站服务器中收集的日志信息作为数据源存入海量数据集群中,例如HDFS、HBase。Flume支持多种接入资源数据的类型以及接出数据类型Flume支持多路径流量,多管道接入流量,多管道接出流量,上下文路由等使用Flume,我们可以将从多个服务器中获取的数据快速、高效、准确地传输到Hadoop中.Flume具有高扩展性,可以很容易地被水平扩展。Flume采用了三层架构,分别为agent,collector和storage,每一层均可以水平扩展。其中,所有agent和collector由master统一管理,这使得系统容易监控和维护并且避免了单点故障问题。2.Flume的优势和特征点击添加文本点击添加文本点击添加文本点击添加文本任务1Flume监听指定端口i.下载安装包并解压下载压缩包:apache-flume-1.9.0-bin.tar.gz解压:tarzxvfapache-flume-1.9.0-bin.tar.gzii.配置环境变量vi/etc/profile修改环境变量:exportFLUME_HOME=/opt/software/flumeexportFLUME_CONF_DIR=$FLUME_HOME/conexportPATH=$PATH:$FLUME_HOME/bin让配置生效source/etc/profileiii.配置flume-env.sh(/opt/software/flume/conf)文件的JAVA_HOMEexportJAVA_HOME=/opt/software/jdk1.8.0_131启动Flumebin/flume-ngagent-nagent名称-cconf-fFlume配置文件-Dflume.root.logger=INFO,console3.Flume的下载、安装、配置、启动点击添加文本点击添加文本点击添加文本点击添加文本任务1Flume监听指定端口4.FlumeSource组件
FlumeSource是负责接收数据的组件,接收外部数据源(如Web服务器)传递给它的事件,外部数据源以目标FlumeSource可以识别的格式将事件发送到FlumeSource。Flume将数据表示为事件,事件是非常简单的数据结构,具有一个主体和一个报头集合,事件的主体是一个字节数组,报头被标记为一个map,其中有字符串key和字符串value,报头只是为了路由和标记事件的优先级。Source组件可以处理多种类型格式的日志数据,包括
netcat、Exec、Avro、Thrift、HTTP、SpoolingDirectory、Syslog、HTTP、Legacy等。官方提供的source类型已经很多,但是有时候仍不能满足实际开发当中的需求,此时我们可以根据实际需求自定义某些source。点击添加文本点击添加文本点击添加文本点击添加文本任务1Flume监听指定端口4.FlumeSource组件Source类型描述NetcatSourcenetcatsource监听一个给定的端口,然后把文本文件的每一行转换成一个eventExecSourceExecSource在启动时运行一个Unix命令行,并期望这过程在标准输出上连续生产数据AvroSource监听Avro端口,并从Avroclientstreams接收eventsThriftSource监听Thrift端口,并从外部Thriftclientstreams接收eventsHTTPSource基于HTTPPOST或GET方式的数据,支持JSON等格式SpoolingDirectorySource监控指定目录内数据的变化SyslogSource读取系统日志,产生Event,支持TCP和UDP协议LegacySource
表1-1Source类型FlumeSource可以监听一个或者多个网络端口,也可以从本地文件系统读取数据。FlumeSource接收到事件后,会将其存储到通道FlumeChannel中,一个Source可以将数据写入到一个Channel或多个Channel中,多个Source也可以将数据写入到同一个Channel中。点击添加文本点击添加文本点击添加文本点击添加文本任务1Flume监听指定端口4.FlumeSource组件属性值默认值描述channels-
type-组件类型名称,需要是netcatbind-绑定的主机名或者ip地址port-绑定的端口号max-line-length512每个Eventbody的最大行长(以字节为单位)ack-every-eventtrue每个Event被接收后,是否回复OK.selector.typereplicating复制或多路复用selector.*
Dependsontheselector.typevalueinterceptors-空格分隔的拦截器列表interceptors.*
Netcat
Source监听一个给定的端口,然后把文本文件的每一行转换成一个event。下图列出了NetcatSource的属性,其中必须属性为粗体显示。表1-2NetcatSource的属性点击添加文本点击添加文本点击添加文本点击添加文本任务1Flume监听指定端口4.FlumeSource组件NetcatSource属性配置举例如下(Agent名称为a1):a1.sources
=
r1a1.sinks
=
k1a1.channels
=
c1a1.sources.r1.type
=
netcata1.sources.r1.bind
=
localhosta1.sources.r1.port
=
44444点击添加文本点击添加文本点击添加文本点击添加文本任务1Flume监听指定端口5.FlumeChannel组件FlumeChannel是被动存储,负责临时缓冲FlumeSource已经接收但还未写入到另一个Agent或存储系统的数据。FlumeSource将数据写入到Channel,Sink从Channel读取数据,Channel负责连接Source和Sink。一个Sink只能从一个Channel读取数据,多个Sink也可以从相同的Channel读取数据。Channel支持多种类型,如JDBC、文件系统、内存等。Channel常用类型如表7-4所示。点击添加文本点击添加文本点击添加文本点击添加文本任务1Flume监听指定端口5.FlumeChannel组件Channel类型描述MemoryChannelEvent数据存储在内存中JDBCChannelEvent数据存储在持久化存储中FileChannel
ent数据存储在磁盘文件中CustomChannel自定义表1-3常用Channel类型点击添加文本点击添加文本点击添加文本点击添加文本任务1Flume监听指定端口5.FlumeChannel组件属性名称默认值描述Type—类型名称,需要是memoryCapacity100存储在Channel中的最大Event数量transactionCapacity100Channel每次从Source接收或发送到Sink的Events的最大数量Keep-alive3尝试添加或者删除一个event的超时时间,单位为秒。
byteCapacity—Channel中所有Event的总和允许的最大内存字节数byteCapacityBufferPercentage20缓存百分比MemoryChannel属性如表7-5所示。表1-4MemoryChannel属性MemoryChannel属性配置举例如下(Agent名称为a1):a1.channels=c1a1.channels.c1.type=memorya1.channels.c1.capacity=10000a1.channels.c1.transactionCapacity=10000a1.channels.c1.byteCapacityBufferPercentage=20a1.channels.c1.byteCapacity=800000点击添加文本点击添加文本点击添加文本点击添加文本任务1Flume监听指定端口6.FlumeSink组件Sink类型描述LoggerSink数据写入日志文件HDFSSink数据写入HDFSHBaseSink数据写入HBaseAvroSink数据被转换成AvroEvent,然后发送到配置的RPC端口上ThriftSink数据被转换成ThriftEvent,然后发送到配置的RPC端口上FileRollSink数据存储到本地文件系统CustomSink自定义SinkFlumeSink不断轮询绑定的Channel来读取数据。Sink将数据写入到最终的目的地,一旦其目的地中的数据是安全的,Sink通过事务提交通知Channel,删除Channel中的这些事件。常用Sink类型如表7-5所示。表1-5常用Sink类型点击添加文本点击添加文本点击添加文本点击添加文本任务1Flume监听指定端口6.FlumeSink组件属性名默认值描述channel-
type-组件类型名称,需要是loggerMaxBytesToLog16Eventbody记录的最大字节数表1-6LoggerSink属性LoggerSink属性配置举例如下(Agent名称为a1):a1.channels
=
c1a1.sinks
=
k1a1.sinks.k1.type
=
loggera1.sinks.k1.channel
=
c1点击添加文本点击添加文本点击添加文本点击添加文本任务1Flume监听指定端口任务实施安装netcat工具。运行命令:yuminstall–ync2.查看6666端口是否被占用。运行命令:netstat-tunlp|grep66663.在flume安装目录下,新建文件夹job运行命令:mkdirjob4.在job文件夹中,新建Flume配置文件netcat-flume-logger.conf运行命令:touchnetcat-flume-logger.conf5.配置Flume配置文件netcat-flume-logger.conf配置netcat-flume-logger.conf
,分为以下5步:点击添加文本点击添加文本点击添加文本点击添加文本任务1Flume监听指定端口任务实施将agent组件(Source,Channel,Sink)起名a1.sources=r1a1.sinks=k1a1.channels=c12.配置Source相关属性a1.sources.r1.type
=
netcata1.sources.r1.bind
=
localhosta1.sources.r1.port
=
66663.配置Sink相关属性a1.sinks.k1.type=logger4.配置Channel相关属性a1.channels.c1.type=memorya1.channels.c1.capacity=1000a1.channels.c1.transactionCapacity=1005.绑定Source-Channels,Sink-Channela1.sources.r1.channels=c1a1.sinks.k1.channel=c1点击添加文本点击添加文本点击添加文本点击添加文本任务1Flume监听指定端口任务实施完整的Flume配置文件如下:#Namethecomponentsonthisagenta1.sources
=
r1a1.sinks
=
k1a1.channels
=
c1#Describe/configurethesourcea1.sources.r1.type
=
netcata1.sources.r1.bind
=
localhosta1.sources.r1.port
=
6666#Describethesinka1.sinks.k1.type
=
logger#Useachannelwhichbufferseventsinmemorya1.channels.c1.type
=
memorya1.channels.c1.capacity
=
1000a1.channels.c1.transactionCapacity
=
100#Bindthesourceandsinktothechannela1.sources.r1.channels
=
c1a1.sinks.k1.channel
=
c16.启动FlumeAgent,在Flume安装根目录下,运行命令:/bin/flume-ngagent-cconf-f../job/netcat-flume-logger.conf-na1-Dflume.root.logger=INFO点击添加文本点击添加文本点击添加文本点击添加文本任务1Flume监听指定端口任务实施点击添加文本点击添加文本点击添加文本点击添加文本任务1Flume监听指定端口任务实施7.使用nc工具向本机6666端口发送数据Hello,IamFlumenclocalhost66668.查看Flume输入数据到控制台点击添加文本点击添加文本点击添加文本点击添加文本任务2Flume监听Hive日志文件并将监听到的数据输出到Flume控制台任务描述Flume监听Hive运行时所产生的日志文件,并将监听到的数据输出到Flume控制台。点击添加文本点击添加文本点击添加文本点击添加文本任务2Flume监听Hive日志文件并将监听到的数据输出到Flume控制台1.ExecSource的属性及取值Execsource在启动时运行Unix命令,并且期望它会不断的在标准输出中产生数据。如果进程因为某些原因退出,ExecSource也将退出并且不会再产生数据。ExecSource可以实时搜集数据,但是在Flume不运行或者Shell命令出错的情况下,数据将会丢失。ExecSource的属性及取值:(加粗标注为必须属性)点击添加文本点击添加文本点击添加文本点击添加文本任务2Flume监听Hive日志文件并将监听到的数据输出到Flume控制台1.ExecSource的属性及取值属性名默认值描述channels—
type—类型名称,需要是execcommand—要执行的命令shell—用于运行命令的ShellrestartThrottle1000在尝试重新启动之前等待的时间(单位为millis)restartfalse如果cmd挂了,是否重启cmdlogStdErrfalse是否应该记录该命令的stderrbatchSize20同时发送到通道中的最大行数batchTimeout3000如果缓冲区没有满,经过多长时间发送数据selector.typereplicating复制还是多路复用selector.*
依赖于selector.type的值interceptors—空格分隔的拦截器列表interceptors.*
表1-7ExecSource的属性点击添加文本点击添加文本点击添加文本点击添加文本任务2Flume监听Hive日志文件并将监听到的数据输出到Flume控制台2.HDFSSink常用属性列表HDFSSink是FlumeSink提供的重要类型之一,HDFSSink接收器将事件写入Hadoop分布式文件系统(HDFS)。它支持创建文本和序列文件,并支持各种类型文件的压缩。可以根据经过的时间、数据大小或事件数定期滚动文件(关闭当前文件并创建一个新文件)。HDFS目录路径可能包含格式化转义序列,这些序列将由HDFS接收器取代,以生成用于存储事件的目录/文件名。使用此接收器需要安装Hadoop,以便Flume可以使用Hadoopjar包与HDFS群集进行通信。点击添加文本点击添加文本点击添加文本点击添加文本任务2Flume监听Hive日志文件并将监听到的数据输出到Flume控制台2.
HDFSSink常用属性列表属性名默认值描述channel-typehdfs组件类型名称,需要是hdfshdfs.path-写入HDFS的路径,需要包含文件系统标识如:hdfs://namenode/flume/webdata/hdfs.inUseSuffix.tmpFlume临时文件名的后缀hdfs.rollInterval30HDFSSink间隔多长时间(单位:s)将临时文件最终滚动成目标文件。如果设置成0,则表示不根据时间来滚动文件hdfs.rollSize1024当临时文件达到该大小时(单位:Bytes),滚动成目标文件。如果设置成0,则表示不根据临时文件大小来滚动文件。hdfs.rollCount10当Event数据达到该数量的时候,将临时文件滚动成目标文件。如果设置成0,则表示不根据Event数据来滚动文件。hdfs.fileTypeSequenceFileFileformat:currently
SequenceFile,DataStreamorCompressedStreamhdfs.filePrefixFlumeData写入HDFS的文件名前缀hdfs.fileSuffix_写入HDFS的文件名后缀hdfs.batchSize100每个批次刷新到HDFS上的events数量hdfs.maxOpenFiles5000最大允许打开的HDFS文件数,当打开的文件数达到该值时,最早打开的文件将会被关闭hdfs.roundfalse是否启用时间上的”舍弃”,这里的”舍弃”,类似于”四舍五入”。如果启用,则会影响除了%t的其他所有时间表达式;hdfs.roundValue1时间上进行“舍弃”的值hdfs.roundUnitsecond单位值:时、分、秒hdfs.timeZoneLocalTime解析文件路径的时区名称hdfs.useLocalTimeStampFalse是否使用本地时间戳表1-8HDFSSink常用属性列表点击添加文本点击添加文本点击添加文本点击添加文本任务2Flume监听Hive日志文件并将监听到的数据输出到Flume控制台2.
HDFSSink常用属性列表HDFSSink属性配置举例如(Agent名称为aa1.channels
=
c1a1.sinks
=
k1a1.sinks.k1.type
=
hdfsa1.sinks.k1.channel
=
c1a1.sinks.k1.hdfs.path=/flume/events/%y-%m-%d/%H%M/%Sa1.sinks.k1.hdfs.filePrefix
=
events-a1.sinks.k1.hdfs.round
=
truea1.sinks.k1.hdfs.roundValue
=
10a1.sinks.k1.hdfs.roundUnit
=
minute点击添加文本点击添加文本点击添加文本点击添加文本任务2Flume监听Hive日志文件并将监听到的数据输出到Flume控制台任务实施1.将agent组件(Source,Channel,Sink)起名a1.sources=r1a1.sinks=k1a1.channels=c12.配置Source相关属性a1.sources.r1.type=execmand=tail-f/home/hadoop/hive/logs/hive.log3.配置Sink相关属性a1.sinks.k1.type=logger4.配置Channel相关属性a1.channels.c1.type
=
memorya1.channels.c1.capacity
=
1000a1.channels.c1.transactionCapacity
=
1005.绑定Source-Channels,Sink-Channela1.sources.r1.channels
=
c1a1.sinks.k1.channel
=
c11.在job文件夹,新建Flume配置文件file-flume-logger.conf
运行命令:touchfile-flume-logger.conf2.配置Flume配置文件file-flume-logger.conf
,分为以下5步:点击添加文本点击添加文本点击添加文本点击添加文本任务2Flume监听Hive日志文件并将监听到的数据输出到Flume控制台任务实施完整的Flume配置文件如下:#namethecomponentsonthisagenta1.sources=r1a1.sinks=k1a1.channels=c1#Describe/configurethesourcea1.sources.r1.type=execmand=tail-f/home/hadoop/hive/logs/hive.log#Describethesinka1.sinks.k1.type=logger#Useachannelwhichbufferseventsinmemorya1.channels.c1.type=memorya1.channels.c1.capacity=1000a1.channels.c1.transactionCapacity=100#Bindthesourceandsinktothechannela1.sources.r1.channels=c1a1.sinks.k1.channel=c1点击添加文本点击添加文本点击添加文本点击添加文本任务2Flume监听Hive日志文件并将监听到的数据输出到Flume控制台任务实施3.启动FlumeAgent/bin/flume-ngagent-cconf–f/job/file-flume-logger.conf-na1-Dflume.root.logger点击添加文本点击添加文本点击添加文本点击添加文本任务2Flume监听Hive日志文件并将监听到的数据输出到Flume控制台任务实施运行Hadoop启动脚本:start-dfs.sh,start-yarn.sh运行命令:start-dfs.sh运行命令:start-yarn.sh点击添加文本点击添加文本点击添加文本点击添加文本任务2Flume监听Hive日志文件并将监听到的数据输出到Flume控制台任务实施5.查看hadoop是否启动成功?运行命令:jpsHadoop启动成功。点击添加文本点击添加文本点击添加文本点击添加文本任务2Flume监听Hive日志文件并将监听到的数据输出到Flume控制台任务实施6.启动hive.进入hive安装目录下的bin目录,运行命令:hive点击添加文本点击添加文本点击添加文本点击添加文本任务2Flume监听Hive日志文件并将监听到的数据输出到Flume控制台任务实施7.在hive操作数据库hive,新建表student:
运行命令:usehive;createtablestudent(idint,namestring);点击添加文本点击添加文本点击添加文本点击添加文本任务2Flume监听Hive日志文件并将监听到的数据输出到Flume控制台任务实施8.查看Flume控制台的输出数据Flume将hive.log中时实增加的数据输出到控制台。
点击添加文本点击添加文本点击添加文本点击添加文本能力拓展Flume监听Hive日志文件并将监听到的数据输出到HDFS在job文件夹,新建Flume配置文件file-flume-hdfs.conf
运行命令:touchfile-flume-logger.conf
点击添加文本点击添加文本点击添加文本点击添加文本能力拓展Flume监听Hive日志文件并将监听到的数据输出到HDFS1.将agent组件(Source,Channel,Sink)起名a1.sources=r1a1.sinks=k1a1.channels=c12.配置Source相关属性a1.sources.r1.type=execmand=tail-F/home/hadoop/hive/logs/hive.log3.配置Sink相关属性#Describethesinka1.sinks.k1.type=hdfsa1.sinks.k1.hdfs.path=/flume/event/%Y-%m-%d/%Ha1.sinks.k1.hdfs.filePrefix=logs-#是否按照时间回滚文件夹a1.sinks.k1.hdfs.round=truea1.sinks.k1.hdfs.roundValue=1a1.sinks.k1.hdfs.roundUnit=houra1.sinks.k1.hdfs.useLocalTimeStamp=true#积攒多少个Event才flush到HDFS一次a1.sinks.k1.hdfs.batchsize=1000a1.sinks.k1.hdfs.fileType=DataStream#多久生成一个新文件a1.sinks.k1.hdfs.rollInterval=60#设置每个文件的滚动大小a1.sinks.k1.hdfs.rollSize=134217700#文件滚动与Event无关a1.sinks.k1.hdfs.rollCount=02.配置Flume配置文件file-flume-logger.conf
,分为以下5步:
点击添加文本点击添加文本点击添加文本点击添加文本能力拓展Flume监听Hive日志文件并将监听到的数据输出到HDFS4.配置Channel相关属性a1.channels.c1.type
=
memorya1.channels.c1.capacity
=
1000a1.channels.c1.transactionCapacity
=
1005.绑定Source-Channels,Sink-Channela1.sources.r1.channels
=
c1a1.sinks.k1.channel
=
c1
点击添加文本点击添加文本点击添加文本点击添加文本能力拓展Flume监听Hive日志文件并将监听到的数据输出到HDFS完整的Flume配置文件如下:#namethecomponentsonthisagenta1.sources=r1a1.sinks=k1a1.channels=c1#Describe/configurethesourcea1.sources.r1.type=execmand=tail-F/home/hadoop/hive/logs/hive.log#Describethesinka1.sinks.k1.type=hdfsa1.sinks.k1.hdfs.path=/flume/event/%Y-%m-%d/%Ha1.sinks.k1.hdfs.filePrefix=logs-#是否按照时间回滚文件夹a1.sinks.k1.hdfs.round=truea1.sinks.k1.hdfs.roundValue=1a1.sinks.k1.hdfs.roundUnit=houra1.sinks.k1.hdfs.useLocalTimeStamp=true#积攒多少个Event才flush到HDFS一次a1.sinks.k1.hdfs.batchsize=1000a1.sinks.k1.hdfs.fileType=DataStream#多久生成一个新文件a1.sinks.k1.hdfs.rollInterval=60#设置每个文件的滚动大小a1.sinks.k1.hdfs.rollSize=134217700#文件滚动与Event无关a1.sinks.k1.hdfs.rollCount=0#Useachannelwhichbufferseventsinmemorya1.channels.c1.type=memorya1.channels.c1.capacity=1000a1.channels.c1.transactionCapacity=100#Bindthesourceandsinktothechannela1.sources.r1.channels=c1a1.sinks.k1.channel=c1
点击添加文本点击添加文本点击添加文本点击添加文本能力拓展Flume监听Hive日志文件并将监听到的数据输出到HDFS/bin/flume-ngagent-cconf–fjob/file-flume-hdfs.conf-na1-Dflume.root.logger=INFO3.启动FlumeAgent
点击添加文本点击添加文本点击添加文本点击添加文本能力拓展Flume监听Hive日志文件并将监听到的数据输出到HDFS4.运行Hadoop启动脚本:start-dfs.sh,start-yarn.sh运行命令:start-dfs.sh运行命令:start-yarn.sh
点击添加文本点击添加文本点击添加文本点击添加文本能力拓展Flume监听Hive日志文件并将监听到的数据输出到HDFS5.查看hadoop是否启动成功?运行命令:jpsHadoop启动成功。
点击添加文本点击添加文本点击添加文本点击添加文本能力拓展Flume监听Hive日志文件并将监听到的数据输出到HDFS6.启动hive.
进入hive安装目录下的bin目录,运行命令:hive
点击添加文本点击添加文本点击添加文本点击添加文本能力拓展Flume监听Hive日志文件并将监听到的数据输出到HDFS7.在hive操作数据库hive,新建表student:
运行命令:usehive;createtablestudent(idint,namestring);
点击添加文本点击添加文本点击添加文本点击添加文本能力拓展Flume监听Hive日志文件并将监听到的数据输出到HDFS进入HDFSweb端页面,查看按照file-flume-hdfs.conf配置的文件格式生成的文件,文件夹的格式为“/flume/event/%Y-%m-%d/%H”,文件名的前缀为“logs-”Flume将hive.log中时实增加的数据输出到HDFS。在hive中,进行多步操作之后,HDFS按照file-flume-hdfs.conf配置的文件格式和文件大小,回滚生成新的文件。
点击添加文本点击添加文本点击添加文本点击添加文本小结本项目主要介绍使用Flume对指定端口的数据、Hive运行过程中所产生的日志文件进行实时监听,并将监听到的内容输出到Flume控制台、HDFS。首先讲解了Flume软件的下载、安装、配置,其次讲解了FlumeAgent的工作原理以及FlumeSource、Channel、Sink三大组件的属性和取值,最后根据不同的项目需求对Flume进行不同的配置来实现不用的功能。通过该项目使学生掌握Flume实时监听指定端口、具体文件并输出到Flume控制台、HDFS的应用。点击添加文本点击添加文本点击添加文本点击添加文本自我检测选择题FlumeAgent包含的三大组件包含Source,Channel,____
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电力电容器配件工岗中应急响应考核试卷含答案
- 履带吊司机岗前质量控制考核试卷含答案
- 催化剂处理工岗位发展趋势考核试卷含答案
- 支护锚喷工岗中安全防护考核试卷含答案
- 结构力学试题及答案
- 高流动性超高强纤维增强水泥基材料的制备与性能探究:从微观到宏观的深度剖析
- 高校财务信息公开化:现状、困境与突破路径研究
- 高校实训中心建设项目质量控制的深度剖析与实践策略-以NT学院为例
- 高校多媒体教学:基于大学生视角的教学效果评价与提升路径
- 高机械指数超声造影对结肠癌肝转移的影响:机制与实验探究
- 2026上海复旦大学附属中山医院青浦新城院区临床护理岗位招聘笔试题库及答案详解
- 2026年广东省考《申论》真题及答案解析(县级卷)
- 2026年食品安全法知识竞赛试题及答案
- 2026年齐齐哈尔拜泉县公开招聘幼儿教师34人笔试备考试题及答案详解
- 2026年浙江省宁波市初一新生入学分班数学考试真题及答案
- 医院担架外包合同
- 中国溃疡性结肠炎诊治指南2023年课件
- 《工业管道安全技术规程》(TSG31-2025)监督检验规则培训
- 施工人员安全教育与培训方案
- 2026年及未来5年市场数据中国不良资产处置市场竞争态势及行业投资潜力预测报告
- 销售岗试用期考核制度
评论
0/150
提交评论