Flume写入hive报错flume.SinkRunner: Unable to deliver event. Exception follows has been closed()

门外柳花飞,女神犹未归。
今年五二零,依旧空落泪。

 2020年5月20日下午两点,上午请假的女生重新回到了公司。今天,女神穿了一件波西米亚长裙,“足下蹑丝履,头上玳瑁光。腰若流纨素,耳著明月珰。指如削葱根,口如含朱丹。纤纤作细步,精妙世无双。

 "微风冲动她的发梢,就像风的线条。"今天的女神格外的美丽,尽管如此李有为还是时时刻刻提醒自己,一定要懂得拒绝,不管女神今天使出什么甜言蜜语、糖衣炮弹,都不能答应她的请求。

 **温柔乡,屌丝冢!**认真,你就玩了!

 然而,当女生走到他身边,闻到她身上那若有如无的香味,再听到她娇滴滴如银铃般的声音时,李有为再一次沦陷了。

 “有为哥哥,你就帮人家一次嘛!不然人家今天晚上又要加班了!嘤嘤嘤。”

 脑中想着女神那张俏脸,嘴里吃着女神给的阿尔卑斯棒棒糖,在下的心中就像裹了蜜似的,甜到齁,幸福到缺氧。

 十分钟解决女神的需求,李有为走到女神的工位上汇报任务,李有为看见女神正在微信上和别人聊得热火朝天,看头像,李有为知道对方是她的前前前前前男友,或许今天晚上她们会旧情复燃,或许今天晚上她们会炮火连天,但这一切都与李有为无关。

快乐是她们的,他李有为什么也没有。

 **所谓:“福不双至,祸不单行。”**女神那边和别的男人有约会,自己这边却又碰上了另外一个棘手的问题。

 他的埋点收集任务出问题了。

 公司最近在弄埋点收集数据需求,前端传递数据,后端接口接受数据push到kafka,flume读取kafka的数据然后把数据直接写入到hive中,这个流程他本来已经跑通了,可是在帮女神做完需求后,flume写入hive的时候却报错了。
在这里插入图片描述

flume.SinkRunner: Unable to deliver event. Exception follows xxxxxxxx has been closed()

**Sink是flume agent的一部分,它主要负责将flume缓冲区Channel。**由于李有为刚接手大数据工程师的工作不久,所有面对这个错误是,他只能大概猜测一下,这个可能是sink那边传递数据到hive的时候出来问题。本着内事问百度,外事问谷歌的原则,李有为分别在两个平台搜索了自己的问题,可是搜索出来的答案都令他不是很满意,要么驴唇不对马嘴,要么就是解决问题的方式太过高深。

 绞尽脑汁的李有为开始有病乱投医,首先重启flume是可以,是不会报错的,报错只会在一段时间之后,(李有为也是刚入门,没吃透,所以只能从别的地方想办法),那么这一段时间内究竟发生了什么呢?既然hive那边has been closed,**那么会不会是因为flume channel里面没有数据。**他的任务是布置在测试环境的,如果测试小妹儿没有进行测试的话,数据是不是就不会打到打到接口,然后也不会push到kafka哪里,flume也读不到kafka的数据。

 瞎几把想了几下之后,李有为开始乱搞了,既然是因为没有数据的问题,我干脆给你弄一个健康检测,写一个心跳检测的python脚本,定时小kafka发送消息,然后flume就有数据可以消费到hive里面。以后查数据的时候,只需要过滤掉health标志的数据即可。

from kafka import KafkaProducer
import json
import time

data = {
	'event_action':'health',
	'event_name':'health',
	'event_time':'2019-09-01 00:00:00',
	'domain':'',
	'url':'',
	'refer_url':'',
	'title':'',
	'uid':'',
	'ip':'',
	'position':'',
	'user_agent':'',
	'cookie':'',
}

data = json.dumps(data)

producer = KafkaProducer(bootstrap_servers='192.168.22.101:9092')
while True:
    time.sleep(30)
    print(1)
    producer.send('log_test',data)

linux 后台执行

nohup python health.py &

经过这么一通操作之后,flume稳定运行了4个小时,现在马上要晚上八点了,女神应该正在和她的前前前前男友吃饭,吃饭完,该发生的以及不该发生的,都要发生,而李有为这个加班狗又将日复一日的度过像昨日一样寂寞难耐的夜晚…………
在这里插入图片描述
(上面解法,纯属有病乱投医,然后瞎猫碰上死耗子,如果各位老铁有更好的解决办法,欢迎提出来,大家一起交流、学习。工作是为了解决问题,如果能够找到更好的解决办法,这才是学习的意义,这也能够帮助自己找到更好的工作机会。)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章