快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

flume的功能是什么

这篇文章主要介绍“flume的功能是什么”,在日常操作中,相信很多人在flume的功能是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”flume的功能是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

站在用户的角度思考问题,与客户深入沟通,找到蓝田网站设计与蓝田网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、成都做网站、企业官网、英文网站、手机端网站、网站推广、主机域名、虚拟空间、企业邮箱。业务覆盖蓝田地区。

flume自带写hdfs的组建 hdfs sink,功能和性能都不错,就是有些缺点不好克服。

1,收集的日志一直在写hadoop,虽然可以订一个规则间断写hadoop,例如设置batchSize等,但在大压力下,几乎可以认为是每时每刻都在写hafs.

2,容错性差,日志收集的过程中,hadoop出现错误(例如,hdfs丢块)等问题,就会崩溃。

3,还有4,5等等,就是hdfs sink 有些问题了,不写了。

这里写一个先收集日志到本地,形成文件,然后把这个文件上载到远程的hadoop上。

这样做有好处,

1,日志收聚到本地文件。在收集日志过程中出现的hadoop错误、异常等等文件,在收集日志成文件的工程中不存在。

2,上传到hadoop采用文件的方式,使用hadoop自己的fs API,可以有很好的效率。

3,很好的容错机制,上传文件的工程中出现hadoop问题,导致文件上传失败,没关系,下一个工作任务再上传就好了,只有上传成功才删除本地文件。

4,还有好多了,这里不写了。

大致的架构

flume的功能是什么

这里做假单的解释:

LocalToHDFSSink.java 就是flume sink的启动类,在配置文件中要做配置的,a1.sinks.k1.type = com.fone.flume.sink.localFile.LocalToHDFSSink

其中如下代码:

@Overridepublic void start() {
......


    CronTriggerFileHDFS cronTriggerFileHDFS = new CronTriggerFileHDFS();
        LOG.info("定时器设置,cron expression :{} .", cronExpression);try {
            cronTriggerFileHDFS.run(filePath, hdfsPath, cronExpression, isKeep);
        } catch (Exception e) {
            LOG.warn("向hdfs写文件的定时器错误,错误:{}.", e);
        }
        sinkCounter.start();

......
}
@Overridepublic void stop() {
......if (cronTriggerFileHDFS != null) {try {
                cronTriggerFileHDFS.shutdown();
            } catch (Exception e) {// TODO Auto-generated catch block                e.printStackTrace();
            }
        }


......
}

开关定时器。

定时器设定:a1.sinks.k1.local.cronExpression = 0 */15  * * * ? 按照quartZ的设置要求进行设置,不了解者去看quartZ cronTigger设置。

LocalToHDFSSink的文件存储是这样的,本地文件给定一个初始的目录a1.sinks.k1.local.directory,日志在这个初始的目录存储,动态的目录结构通过a1.sinks.k1.local.middleDir 设置。

远程的hadoop给定一个初始的目录a1.sinks.k1.hdfs.directory ,其它的目录结构和文件与本地的设置完全相同,也就是把a1.sinks.k1.local.directory目录下的所有内容,复制到a1.sinks.k1.hdfs.directory 完成工作。

日志收集文件在本地产生,没有完成的时候,带文件名后缀.tmp,完成后去掉.tmp,以此作为是否现在执行复制到hadoop的标志。

其余的看代码吧。

到此,关于“flume的功能是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


网页标题:flume的功能是什么
网址分享:http://6mz.cn/article/jseddj.html

其他资讯