首先我们需要需要了解的一个概念是Apache Flink支持处理流式计算(stream)和批量计算(batch),但是在目前版本中这两种计算方式各自拥有自己独立的API,本系列文章只讨论流式计算(stream)。
学习本系列的必要条件是已安装Maven 3.0.4 ,java8。
通过maven创建开发模板
代码语言:javascript复制 $ mvn archetype:generate
-DarchetypeGroupId=org.apache.flink
-DarchetypeArtifactId=flink-quickstart-java
-DarchetypeVersion=1.9.0
安装过程中需要填写对应的信息,如下图
将项目导入IDE
导入后的项目,目录结构如下图所示:
导入项目后将projects facets修改为java8:
如果项目缺少Maven Dependencies,则在项目的.classpath文件中添加如下配置:
代码语言:javascript复制<classpathentry exported="true" kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
编写HELLO WORLD
修改pom.xml文件中的log包的作用域,删掉。
打开StreamingJob.java文件,编写如下代码:
代码语言:javascript复制public class StreamingJob {
private static final Logger LOG = LoggerFactory.getLogger(StreamingJob.class);
public static void main(String[] args) throws Exception {
// set up the streaming execution environment
final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
DataStreamSource<String> dataSource = env.fromElements(new String("hello world!"));
dataSource.addSink(new SinkFunction<String>() {
@Override
public void invoke(String value) throws Exception {
LOG.info("输出数据:" value);
}
});
// execute program
env.execute("Flink Streaming Java API Skeleton");
}
}
运行此程序得到执行结果如下:
代码语言:javascript复制11:38:50,863 INFO jar.StreamingJob - 输出数据:hello world!
参考文章:
- Project Template for Java
- eclipse中maven项目不显示Maven Dependencies依赖
作者:cosmozhu --90后的老父亲,专注于保护地球的程序员
个人网站:https://www.cosmozhu.fun
欢迎转载,转载时请注明出处。
相关文章
- Flink-1.9流计算开发:十六、intervalJoin函数
- Flink-1.9流计算开发:十五、join函数
- Flink-1.9流计算开发:十四、union函数
- Flink-1.9流计算开发:十三、min、minBy、max、maxBy函数
- Flink-1.9流计算开发:十二、apply函数