flink项目简单搭建在scala环境

 maven文件

 <properties>
        <java.version>1.8</java.version>
        <scala.binary.version>2.11</scala.binary.version>
        <flink.version>1.6.1</flink.version>
        <scala.version>2.11.8</scala.version>
        <flinkCore.version>1.8.0</flinkCore.version>
        <clients.version>1.9.0</clients.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-streaming-scala_2.11</artifactId>
            <version>1.6.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-scala_${scala.binary.version}</artifactId>
            <version>${flink.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>${scala.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-core</artifactId>
            <version>${flinkCore.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-clients_2.11</artifactId>
            <version>${clients.version}</version>
        </dependency>

 小demo代码,默认读取项目根目录下文件

import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment

object Flink {

  def main(args:Array[String]) : Unit = {

    val env = StreamExecutionEnvironment.getExecutionEnvironment
//       下面两种读取数据模式都行
//    val stream = env.readTextFile("H:/aaaa.txt")
    val stream = env.readTextFile("aaaa.txt")
    stream.print()

 //第二种获取数据源
    val stream2 = env.socketTextStream("localhost",11111)
    stream2.print()

    env.execute("FirstFlink")
  }
}

 aaaa.txt在项目根目录下

启动时报下面错误

Connected to the target VM, address: '127.0.0.1:50805', transport: 'socket'
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/flink/streaming/api/scala/StreamExecutionEnvironment$
	at com.example.flink.source.Flink$.main(Flink.scala:9)
	at com.example.flink.source.Flink.main(Flink.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.flink.streaming.api.scala.StreamExecutionEnvironment$
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 2 more

下载flink包将文件包解压将lib文件下的jar加入项目

 官网下载flink包

 第二种模式根据ip和端口获取数据

cmd启动命令窗口 输入 nc -l -p 11111命令,向11111端口输入数据,在cmd中输入数据,启动flink代码stream2获取数据入图

上图输出的前面数字3,2,4,1,1,2,3,4是执行打印的线程id,默认8个线程(task)

 调用下面语句可将数据写入到text文件下的自定义文本中,会自动生成文本

stream2.writeAsText("H:\\test")

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值