在学习Flume时,有遇到Flume来消费Kafka数据的场景,所以自己学习着做了一些配置。Flume的配置文件如下:
# 组件 |
其实在以上的a1.sinks.k1.hdfs.codeC = snappy这一配置处,之前配置的是lzop,但是在查看Flume启动日志时发现,我目前安装的hadoop还不支持lzop这种压缩方式,所以sink貌似是没创建成功,被移除了,所以后面又改成了snappy。
20/07/31 18:30:45 ERROR node.AbstractConfigurationProvider: Sink k1 has been removed due to an error during configuration
java.lang.IllegalArgumentException: Unsupported compression codec lzop. Please choose from: [None, BZip2Codec, DefaultCodec, DeflateCodec, GzipCodec, Lz4Codec, SnappyCodec]
在Flume启动后,jps确实有了Application的进程。
查看Flume启动日志,也没有什么报错信息。但是诡异的事情发生了,Flume进程无法正常关闭,也就是使用kill 进程号,关闭不了,而使用kill -9 进程号却可以。
这二者的区别我也知道,kill -9是直接把指令发送给系统,让系统对进程强制关闭,但是这种方式可能会导致一些文件和数据的丢失,能不能尽量不用。kill是把指令发送给进程本身,让进程主动关闭。
我这里使用kill关闭不了Flume进程,能想到的就是进程接受不到指令,所以无法做出相应的关闭操作。
至于说Flume进程究竟发生了什么问题,还不得而知,有待今后的学习过程中寻找解决方案吧。