Flume-ng的HdfsSink出现Lease mismatch错误

多台Flume-ng Agent做HA,实际环境中出现Lease mismatch错误,具体报错如下:

11 Mar 2014 12:21:02,971 WARN  [SinkRunner-PollingRunner-DefaultSinkProcessor] (
org.apache.flume.sink.hdfs.HDFSEventSink.process:418)  - HDFS IO error
java.io.IOException: IOException flush:org.apache.hadoop.ipc.RemoteException(org
.apache.hadoop.hdfs.server.namenode.LeaseExpiredException): Lease mismatch on /l
ogdata/2014/03/11/91pc/FlumeData.1394467200001.tmp owned by DFSClient_NONMAPREDU
CE_1235353284_49 but is accessed by DFSClient_NONMAPREDUCE_1765113176_43
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSName
system.java:2459)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSName
system.java:2437)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.fsync(FSNamesyste
m.java:3106)
        at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.fsync(NameNo
deRpcServer.java:823)
        at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTra
nslatorPB.fsync(ClientNamenodeProtocolServerSideTranslatorPB.java:714)
        at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$Cl
ientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java:4501
0)
        at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.cal
l(ProtobufRpcEngine.java:453)
        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1002)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1701)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1697)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInforma
tion.java:1408)
        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1695)

        at org.apache.hadoop.hdfs.DFSOutputStream.flushOrSync(DFSOutputStream.ja
va:1643)
        at org.apache.hadoop.hdfs.DFSOutputStream.hflush(DFSOutputStream.java:15
25)
        at org.apache.hadoop.hdfs.DFSOutputStream.sync(DFSOutputStream.java:1510
)
        at org.apache.hadoop.fs.FSDataOutputStream.sync(FSDataOutputStream.java:
116)
        at org.apache.flume.sink.hdfs.HDFSDataStream.sync(HDFSDataStream.java:11
7)
        at org.apache.flume.sink.hdfs.BucketWriter$5.call(BucketWriter.java:356)

        at org.apache.flume.sink.hdfs.BucketWriter$5.call(BucketWriter.java:353)

        at org.apache.flume.sink.hdfs.BucketWriter$8$1.run(BucketWriter.java:536
)
        at org.apache.flume.sink.hdfs.BucketWriter.runPrivileged(BucketWriter.ja
va:160)
        at org.apache.flume.sink.hdfs.BucketWriter.access$1000(BucketWriter.java
:56)
        at org.apache.flume.sink.hdfs.BucketWriter$8.call(BucketWriter.java:533)

        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:615)
        at java.lang.Thread.run(Thread.java:724)

这个是由于配置了多个Flume agent做HA,每个agent都有多个HDFS客户端。多个HDFS客户端同时向一个HDFS文件写数据的时候造成Lease租约问题,Lease可以认为是一个文件写锁。解决方法是配置每个Agent的HDFS文件前缀后者后缀

时间: 2024-11-27 01:46:09

Flume-ng的HdfsSink出现Lease mismatch错误的相关文章

Flume(NG)架构设计要点及配置实践

Flume NG是一个分布式.可靠.可用的系统,它能够将不同数据源的海量日志数据进行高效收集.聚合.移动,最后存储到一个中心化数据存储系统中.由原来的Flume OG到现在的Flume NG,进行了架构重构,并且现在NG版本完全不兼容原来的OG版本.经过架构重构后,Flume NG更像是一个轻量的小工具,非常简单,容易适应各种方式日志收集,并支持failover和负载均衡. 架构设计要点 Flume的架构主要有一下几个核心概念: Event:一个数据单元,带有一个可选的消息头 Flow:Even

Flume NG 简介及配置实战

    Flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用.Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 cloudera.但随着 FLume 功能的扩展,Flume OG 代码工程臃肿.核心组件设计不合理.核心配置不标准等缺点暴露出来,尤其是在 Flume OG 的最后一个发行版本 0.94.0 中,日志传输不稳定的现象尤为严重,为了解决这些问题,2011 年 10 月 22 号,cloudera

