1.总体认识
学习新技术,官网躲不掉https://flink.apache.org/,个人感觉flink官网系统性还行,但是操作起来指导性不是太高,可能水平还有待提高吧。通过官网,大致了解到一些基本概念:batch,streaming,jobmanager,taskmanager,operator,task, slot,parallelism,windows, checkpoint, savepoint, barrier,watermark等。深入点也会了解到三个执行图:StreamGraph -> JobGraph -> ExecutionGraph,暂且不展开吧。
2.一顿操作
download 最新版本flink1.5.2(七月初接触时1.5.2刚好发布,目前1.6已发布后续会跟踪features),接着就是配置conf/flink-conf.yaml,集群下还需配置conf/slave,这些都还ok。由于集群中已部署好了cdh5.11, 起初想用flink与HDFS进行读写,直观感受flink的运行流程及parallelism,BufferTimeout对运行的影响。在进行简单word count流处理时,发现bottleneck在source,于是将source替换成kafka,当然在使用hdfs及kafka时出现了一些幺蛾子将在跳坑环节说。
3.跳坑出坑
1) 首先是flink无法实现hadoop_env,出现如下错误:
Exceptioninthread"main"org.apache.flink.runtime.client.JobExecutionException: org.apache.flink.core.fs.UnsupportedFileSystemSchemeException: Could not find a file system implementation for scheme 'hdfs'. The scheme is not directly supported by Flink and no Hadoop file system to support this scheme could be loaded.
也发邮件向社区求助,最后解决了:
重新下载flink-with-hadoop2.6,发现只是多了一个flink-shaded-hadoop2-uber-1.5.2.jar但是手动添加不知道为什么不起作用。
配置conf/flink-conf.yaml //env.hadoop.conf.dir
~/.bashrc 中设置 HADOOP_CONF_DIR=/opt/cloudera/parcels/CDH-5.11.1-1.cdh5.11.1.p0.4/lib/hadoop/etc/hadoop,如果配置正确会在job manager的log中发现hadoop的环境。
2)遇到kafka无法正常使用,发现consumer.sh不知道怎么被覆盖为空了,在使用kafka过程中发现另外一个奇怪现象:
4.查找及求助社区
http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/
5.扩展学习
benchmark:Yahoo Streaming Benchmark,streamBench
6.小结未完