Flume_常见的几个问题
在HDFS的文件默认生成文件大小1K,如何设置文件大小和数量
拷贝一份flume-conf.properties.template改名为hive-mem-size.properties
hive-mem-size.properties
a1.sources = s1
a1.channels = c1
a1.sinks = k1
# defined the source
a1.sources.s1.type = exec
a1.sources.s1.command = tail -F /opt/cdh-5.6.3/hive-0.13.1-cdh5.3.6/logs/hive.log
a1.sources.s1.shell = /bin/sh -c
# defined the channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 1000
# defined the sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = /flume/hdfs/
a1.sinks.k1.hdfs.fileType = DataStream
a1.sinks.k1.hdfs.rollInterval = 0 # 依据时间进行roll,设置为0表示不启用
a1.sinks.k1.hdfs.rollSize = 10240 # 依据大小进行roll,设置为10240表示文件大小在10k左右
a1.sinks.k1.hdfs.rollCount = 0 # 依据event数目进行roll,设置为0表示不启用
# The channel can be defined as follows.
a1.sources.s1.channels = c1
a1.sinks.k1.channel = c1
flmue目录下执行
bin/flume-ng agent -c conf/ -n a1 -f conf/hive-mem-size.properties -Dflume.root.logger=INFO,console
使用Flume是为了将最新的数据或文件上传到HDFS上,那如果遇到分区表该如何解决
拷贝一份flume-conf.properties.template改名为hive-mem-part.properties
hive-mem-part.properties
a1.sources = s1
a1.channels = c1
a1.sinks = k1
# defined the source
a1.sources.s1.type = exec
a1.sources.s1.command = tail -F /opt/cdh-5.6.3/hive-0.13.1-cdh5.3.6/logs/hive.log
a1.sources.s1.shell = /bin/sh -c
# defined the channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 1000
# defined the sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.useLocalTimeStamp = true # 注意使用时间时,本地时间戳设置为true
a1.sinks.k1.hdfs.path = /flume/events/%y-%m-%d/%H-%M/
a1.sinks.k1.hdfs.fileType = DataStream
# The channel can be defined as follows.
a1.sources.s1.channels = c1
a1.sinks.k1.channel = c1
flmue目录下执行
bin/flume-ng agent -c conf/ -n a1 -f conf/hive-mem-part.properties -Dflume.root.logger=INFO,console
这里与上面的文件大小有冲突,即设置了时间分区,肯定不能在特定时间内满足文件大小
Flume上传文件默认是以FlumeData开头,如何更改开头信息
拷贝一份flume-conf.properties.template改名为hive-mem-pre.properties
hive-mem-pre.properties
a1.sources = s1
a1.channels = c1
a1.sinks = k1
# defined the source
a1.sources.s1.type = exec
a1.sources.s1.command = tail -F /opt/cdh-5.6.3/hive-0.13.1-cdh5.3.6/logs/hive.log
a1.sources.s1.shell = /bin/sh -c
# defined the channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 1000
# defined the sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.useLocalTimeStamp = true # 注意使用时间时,本地时间戳设置为true
a1.sinks.k1.hdfs.filePrefix = hive-log
a1.sinks.k1.hdfs.path = /flume/events/%y-%m-%d/%H-%M/
a1.sinks.k1.hdfs.fileType = DataStream
# The channel can be defined as follows.
a1.sources.s1.channels = c1
a1.sinks.k1.channel = c1
flmue目录下执行
bin/flume-ng agent -c conf/ -n a1 -f conf/hive-mem-pre.properties -Dflume.root.logger=INFO,console
企业中多台Flume如何解决磁盘IO问题
启动一个hadoop集群(官方图示为4台,这里使用三台),分别部署和配置flume机器
hadoop09-linux-01.ibeifeng.com 10.0.0.108 collenct
hadoop09-linux-02.ibeifeng.com 10.0.0.109 agent
hadoop09-linux-03.ibeifeng.com 10.0.0.110 agent
选择一个agent,进入flume目录
拷贝一份flume-conf.properties.template改名为avro-agent-hive-file-hdfs.properties
avro-agent-hive-file-hdfs.properties
a1.sources = s1
a1.channels = c1
a1.sinks = k1
# defined the source
a1.sources.s1.type = exec
a1.sources.s1.command = tail -F /opt/cdh-5.6.3/hive-0.13.1-cdh5.3.6/logs/hive.log
a1.sources.s1.shell = /bin/sh -c
# defined the channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 1000
# defined the sink
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = hadoop09-linux-01.ibeifeng.com # 接收方的IP或hostname
a1.sinks.k1.port = 50505
# The channel can be defined as follows.
a1.sources.s1.channels = c1
a1.sinks.k1.channel = c1
scp发送到另一台agent
scp conf/avro-agent-hive-file-hdfs.properties hadoop09-linux-03.ibeifeng.com:/opt/cdh-5.6.3/apache-flume-1.5.0-cdh5.3.6-bin/conf/
进入collenct机器下的flume下
拷贝一份flume-conf.properties.template改名为avro-collenct-hive-file-hdfs.properties
a1.sources = s1
a1.channels = c1
a1.sinks = k1
# defined the source
a1.sources.s1.type = avro
a1.sources.s1.bind = hadoop09-linux-01.ibeifeng.com
a1.sources.s1.port = 50505
a1.sources.s1.
# defined the channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 1000
# defined the sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.filePrefix = avro
a1.sinks.k1.hdfs.useLocalTimeStamp = true
a1.sinks.k1.hdfs.path = /flume/hdfs
a1.sinks.k1.hdfs.fileType = DataStream
a1.sinks.k1.hdfs.rollInterval = 0
a1.sinks.k1.hdfs.rollSize = 20480
a1.sinks.k1.hdfs.rollCount = 0
# The channel can be defined as follows.
a1.sources.s1.channels = c1
a1.sinks.k1.channel = c1
启动rpcbind服务
再分别启动:
bin/flume-ng agent -c conf/ -n a1 -f conf/avro-collenct-hive-file-hdfs.properties -Dflume.root.logger=INFO,console
bin/flume-ng agent -c conf/ -n a1 -f conf/avro-agent-hive-file-hdfs.properties -Dflume.root.logger=INFO,console
bin/flume-ng agent -c conf/ -n a1 -f conf/avro-agent-hive-file-hdfs.properties -Dflume.root.logger=INFO,console
测试
如何解决不同操作系统下Flume
搭建nfs服务器,挂载不同系统中的目录,直接使用
Flume_常见的几个问题的更多相关文章
- SQL Server常见数据类型介绍
数据表是由多个列组成,创建表时必须明确每个列的数据类型,以下列举SQL Server常见数据类型的使用规则,方便查阅. 1.整数类型 int 存储范围是-2,147,483,648到2,147,483 ...
- C++常见笔试面试要点以及常见问题
1. C++常见笔试面试要点: C++语言相关: (1) 虚函数(多态)的内部实现 (2) 智能指针用过哪些?shared_ptr和unique_ptr用的时候需要注意什么?shared_ptr的实现 ...
- CSS入门常见的问题
写在前面:本文简单介绍一下css的三大特性:层叠性.继承性.优先级.以及margin,padding,浮动,定位几个知识点.限于水平,不深入探讨,仅作为学习总结. 1,三特性 1)层叠性:同标签同权重 ...
- Linux环境下常见漏洞利用技术(培训ppt+实例+exp)
记得以前在drops写过一篇文章叫 linux常见漏洞利用技术实践 ,现在还可以找得到(https://woo.49.gs/static/drops/binary-6521.html), 不过当时开始 ...
- salesforce 零基础学习(五十四)常见异常友好消息提示
异常或者error code汇总:https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_con ...
- springmvc环境搭建以及常见问题解决
1.新建maven工程 a) 打开eclipse,file->new->project->Maven->Maven Project b) 下一步 c) 选择创建的工程为 ...
- Objective-C runtime的常见应用
用Objective-C等面向对象语言编程时,"对象"(object)就是"基本构造单元"(building block).开发者可以通过对象来存储并传递数据. ...
- Net中的常见的关键字
Net中的关键字有很多,我们最常见的就有new.base.this.using.class.struct.abstract.interface.is.as等等.有很多的,在这里就介绍大家常见的,并且有 ...
- CSS常见居中讨论
先来一个常见的案例,把一张图片和下方文字进行居中: 首先处理左右居中,考虑到img是一个行内元素,下方的文字内容也是行内元素,因此直接用text-align即可: <style> .con ...
随机推荐
- websocket与socket.io
什么是Websocket? Websocket是一个独立于http的实时通信协议,最初是在HTML5中被引用进来的,在HTML5规范中作为浏览器与服务器的核心通信技术被嵌入到浏览器中.WebSocke ...
- Android JNI总结
@Dlive 0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大 ...
- Redis的入门及注意事项
1.redis简介 Remote Dictionary Server Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中, ...
- MVC AjaxOptions 中的OnSuccess方法执行多次的问题
原因是单个页面嵌套多个部分视图,而多个视图中有多个表单提交但是Onsuccess方法的函数名是一样的. 例如主页面的Onsuccess方法叫success 点击部分视图后js文件又含有一个succes ...
- 文件上传大小js判断
function fileChange(target) { var fileSize = 0; if (isIE && !target.files) { var filePath = ...
- GroupBy(..)的四种声明方式的理解及调用
这里我们以 List<Student> studs作为 source,但是注意,studs中的学生可以是分别属于不同的班级和年级 先看GroupBy的第一种声明: public stati ...
- 3.2 配置构建Angular应用——简单的笔记存储应用
本节我们会通过构建一个简单的笔记存储应用(可以载入并修改一组简单的笔记)来学习如何应用Angular的特性.这个应用用到的特性有: 在JSON文件中存储笔记 展示.创建.修改和删除笔记 在笔记中使用M ...
- Python爬虫Scrapy框架入门(3)
往往需要爬取的网页是呈一个树状结构.比如,需要先爬取一个目录,然后再在目录中选择具体的爬取目标.而目录和具体目标之间,网页结构不同,使得我们不能使用相同的爬取策略. 从之前的经验来看,我们对scrap ...
- addEventListener详解
为什么需要addEventListener? 先来看一个片段: html代码 <div id="box">追梦子</div> 用on的代码 window.o ...
- Delphi控件之---UpDown以及其与TEdit的配合使用(比如限制TEdit只能输入数字,还有Object Inspector之组件属性的介绍)
最近在开发中使用到了UpDown这个控件,但是因为之前没有使用过,所以很不熟悉,于是就编写了一个简单的demo来学习UpDown以及其结合TEdit的用法. 初步的常用功能的简介 目前(2015.08 ...