头歌Flume采集方案管理答案

Flume采集方案第一关

#定义三大组件的名称  和关联
a1.sources = r1
a1.channels = c1
a1.sinks = k1
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
?
#定义Source的相关属性
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /opt/flume/flumedata/aa.txt
?
#定义channel的相关属性
a1.channels.c1.type = memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100
?
#定义Sink的相关属性
a1.sinks.k1.type=hdfs
a1.sinks.k1.hdfs.path = hdfs://localhost:9000/flume/%Y-%m-%d/%H-%M
a1.sinks.k1.hdfs.filePrefix = wcm
a1.sinks.k1.hdfs.fileSuffix = .wsy
#下面三个条件满足其一,就会产生新文件
#新文件产生的时间周期,单位是秒,   如果设置为0表示不会产生新文件。
a1.sinks.k1.hdfs.rollInterval = 6    
#当前文件达到1000字节,就会产生新文件
a1.sinks.k1.hdfs.rollSize = 1000
#当前文件的event数量达到10条,就会产生新文件
a1.sinks.k1.hdfs.rollCount = 10
#如果writeFormat指定了Text,那么fileType必须是DataStream
a1.sinks.k1.hdfs.writeFormat = Text
a1.sinks.k1.hdfs.fileType = DataStream
?
#round的作用,用于指定是否滚动文件夹  false 表示不滚动文件夹
a1.sinks.k1.hdfs.round = true      
#设置文件夹滚动的时间单位
a1.sinks.k1.hdfs.roundUnit = minute
#设置文件夹固定的时间数字大小
a1.sinks.k1.hdfs.roundValue = 2
#如果目录上设置了时间格式字符串,比如%Y等,那么下面的属性应该设置为true,除非event的head里有一个叫timestamp的消息头
a1.sinks.k1.hdfs.useLocalTimeStamp = true
#配置source和sink绑定到channel
a1.sinks.hdfs-k1.channel = c1
a1.sources.taildir-r1.channels = c1

第二关

