小编初学flink,看到各大论坛上有各种不同版本的,有一些还运行不了,小编就参照官网写了一个
pom文件是这样的
<dependencies>
<!--flink——scala的依赖-->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-scala_2.11</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-scala_2.11</artifactId>
<version>1.6.1</version>
</dependency>
<!--解决日志报错SLF4J-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.2</version>
</dependency>
</dependencies>
scala代码
object WordCount {
def main(args: Array[String]): Unit = {
//获取运行环境
val env= ExecutionEnvironment.getExecutionEnvironment
//获取数据
val text = env.readTextFile("E:\\Learning\\log.txt")
//必须写,不写下面代码会报错
import org.apache.flink.api.scala._
val counts = text.flatMap(_.toLowerCase.split("\\W+")filter(_.nonEmpty))
.map((_,1))
.groupBy(0)
.sum(1)
counts.print()
}
}
其中遇到了两个错误
1、写flatMap时代码报错
解决方案,加上
import org.apache.flink.api.scala._
2、程序能执行,但是控制台报错(强迫症)
官网的解释
This error is reported when the org.slf4j.impl.StaticLoggerBinder class could not be loaded into memory. This happens when no appropriate SLF4J binding could be found on the class path. Placing one (and only one) of slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar or logback-classic.jar on the class path should solve the problem.
解决方案:在Maven工程的pom文件中随便加上依赖就可以了
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.2</version>
</dependency>