flink 本地_Flink:本地执行(Local Execution)

本文介绍了Apache Flink的本地执行模式,包括LocalExecutionEnvironment和CollectionEnvironment。LocalExecutionEnvironment提供了完整的运行环境,支持多线程执行,而CollectionEnvironment则在Java集合上运行,适合轻量级任务。此外,文章还提及了本地执行的调试方法和Maven依赖配置。
摘要由CSDN通过智能技术生成

本地环境和执行器(executors)运行你在本地的Java虚拟机上运行Flink程序,或者是在属于正在运行程序的如何Java虚拟机上。对于大部分示例程序而言,你只需简单的地点击你IDE上的运行(Run)按钮就可以执行。

Flink支持两种不同的本地执行模式:(1)、LocalExecutionEnvironment启动了Flink完整的运行环境,包括一个JobManager和一个TaskManager。运行环境中包括了内存管理,并且所有的内部算法再试在集群模式下运行的。(2)、CollectionEnvironment在Java集合上运行Flink程序。这种模式下不会启动Flink完整的执行环境,所以这种模式负载非常低,而且非常轻量级。例如 DataSet.map()-转换操作,执行器将是对Java list里的所有元素进行map()函数的操作。

调试

如果你本地运行Flink程序,你可以像普通的Java程序一样调试Flink程序。 你既可以使用System.out.println()打印一些内部变量,或者使用调试工具。 你还可以在map(), reduce() 或者其他方法中打断点。更多的详情请参见Java API文档中的调试章节,以便了解如何使用Java API工具进行测试或者本地调试等。

Maven依赖

如果你在Maven工程中开发你的程序,你需要将flink-clients模块加入到你项目的依赖中:

org.apache.flink

flink-clients_2.10

1.1-SNAPSHOT

本地执行

LocalEnvironment是在本地模式运行Flink程序的句柄,可以用它在本地的 JVM (standalone 或嵌入其他程序)里运行程序。本地执行环境是通过调用ExecutionEnvironment.createLocalEnvironment()方法实现的。默认情况下,Flink会根据你机器的CPU核数开启同样多的线程来执行程序。当然,我们可以指定程序的并行度。本模式的日志可以通过enableLogging()/disableLogging()来设置是否向标准输出输出。

在大多数情况下,推荐使用ExecutionEnvironment.getExecutionEnvironment()来获得Flink的运行环境。 当程序是在本地(未使用命令行接口)启动时,该方法会返回LocalEnvironment,当程序是通过命令行接口命令行接口(CLI)提交时,则该方法会返回集群的执行环境。 public static void main(String[] args) throws Exception {

ExecutionEnvironment env = ExecutionEnvironment.createLocalEnvironment();

DataSet data = env.readTextFile("file:///path/to/file");

data

.filter(new FilterFunction() {

public boolean filter(String value) {

return value.startsWith("http://");

}

})

.writeAsText("file:///path/to/result");

JobExecutionResult res = env.execute();

}

JobExecutionResult对象在程序执行结束时会返回,这个类中包含了程序的运行环境和累加器的结果。

LocalEnvironment类也可以向Flink传入一个用户自定义的配置选项。 Configuration conf = new Configuration();

conf.setFloat(ConfigConstants.TASK_MANAGER_MEMORY_FRACTION_KEY, 0.5f);

final ExecutionEnvironment env = ExecutionEnvironment.createLocalEnvironment(conf);

注意:本地执行环境不会启动任何web前端来监控执行过程。

集合环境

在Java集合上执行操作将会使用CollectionEnvironment类,这个类执行Flink程序时使用了一些低开销的方法。 这种模式通常用于自动化测试、调试、代码重用等场景。

用户可以实现用于批处理的算法,或者是实现用于更具交互行的场下的算法。一个Flink程序通过稍微修改即可用于处理请求的Java应用服务器。下面是集合环境的例子: public static void main(String[] args) throws Exception {

// initialize a new Collection-based execution environment

final ExecutionEnvironment env = new CollectionEnvironment();

DataSet users = env.fromCollection( /* get elements from a Java Collection */);

/* Data Set transformations ... */

// retrieve the resulting Tuple2 elements into a ArrayList.

Collection<...> result = new ArrayList<...>();

resultDataSet.output(new LocalCollectionOutputFormat<...>(result));

// kick off execution.

env.execute();

// Do some work with the resulting ArrayList (=Collection).

for(... t : result) {

System.err.println("Result = "+t);

}

}

在flink-examples-batch模块中有完整的示例,类名是CollectionExecutionExample.

值得注意的是,基于集合环境的 Flink 程序只适用于小数据, 不能超过JVM的堆内存大小 集合模式中的执行器只使用了单线程,而不是多线程。

本文翻译自:https://ci.apache.org/projects/flink/flink-docs-master/apis/local_execution.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
4S店客户管理小程序-毕业设计,基于微信小程序+SSM+MySql开发,源码+数据库+论文答辩+毕业论文+视频演示 社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非常有意义的。 本文从管理员、用户的功能要求出发,4S店客户管理系统中的功能模块主要是实现管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理,用户客户端:首页、车展、新闻头条、我的。门店客户端:首页、车展、新闻头条、我的经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与4S店客户管理系统实现的实际需求相结合,讨论了微信开发者技术与后台结合java语言和MySQL数据库开发4S店客户管理系统的使用。 关键字:4S店客户管理系统小程序 微信开发者 Java技术 MySQL数据库 软件的功能: 1、开发实现4S店客户管理系统的整个系统程序; 2、管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理等。 3、用户客户端:首页、车展、新闻头条、我的 4、门店客户端:首页、车展、新闻头条、我的等相应操作; 5、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行交流信息的查看及回复相应操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值