吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2442|回复: 8
收起左侧

[其他转载] 【Flink】【笔记】Flink入门之离线+实时wordcount笔记

[复制链接]
moocer 发表于 2020-6-23 23:12
本帖最后由 moocer 于 2020-6-23 23:34 编辑

1  搭建maven工程 flink-2019
1.1、pom文件
[XML] 纯文本查看 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>Flink</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-scala_2.11</artifactId>
            <version>1.7.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.flink/flink-streaming-scala -->
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-streaming-scala_2.11</artifactId>
            <version>1.7.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- 该插件用于将Scala代码编译成class文件 -->
            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>scala-maven-plugin</artifactId>
                <version>3.4.6</version>
                <executions>
                    <execution>
                        <!-- 声明绑定到maven的compile阶段 -->
                        <goals>
                            <goal>compile</goal>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>


</project>



1.2 添加scala框架 和 scala文件夹

2 批处理wordcount
[Scala] 纯文本查看 复制代码
def main(args: Array[String]): Unit = {
  //env构造执行环境
  val env: ExecutionEnvironment = ExecutionEnvironment.getExecutionEnvironment
  //source读取文件
  val inputPath = "F:\\myProject\\sparkcode\\input\\word.txt"
  val ds: DataSet[String] = env.readTextFile(inputPath)
  //transform其中flatMap 和Map 中  需要引入隐式转换
  import org.apache.flink.api.scala.createTypeInformation
  //经过groupby进行分组,sum进行聚合
  val aggDs = ds.flatMap(_.split(" ")).map((_, 1)).groupBy(0).sum(1)
  //sink打印
  aggDs.print()
}

3  流处理 wordcount
[Scala] 纯文本查看 复制代码
  def main(args: Array[String]): Unit = {
    //创建流处理环境
    val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment

    //接收socket文本流
    val textDstream: DataStream[String] = env.socketTextStream("hadoop202",9999)

    // flatMap和Map需要引用的隐式转换
    import org.apache.flink.api.scala._

    //处理 分组并且sum聚合
    val dStream: DataStream[(String, Int)] = textDstream.flatMap(_.split(" ")).filter(_.nonEmpty).map((_,1)).keyBy(0).sum(1)

    //打印
    dStream.print()
    env.execute()

在我对应的虚拟机Hadoop202中启动netcat工具向9999端口发送消息
[Shell] 纯文本查看 复制代码
nc -lk 9999

项目文件结构

项目文件结构

flinkwordcount结果

flinkwordcount结果

netcat发送数据

netcat发送数据

StreamWordCount结果

StreamWordCount结果

word.txt

51 Bytes, 下载次数: 1, 下载积分: 吾爱币 -1 CB

测试文档

Flink.zip

8.53 KB, 下载次数: 0, 下载积分: 吾爱币 -1 CB

代码

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

sam喵喵 发表于 2020-6-23 23:26
为什么这么多人玩JAVA,不去玩C++
 楼主| moocer 发表于 2020-6-23 23:36
sam喵喵 发表于 2020-6-23 23:26
为什么这么多人玩JAVA,不去玩C++

这个问题估计得找市场要答案?
lovxyj 发表于 2020-6-24 08:02
春雨忆江南 发表于 2020-6-24 08:35
谢谢分享
xinyuguy 发表于 2020-6-24 09:01
我都是用 pascal
kabengqi 发表于 2020-6-24 12:51
sam喵喵 发表于 2020-6-23 23:26
为什么这么多人玩JAVA,不去玩C++

由俭入奢易,由奢入俭难。话可能不对,意思是这个意思
第一品霄 发表于 2020-6-24 13:13
先支持一下了
sam喵喵 发表于 2020-6-24 14:00
kabengqi 发表于 2020-6-24 12:51
由俭入奢易,由奢入俭难。话可能不对,意思是这个意思

国产OS何时才能崛起啊
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-6 00:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表