首先要感谢一下我的好基友@小程故事多 他在技术道路上给了我很多指引,非常感谢他的帮助,希望以后我俩更是基情无限,哈哈!~~~
Flink官网地址(目前没有文档让我很迷茫……)
使用版本:v1.0.2
下载后解压这些就不给具体的操作命令了,请自行处理
我的安装目录是在/usr/local/
Flink的配置非常简单
就配置个JAVA_HOME就可以,但是格式要注意
位置在:/usr/local/flink-1.0.2/conf/flink-conf.yaml
env.java.home: /usr/java/latest
注意不是“=” 是 “:”
jobmanager.rpc.address: hadoop01
指的是master地址根据你的IP进行更改,这里我使用的是我试验机的HOSTNAME
下面的配置我没有改动,可根据个人需求按照注释进行更改
/usr/local/flink-1.0.2/conf/ 下 有 masters slaves
masters是配置JobManager HA 的,在这里不需要配置
slaves就跟spark hadoop这些软件一样是节点
上图就是我配置的slaves文件,我一共有三个TaskManager(spark里叫worker,hadoop里叫datanode 这样好理解了吧,只是换了个名词)
目前来说我的集群已经确定了为
Jobmanager (master):hadoop01
TaskManager (slaves):hadoop02\hadoop03\hadoop04
自此Flink的配置完毕
把配置好的Flink传输到各个节点机器上(注意要跟master的位置一致)
shell> scp -r /usr/local/flink-1.0.2 root@hadoop02:/usr/local/
shell> scp -r /usr/local/flink-1.0.2 root@hadoop03:/usr/local/
shell> scp -r /usr/local/flink-1.0.2 root@hadoop04:/usr/local/
因为试验机上已经跑了很多hadoop生态圈的东西,所以ssh免密登陆早已经做好
现在可以启动Flink了,来让它展现一下它的魅力
路径 /usr/local/flink-1.0.2/bin
shell > ./start-cluster.sh
这时看启没启动,有两个办法,一是jps命令,二是看webUI能不能进去
JPS查看如下图:
非常完美的启动了……下面来看下webUI
这个引入了slot的概念目前不太清楚是做什么的,不好发表意见,但是3个TaskManager是正确的,如上面的slaves的配置
示例测试
我们来测试一个socket的用例,这个是Flink自带的例子
源码如下:
通过代码可以看出是以换行作为分隔,进行计算的,那么下面开始测试
首先端口监听
shell > nc -lk 9999
然后启动测试程序
shell > bin/flink run examples/streaming/SocketTextStreamWordCount.jar --hostname hadoop01 --port 9999
启动后
Flink的输出是输出到文件,在$FLINK_HOME/log下,那么问题来了,该怎么找到这个输出文件,在经过我的查找,在webUI可以找到这个答案
点进去,如果任务多,请根据任务名称进行选取
红圈处表明了,它输出结果的机器HOSTNAME,那么我们去看一下
果然有这个文件,那到底是不是它呢,我们下面来试试
上图还没有按回车,如果按回车,242那个主机应该是有变化,下面来按下回车
果然是变化了,就是这么神奇!
那么现在来看看结果是否对呢
结果也是对的,那么下面我多做一些字母的计算
结果
这个计算结果跟spark streaming的Stateful是一样的,累加的结果
这次的Flink最简单的试验就结束了,算是成功了,接下来该探索窗口计算,连接kafka消费流计算等例子,到时也会写一些文章跟大家分享!