flink1.12.x local单机模式-支持 HDFS(hadoop3)、测试wordcount(读写HDFS文件)

说明

Flink 1.12 默认不能直接访问 HDFS(hadoop3),会弹出无法解析hdfs类型的schema的错误:

org.apache.flink.core.fs.UnsupportedFileSystemSchemeException: Could not find a file system implementation for scheme 'hdfs'. The scheme is not directly supported by Flink and no Hadoop file system to support this scheme could be loaded.

解决

将下面 2 个jar包添加到 flink的lib目录下:

  • Flink Shaded Hadoop 3 Uber
  • commons-cli

访问 下载网址

下载 commons-cli

访问 下载网址

上传到 lib目录

登录 hadoop1 ,将上面2个jar 上传到 /program/flink-1.12.5/lib/

停止:

./stop-cluster.sh

启动:

./start-cluster.sh

准备测试文件

linux创建测试文件

登录 hadoop1 创建文件:

vim /program/data.txt

内容如下:

李雷
韩梅梅
lucy
lili
张三
李四
王五
李雷
韩梅梅
lucy
李雷
韩梅梅
李雷

执行:esc -> wq 退出

hdfs创建目录

hadoop fs -mkdir /test

hdfs上传

hadoop fs -put /program/data.txt /test/

将 linux 系统的 data.txt 文件,上传到 HDFS /test/ 路径

在web中查看

点击文件名称,显示如下图:

测试 wordcount

测试 wordcount,读取 HDFS 文件,将结果写入 HDFS 文件

/program/flink-1.12.5/bin/flink run /program/flink-1.12.5/examples/batch/WordCount.jar --input hdfs://hadoop1:8020/test/data.txt --output hdfs://hadoop1:8020/result3

执行结果:

Job has been submitted with JobID 3755c364053da2ce5836774d993913ee
Program execution finished
Job with JobID 3755c364053da2ce5836774d993913ee has finished.
Job Runtime: 3994 ms

原文出处:/show_1IX1yld6ujqK.html