#命名,并关联  
a1.sources=r1  
a1.channels=c1  
a1.sinks=s1  
a1.sources.r1.channels=c1  
a1.sinks.s1.channel=c1
#设置spool源  
#当前source的类型  
a1.sources.r1.type=spooldir          
#要从中读取文件的目录  
a1.sources.r1.spoolDir=/opt/flume/flumedata      
#附加到完全读取的文件的后缀  默认值:.COMPLETED  
a1.sources.r1.fileSuffix=.dfs      
#何时删除已完成的文件, never or immediate 默认值:never  
a1.sources.r1.deletePolicy=never      
#是否添加存储绝对路径文件名的头文件  默认值:false  
a1.sources.r1.fileHeader=false      
#标题键,当将绝对路径文件名附加到事件标题时使用 默认值:file//标题键,当将绝对路径文件名附加到事件标题时使用 默认值:file  
a1.sources.r1.fileHeaderKey=file      
#是否添加存储文件基本名的头文件。 默认值:false  
a1.sources.r1.basenameHeader=true      
#当将文件的基本名称附加到事件标头时使用的标头键。  默认值:basename  
a1.sources.r1.basenameHeaderKey=filename      
#批处理传输到通道的粒度  默认值:100  
a1.sources.r1.batchSize=100      
#将输入文件视为文本的反序列化器使用的字符集。  默认值:UTF-8  
a1.sources.r1.inputCharset=UTF-8      
#提交缓冲区可以容纳的最大行数  
a1.sources.r1.bufferMaxLines=1000   
#设置file的channel  
a1.channels.c1.type=file
#设置hdfs的sink  
#当前sink的类型  
a1.sinks.s1.type=hdfs          
#hdfs上的目录路径  
a1.sinks.s1.hdfs.path=hdfs://localhost:9000/flume/hdfs/%Y          
#在替换转义序列时,使用本地时间(而不是事件头的时间戳)  默认值:false  
a1.sinks.s1.hdfs.useLocalTimeStamp=true      
#附加到文件的前缀 
a1.sinks.s1.hdfs.filePrefix=%{filename}      
#附加到文件的后缀(例如:.avro -注意:句点不会自动添加)  
a1.sinks.s1.hdfs.fileSuffix=.dfs      
#在滚动当前文件之前等待的秒数(0 =根据时间间隔永不滚动)  默认值:30  
a1.sinks.s1.hdfs.rollInterval=30      
#要触发滚动的文件大小,以字节为单位(0:永远不要基于文件大小进行滚动)  默认值:1024  
a1.sinks.s1.hdfs.rollSize=100      
#滚前写入文件的事件数(0 =从不基于事件数滚) 默认值:10  
a1.sinks.s1.hdfs.rollCount=10      
#在将文件刷新到HDFS之前写入文件的事件数  默认值:100  
a1.sinks.s1.hdfs.batchSize=100      
#序列文件(SequenceFile)记录的格式。Text或Writable在使用Flume创建数据文件之前设置为Text,否则这些文件不能被Apache Impala(孵化)或Apache Hive读取。 默认值:Writable  
a1.sinks.s1.hdfs.writeFormat=Text      
#文件格式:SequenceFile, DataStream或CompressedStream  
a1.sinks.s1.hdfs.fileType=DataStream      
#是否应该将时间戳四舍五入(如果为真,则影响除%t之外的所有基于时间的转义序列) 默认值:false  
a1.sinks.s1.hdfs.round=false      
#将此(在使用hdfs.roundUnit配置的单元中)分为以上多个(在单元配置的单元中),小于当前时间  默认值:1   
a1.sinks.s1.hdfs.roundValue=2        
#四舍五入的单位,时间,分钟,或小时   默认值:second  
a1.sinks.s1.hdfs.roundUnit=minute  

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
第一部分  NoSQL入门 第1章  NoSQL的概念及适用范围 2 1.1  定义和介绍 3 1.1.1  背景与历史 3 1.1.2  大数据 5 1.1.3  可扩展性 7 1.1.4  MapReduce 8 1.2  面向列的有序存储 9 1.3  键/值存储 11 1.4  文档数据库 14 1.5  图形数据库 15 1.6  小结 16 第2章  NoSQL上手初体验 17 2.1  第一印象——两个简单的例子 17 2.1.1  简单的位置偏好数据集 17 2.1.2  存储汽车品牌和型号数据 22 2.2  使用多种语言 30 2.2.1  MongoDB驱动 30 2.2.2  初识Thrift 33 2.3  小结 34 第3章  NoSQL接口与交互 36 3.1  没了SQL还剩什么 36 3.1.1  存储和访问数据 37 3.1.2  MongoDB数据存储与访问 37 3.1.3  MongoDB数据查询 41 3.1.4  Redis数据存储与访问 43 3.1.5  Redis数据查询 47 3.1.6  HBase数据存储与访问 50 3.1.7  HBase数据查询 52 3.1.8  Apache Cassandra数据存储与访问 54 3.1.9  Apache Cassandra数据查询 55 3.2  NoSQL数据存储的语言绑定 56 3.2.1  Thrift 56 3.2.2  Java 56 3.2.3  Python 58 3.2.4  Ruby 59 3.2.5  PHP 59 3.3  小结 60 第二部分  NoSQL基础 第4章  理解存储架构 62 4.1  使用面向列的数据库 63 4.1.1  使用关系型数据库中的表格和列 63 4.1.2  列数据库对比RDBMS 65 4.1.3  列数据库当做键/值对的嵌套映射表 67 4.1.4  Webtable布局 70 4.2  HBase分布式存储架构 71 4.3  文档存储内部机制 73 4.3.1  用内存映射文件存储数据 74 4.3.2  MongoDB集合和索引使用指南 75 4.3.3  MongoDB的可靠性和耐久性 75 4.3.4  水平扩展 76 4.4  键/值存储Memcached和Redis 78 4.4.1  Memcached的内部结构 78 4.4.2  Redis的内部结构 79 4.5  最终一致性非关系型数据库 80 4.5.1  一致性哈希 81 4.5.2  对象版本 82 4.5.3  闲话协议和提示移交 83 4.6  小结 83 第5章  执行CRUD操作 84 5.1  创建记录 84 5.1.1  在以文档为中心的数据库中创建记录 85 5.1.2  面向列数据库的创建操作 91 5.1.3  键/值映射表的创建操作 93 5.2  访问数据 96 5.2.1  用MongoDB访问文档 96 5.2.2  用HBase访问数据 97 5.2.3  查询Redis 98 5.3  更新和删除数据 98 5.3.1  使用MongoDB、HBase和Redis更新及修改数据 98 5.3.2  有限原子性和事务完整性 99 5.4  小结 100 第6章  查询NoSQL存储 101 6.1  SQL与MongoDB查询功能的相似点 101 6.1.1  加载MovieLens数据 103 6.1.2  MongoDB中的MapReduce 108 6.2  访问HBase等面向列数据库中的数据 111 6.3  查询Redis数据存储 113 6.4  小结 116 第7章  修改数据存储及管理演进 117 7.1  修改文档数据库 117 7.1.1  弱schema的灵活性 120 7.1.2  MongoDB的数据导入与导出 121 7.2  面向列数据库中数据schema的演进 124 7.3  HBase数据导入与导出 125 7.4  键/值存储中的数据演变 126 7.5  小结 126 第8章  数据索引与排序 127 8.1  数据库索引的基本概念 127 8.2  MongoDB的索引与排序 128 8.3  MongoDB里创建和使用索引 131 8.3.1  组合与嵌套键 136 8.3.2  创建唯一索引和稀疏索引 138 8.3.3  基于关键字的搜索和多重键 139 8.4  CouchDB的索引与排序 140 8.5  Apache Cassandra的索引与排序 141 8.6  小结 143 第9章  事务和数据完整性的管理 144 9.1  RDBMS和ACID 144 9.2  分布式ACID系统 147 9.
Flume是Apache下的一个分布式、可靠且高可用的海量日志采集、聚合和传输的系统。它可以将多个数据源的数据采集Hadoop系统中进行处理和分析。 一个简单的Flume采集方案案例如下: 1. 配置Flume Agent 在Flume的conf目录中,新建一个配置文件flume.conf,并添加以下内容: ``` # Name the components on this agent agent.sources = source1 agent.sinks = sink1 agent.channels = channel1 # Describe/configure the source agent.sources.source1.type = netcat agent.sources.source1.bind = localhost agent.sources.source1.port = 44444 # Describe the sink agent.sinks.sink1.type = logger # Use a channel which buffers events in memory agent.channels.channel1.type = memory agent.channels.channel1.capacity = 1000 agent.channels.channel1.transactionCapacity = 100 # Bind the source and sink to the channel agent.sources.source1.channels = channel1 agent.sinks.sink1.channel = channel1 ``` 2. 启动Flume Agent 在Flume的bin目录中,执行以下命令启动Flume Agent: ``` ./flume-ng agent --conf-file ../conf/flume.conf --name agent -Dflume.root.logger=INFO,console ``` 3. 发送数据 在终端中,执行以下命令向Flume Agent发送数据: ``` nc localhost 44444 ``` 4. 查看结果 在终端中,可以看到Flume Agent接收到了数据,并将数据输出到日志中。 以上就是一个简单的Flume采集方案案例。通过配置Flume Agent,可以方便地采集多个数据源的数据,并将数据传输到Hadoop系统中进行处理和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值