高可用Hadoop平台-Flume NG实战图解篇

1.概述 今天补充一篇关于Flume的博客,前面在讲解高可用的Hadoop平台的时候遗漏了这篇,本篇博客为大家讲述以下内容: Flume NG简述 单点Flume NG搭建.运行 高可用Flume NG搭建 Failover测试 截图预览 下面开始今天的博客介绍. 2.Flume NG简述 Flume NG是一个分布式,高可用,可靠的系统,它能将不同的海量数据收集,移动并存储到一个数据存储系统中.轻量,配置简单,适用于各种日志收集,并支持Failover和负载均衡.并且它拥有非常丰富的组件.Fl

阐述Flume OG到 Flume NG发生的革命性变化

但随着 FLume 功能的扩展,Flume OG 代码工程臃肿.核心组件设计不合理.核心配置不标准等缺点暴露出来,尤其是在 Flume OG 的最后一个发行版本 0.94.0 中,日志传输不稳定的现象尤为严重,这点可以在 BigInsights http://www.aliyun.com/zixun/aggregation/11790.html">产品文档的 troubleshooting 板块发现.为了解决这些问题,2011 年 10 月 22 号,cloudera 完成了 Flume-

Flume中的HDFSSink配置

Flume中的HDFS Sink配置参数说明. 官方配置网址:http://flume.apache.org/FlumeUserGuide.html#hdfs-sink type:hdfs path:hdfs的路径,需要包含文件系统标识,比如:hdfs://namenode/flume/flumedata/ filePrefix:默认值:FlumeData,写入hdfs的文件名前缀 fileSuffix:写入 hdfs 的文件名后缀,比如:.lzo .log等. inUsePrefix:临时文件

基于Flume的美团日志收集系统

基于Flume的美团日志收集系统(一)架构和设计 问题导读: 1. Flume-NG与Scribe对比,Flume-NG的优势在什么地方? 2.架构设计考虑需要考虑什么问题? 3.Agent死机该如何解决? 4.Collector死机是否会有影响? 5.Flume-NG可靠性(reliability)方面做了哪些措施? 美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流.美团的日志收集系统基于Flume设计和搭建而成. <基于Flu

Kafka实战-Flume到Kafka

1.概述 前面给大家介绍了整个Kafka项目的开发流程,今天给大家分享Kafka如何获取数据源,即Kafka生产数据.下面是今天要分享的目录: 数据来源 Flume到Kafka 数据源加载 预览 下面开始今天的分享内容. 2.数据来源 Kafka生产的数据,是由Flume的Sink提供的,这里我们需要用到Flume集群,通过Flume集群将Agent的日志收集分发到 Kafka(供实时计算处理)和HDFS(离线计算处理).关于Flume集群的Agent部署,这里就不多做赘述了,不清楚的同学可以参

处理错误

错误     即使采用了防御性编程技术之后,错误仍能进入到网页,这可能是因为测试并不充分,或者是因为所依靠的一些其他资源或服务没有正确工作.为了防止页面出现问题,在程序中要能够进行定制错误处理. 7.4.1 ASP缺省错误处理器       前面已经看到过,ASP和IIS能找出网页中的大多数错误,并且能自动生成错误信息页,这些错误几乎总是500.100类型的,并且IIS用Server.Transfer方法装载以500-100.asp命名的缺省错误页,然后传送给客户.第4章介绍了这一工作过程,以及

各种运行期错误

错误     本章前面部分展示了一些问题,包括错误如何出现.如何寻找错误和如何处理错误等等.现在更重要的是要掌握能够发生不同种类的错误,并且如何区分这些错误.需要记住的是,如果知道了到哪里去找和寻找什么,调试则是比较容易的.在本章最后,将介绍错误确实出现时如何捕获错误,并且要尽可能早地阻止错误的发生.       在学习这些内容之前,首先要深入了解一下在某阶段肯定会遇到的不同类型的运行期和语义错误,主要讨论以下内容:       · 逻辑错误.       · 脚本运行期错误.       ·