设为首页 加入收藏

TOP

hadoop中flume框架遇到的一些问题及解决方法
2018-11-28 18:08:00 】 浏览:93
Tags:hadoop flume 框架 遇到 一些 问题 解决 方法

1.
简单说一下flume框架,只有一个角色的节点,agent,agent有source,channel,sink组成,
Source:用于采集数据,Source是产生数据流的地方,
同时Source会将产生的数据流传输到Channel
Channel:连接 sources 和 sinks ,这个有点像一个队列
Sink: 从Channel收集数据,将数据写到目标源,
可以是下一个Source也可以是HDFS或者HBase
简单来说,flume从source抓取数据,在channel缓存,在sink存储(有点像io流),需要注意的几点配置:
source.type
channel.type
sink.type
剩下的基本都要依据type的类型来进行配置,

–测试flume的配置组件并打印到控制台;

–bin/flume-ng agent –conf conf/ –name a1 –conf-file conf/flume-telnet.conf -Dflume.root.logger=INFO,console

问题1:

2016 10:41:39,846 ERROR [conf-file-poller-0] (org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run:145)  - Failed to start agent because dependencies were not found in classpath. Error follows.
java.lang.NoClassDefFoundError: org/apache/hadoop/io/SequenceFile$CompressionType
    at org.apache.flume.sink.hdfs.HDFSEventSink.configure(HDFSEventSink.java:251)
    at org.apache.flume.conf.Configurables.configure(Configurables.java:41)
    at org.apache.flume.node.AbstractConfigurationProvider.loadSinks(AbstractConfigurationProvider.java:413)
    at org.apache.flume.node.AbstractConfigurationProvider.getConfiguration(AbstractConfigurationProvider.java:98)
    at org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:140)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)

未导入依赖包,

运行下列命令解决:

${HADOOP_HOME}/
$ cp share/hadoop/common/hadoop-common-2.5.0-cdh5.3.6.jar share/hadoop/common/lib/commons-configuration-1.6.jar share/hadoop/common/lib/hadoop-auth-2.5.0-cdh5.3.6.jar share/hadoop/hdfs/hadoop-hdfs-2.5.0-cdh5.3.6.jar /opt/modules/cdh/flume-1.5.0-cdh5.3.6/lib/



${HADOOP_HOME}/etc/hadoop    -->  ${FLUME_HOME}/conf
$ cp  etc/hadoop/core-site.xml etc/hadoop/hdfs-site.xml    /opt/modules/cdh/flume-1.5.0-cdh5.3.6/conf/

2.
如果在完全分布式上使用flume,需要指定要抽取目录的主机名,或者使用ssh 主机名 +命令来直接访问。

3.
当使用sink.type = avro并启用多台agent时(以三台为例),在机器未完全启动前会报错,此时报错的原因是因为可能有两个agent.sink.type = avro, 此时这两台agent的sink相当于扩充了第三个agent的channel,在三台agent未完全启动时,所有数据都储存在缓存区内,(下一个source),所以会报错,当完全启动后,恢复正常。

个人理解,有不同看法欢迎指正。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇跨平台多级Flume的部署 下一篇nginx日志切割并使用flume-ng收集..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目