文档章节

Flink教程-快速开始

clebeg
 clebeg
发布于 2016/01/16 10:36
字数 1120
阅读 3226
收藏 17

Flink教程-快速开始

Apache Flink 是一个开源的分布式批数据以及流数据处理平台。目前已经升级为 Apache 顶级开源项目。无论是 Spark 还是 Flink,他们的主要优势都是基于内存运行机器学习算法,运行速度非常快,而且 Flink 支持迭代计算。作为大数据挖掘工程师两个工具都必须掌握。
Flink 刚刚开源,国内关注人数不是很多,源代码量也不大,但是看 Spark 的源码就有点困难了,所以学习 Flink,也能学习到一个优秀的分布式框架是怎么样一步一步构建起来的。

Flink安装准备

Flink运行支持 Linux、苹果、Windows 主流平台。不过最好还是使用 Linux。下面给出安装前的准备:

  1. 安装 Jdk1.7.X 或者以上的版本
  2. 在 Flink 官网下载对应 Hadoop 预编译版本

将预编译版本解压,进入解压缩文件,为了方便,后文统一称此目录为:FLINK_HOME。

开始安装

单机快速尝试

单机尝试非常简单,直接执行命令:

  1. Linux用户: sh bin/start-local.sh
  2. Windows用户,在命令窗户输入:bin\start-local.bat

等待其出现如下提示之后:

D:\Java\flink\flink-0.10.1>bin\start-local.bat
Starting Flink job manager. Webinterface by default on http://localhost:8081/.
Don't close this batch window. Stop job manager by pressing Ctrl+C.

在浏览器中输入:http://localhost:8081/,Flink默认监听8081端口,防止其他进程占用此端口。此时出现下面的管理界面:
Flink Web 管理界面
可以发现这个界面和 Spark 的管理界面的逻辑差不多,主要是管理正在运行的Job,已经完成的 Job,以及Task 管理和 Job 管理,Task 应该是管理 Job 的,以后再仔细分析里面的逻辑。

跑第一个例子

下面迫不及待先来跑一个分布式系统最经典的例子:WordCount,下面以 FLINK_HOME 的 README.txt 文件作为示例文件,测试 WordCount 程序,在 Windows 上面运行代码以及运行过程如下图:

