Flink提供了三种创建Environment的方式:

    • StreamExecutionEnvironment#getExecutionEnvironment()
    • StreamExecutionEnvironment#createLocalEnvironment()
    • StreamExecutionEnvironment#createRemoteEnvironment()

    第一种是比较高层的创建方式,隐藏了一些细节,其底层原理还是 createLocalEnvironmentcreateRemoteEnvironment 。但是为什么还要有 getExecutionEnvironment() ?因为我们开发时肯定是本地环境( LocalEnvironment ),如果要发布时还要改为( RemoteEnvironment )就很麻烦

    方法 作用
    getExecutionEnvironment 该方法会根据不同的运行方式选择创建不同的执行环境:如果程序是独立执行的,则此方法返回本地执行环境如果从命令行客户端调用程序以提交到集群,则此方法返回此集群的执行环境
    createLocalEnvironment 返回本地执行环境,需要在调用时指定默认的并行度
    createRemoteEnvironment 返回集群执行环境,需要在运行时(运行参数)指定JobManager的IP和端口以及要上传的jar包