Flink用Java测试WordCount

美图欣赏:

 

Flink编程模型
        
    
    每个Flink程序都包含以下若干流程
        
        1、获取执行环境 
        
        2、加载、创建初始数据  source
        
        3、转换数据  transformation
        
        4、放置计算结果位置  sink
        
        5、触发程序运行

 

package flink;

/**
 * Author : Jackson
 * Version : 2020/1/30 & 1.0
 */
import org.apache.flink.api.common.functions.FlatMapFunction;
import org.apache.flink.api.java.DataSet;
import org.apache.flink.api.java.ExecutionEnvironment;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.util.Collector;


/**
 * Created by root on 2019/11/27.
 */
public class Flink {

    public static void main(String[] args) throws Exception {
        //获取运行环境
        ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
        //数据源
        DataSet<String> text = env.fromElements("I have a good friend. She is a very nice person. The first time I saw her at school, she smiled at me and I like her a lot. When we do homework in a team, we become friends. As we share the same interest, we are close. Now we often hang out for fun and we cherish our friendship so much.");

        /**
         * transfromation
         */

        DataSet<Tuple2<String,Integer>> wordCount = text.flatMap(new LineSplitter()).groupBy(0).sum(1);
        //打印
        wordCount.print();

//        env.execute();


    }

    public static  class LineSplitter implements FlatMapFunction<String, Tuple2<String,Integer>>{

        @Override
        public void flatMap(String line, Collector<Tuple2<String, Integer>> out) throws Exception {
            for (String word: line.split(" ")){
                out.collect(new Tuple2<>(word,1));
            }
        }
    }
}

 

    
    1、Environment
        
        执行环境 StreamExecutionEnvironment 是所有flink程序的基础
        
        创建执行环境有三种方式,分别为:
        StreamExecutionEnvironment.getExecutionEnvironment
        StreamExecutionEnvironment.createLocalEnvironment
        StreamExecutionEnvironment.createRemoteEnvironment
       
    2、加载、创建初始数据


        在StreamExecutionEnvironment中,提供了不同数据接入接口
        
    3、转换数据
        
        Flink中的Transformation都是通过不同的Operation来实现。
        每个Operation内部通过实现Function接口完成数据处理逻辑定义。
        
    4、输出接口
        
        writeAsText  print
        
        flink提供了大量 connect操作,方便与外部系统交互
        
    5、程序触发
        
        
        需要调用 ExecutionEnvironment 的 execute 方法来触发。
        
        DataSet Api中,已经包含了 execute

 

 

运行的结果:

 

 

                                                                                                                                          ————保持饥饿,保持学习

                                                                                                                                                              Jackson_MVP

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SuperBigData~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值