D:\Java\flink\flink-0.10.1>bin\flink.bat run .\examples\WordCount.jar file:/D:/Java/flink/flink-0.10.1/README.txt file:/D:/Java/flink/flink-0.10.1/wordcount-result.txt
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.li
b.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
01/15/2016 16:30:51     Job execution switched to status RUNNING.
01/15/2016 16:30:51     CHAIN DataSource (at getTextDataSet(WordCount.java:142)
(org.apache.flink.api.java.io.TextInputFormat)) -> FlatMap (FlatMap at main(WordCount.java:69)) -> Combine(SUM(1), at main(WordCount.java:72)(1/1) switched to SCHEDULED
01/15/2016 16:30:51     CHAIN DataSource (at getTextDataSet(WordCount.java:142)
(org.apache.flink.api.java.io.TextInputFormat)) -> FlatMap (FlatMap at main(WordCount.java:69)) -> Combine(SUM(1), at main(WordCount.java:72)(1/1) switched to DEPLOYING
01/15/2016 16:30:52     CHAIN DataSource (at getTextDataSet(WordCount.java:142)
(org.apache.flink.api.java.io.TextInputFormat)) -> FlatMap (FlatMap at main(WordCount.java:69)) -> Combine(SUM(1), at main(WordCount.java:72)(1/1) switched to RUNNING
01/15/2016 16:30:52     Reduce (SUM(1), at main(WordCount.java:72)(1/1) switched to SCHEDULED
01/15/2016 16:30:52     Reduce (SUM(1), at main(WordCount.java:72)(1/1) switched to DEPLOYING
01/15/2016 16:30:52     CHAIN DataSource (at getTextDataSet(WordCount.java:142)
(org.apache.flink.api.java.io.TextInputFormat)) -> FlatMap (FlatMap at main(WordCount.java:69)) -> Combine(SUM(1), at main(WordCount.java:72)(1/1) switched to FINISHED
01/15/2016 16:30:52     Reduce (SUM(1), at main(WordCount.java:72)(1/1) switched to RUNNING
01/15/2016 16:30:53     DataSink (CsvOutputFormat (path: file:/D:/Java/flink/flink-0.10.1/wordcount-result.txt, delimiter:  ))(1/1) switched to SCHEDULED
01/15/2016 16:30:53     DataSink (CsvOutputFormat (path: file:/D:/Java/flink/flink-0.10.1/wordcount-result.txt, delimiter:  ))(1/1) switched to DEPLOYING
01/15/2016 16:30:53     Reduce (SUM(1), at main(WordCount.java:72)(1/1) switched to FINISHED
01/15/2016 16:30:53     DataSink (CsvOutputFormat (path: file:/D:/Java/flink/flink-0.10.1/wordcount-result.txt, delimiter:  ))(1/1) switched to RUNNING
01/15/2016 16:30:53     DataSink (CsvOutputFormat (path: file:/D:/Java/flink/flink-0.10.1/wordcount-result.txt, delimiter:  ))(1/1) switched to FINISHED
01/15/2016 16:30:53     Job execution switched to status FINISHED.

可以看到输出日志非常详细,很方便就清楚整个运行流程,得到输出文件 wordcount-result.txt 前面10条内容如下 :

1 1
13 1
5d002 1
740 1
about 1
account 1
administration 1
algorithms 1
and 7
another 1
any 2

个人微信公众号

欢迎关注本人微信公众号,会定时发送关于大数据、机器学习、Java、Linux 等技术的学习文章,而且是一个系列一个系列的发布,无任何广告,纯属个人兴趣。
Clebeg能量集结号

© 著作权归作者所有

clebeg
粉丝 45
博文 40
码字总数 40057
作品 0
广州
程序员
私信 提问
加载中

评论(3)

l
l00ps

引用来自“clebeg”的评论

引用来自“jack_jones”的评论

和springbatch是不是类似?
和spark类似,但是不一样

en?[发呆]
clebeg
clebeg 博主

引用来自“jack_jones”的评论

和springbatch是不是类似?
和spark类似,但是不一样
jack_jones
jack_jones
和springbatch是不是类似?
Apache Flink实战(一) - 简介

1 功能 2 用户 国际 国内 3 特点 ◆ 结合Java、Scala两种语言 ◆ 从基础到实战 ◆ 系统学习Flink的核心知识 ◆ 快速完成从入门到上手企业开发的能力提升 4 安排 ◆ 初识Flink ◆ 编程模型及核...

javaedge
04/26
0
0
Flink China社区线下Meetup·上海站-计算之美,何止于快

11月4日 13:30-17:30,由Flink China主办,【计算之美,何止于快】Flink China Meetup 将在上海市徐汇区田林路200号C座一楼举办 ! 一套组合拳打下来,Flink这个起步较晚的选手开始了冲刺,在...

Flink_China
2018/10/24
133
0
Flink China社区线下Meetup·上海站-计算之美,何止于快

11月4日 13:30-17:30,由Flink China主办,【计算之美,何止于快】Flink China Meetup 将在上海市徐汇区田林路200号C座一楼举办 ! 一套组合拳打下来,Flink这个起步较晚的选手开始了冲刺,在...

Flink_China
2018/10/24
79
0
阿里大张旗鼓地贡献回上游的 Blink 里面有什么?

导读:如同我们去年 12 月在 Flink Forward China 峰会所约,阿里巴巴内部 Flink 版本 Blink 将于 2019 年 1 月底正式开源。今天,我们终于等到了这一刻。 阿里资深技术专家大沙,将为大家详...

作者: 大沙
01/29
0
0
基于Flink流处理的动态实时电商实时分析系统

在开始学习前给大家说下什么是Flink? 1.Flink是一个针对流数据和批数据的分布式处理引擎,主要用Java代码实现。 2.Apache Flink作为Apache的顶级项目,Flink集众多优点于一身,包括快速、可...

liwei2000
2018/11/07
666
0

没有更多内容

加载失败,请刷新页面

加载更多

JS其他类型值转化为Boolean类型规则

本文转载于:专业的前端网站➤JS其他类型值转化为Boolean类型规则 由于最近在笔试的时候,发现好多关于其他类型转化为Boolean类型的题目,因此总结一下! 一、String类型转化为Boolean 1.转化...

前端老手
37分钟前
4
0
EurekaClient自动装配及启动流程解析

在上篇文章中,我们简单介绍了EurekaServer自动装配及启动流程解析,本篇文章则继续研究EurekaClient的相关代码 老规矩,先看spring.factories文件,其中引入了一个配置类EurekaDiscoveryClie...

Java学习录
43分钟前
8
0
析构函数是否必须为虚函数?为何?

p517 在C++中,基类指针可以指向一个派生类的对象。如果基类的析构函数不是虚函数,当需要delete这个指向派生类的基类指针时,就只会调用基类的析构函数,而派生类的析构函数无法被调用。容易...

天王盖地虎626
43分钟前
5
0
【TencentOS tiny】深度源码分析(7)——事件

引言 大家在裸机编程中很可能经常用到flag这种变量,用来标志一下某个事件的发生,然后在循环中判断这些标志是否发生,如果是等待多个事件的话,还可能会if((xxx_flag)&&(xxx_flag))这样子做...

杰杰1号
47分钟前
9
0
聊聊nacos client的ServerHttpAgent

序 本文主要研究一下nacos client的ServerHttpAgent HttpAgent nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/http/HttpAgent.java public interface HttpAgent { ......

go4it
53分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部