数据采集实验:Kafka+hdfs+flume

平台:

Flume版本 1.9.0

Kafka版本 2.12

Mysql版本 8.0.23

Hadoop版本 3.1.3

在windows环境下,做flume实验过程中,第一个用Flume实时捕捉MySQL数据库中的记录更新实验中基本比较简单,但是还是要注意conf文件,在配置中需要注意apache-flume-1.9.0的位置

‘a1.sources.r1.status.file.path=C:/software/apache-flume-1.9.0-bin’

否则会遇到下面这样的报错:

2023-11-16 19:42:42,945 (PollableSourceRunner-SQLSource-r1) [ERROR - org.keedio.flume.source.SQLSourceHelper.updateStatusFile(SQLSourceHelper.java:217)] Error writing incremental value to status file!!!
java.io.FileNotFoundException: C:\software\apache-flume-1.9.0-bin\status (系统找不到指定的路径。)

就是路劲错误引起的。

另外!!!

做实验前一定配置好环境,安装好flume-ng-sql-source-1.5.2.jar以及mysql-connector-java-8.0.23.jar

放到lib文件夹下。

否则报错报错报错!!!!

[ERROR - org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:147)] Failed to load configuration data. Exception follows.
org.apache.flume.FlumeException: Unable to load source type: org.keedio.flume.source.SQLSource, class: org.keedio.flume.source.SQLSource

解决:

————————————————————————————————————————

Caused by: java.lang.ClassNotFoundException: org.keedio.flume.source.SQLSource

解决:是因为缺少flume-ng-sql-source jar包导致的,找到相应的包,GitHub - keedio/flume-ng-sql-source: Flume Source to import data from SQL DatabasesFlume Source to import data from SQL Databases . Contribute to keedio/flume-ng-sql-source development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/keedio/flume-ng-sql-source

然后放到lib文件夹下C:\apache-flume-1.9.0-bin\lib

在第二个编写Flume配置文件,将Kafka作为输入,通过Flume将Kafka生产者输入的信息存入HDFS中的实验,最大的问题是flume的启动问题:

process failed
java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)

Exception in thread "SinkRunner-PollingRunner-DefaultSinkProcessor" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)

报错截图:

有大佬说是因为jar包冲突的原因,去查guava包,在flume的lib的版本是11.0.9,在hadoop的lib下是28.0。

解决办法是把高版本的guava复制到低版本的lib中,同时删掉低版本guava。

再次启动apache-flume-1.9.0,这一类错误消失。

另一个启动错误:

启动zookeeper、启动Kafka、创建Kafka的topic、创建Kafka生产者、启动HDFS,最后启动flume。一切宛如表面一样的美好安静,是的。接着在启动生产者的窗口中输入“Hello Flume”

打开浏览器,http://localhost:9870/explorer.html#,没有记录。回去看flume窗口:

报错:

Did not find winutils.exe: {}
java.io.FileNotFoundException: Hadoop bin directory does not exist: C:\hadoop-3.1.3\bin\bin -see https://wiki.apache.org/hadoop/WindowsProblems

看报错原因是Hadoop路劲下多了bin,所以去系统环境变量里去改,

系统变量:

HADOO_HOME:C:\hadoop-3.1.3\

Path:

C:\hadoop-3.1.3\bin

再次启动,运行成功。

第三个实验简单,所以再没有需要多余叙述的地方。

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值