许多大厂使用flin + storm.spart/storm是批处理大数据,flink是流处理大数据。也就是说支持增量的更新,不用牵一发而动全身,实施更改。
安装和部署。
可以用kubernates管理cluster,把程序部署到集群中。也可以部署到本地虚拟机。
nc -l -p 9000,然后输入命令行数据。
然后
datastream.map().keyby().print().sink()
关键概念:
flink支持savepoint, checkpoint,对出错点支持rollback,fallover.把运行中的状态保存到内存或者磁盘,同时支持watermark,所以数据是原子性的,有序的。
flink如何在代码级实现流的合并于通信,需要了解,以及并行度的问题
目前可以操作savePoint
Flink on Yarn
deployment:
1. 准备工作
linux server: >=2
准备flink的包
2. 安装基础软件
1) rz和sz
sudo yum install lrzsz
2) java
3. 上传安装包
rm -rf ss // delete on linux
tar -xvf flink-1.6.2-bin-scala_2.11.tgz
ln -s flink-1.6.2 flink
环境变量: FLINK_HOME=/opt/flink
// 配全局的环境变量, 而不是改用户的环境变量
vi etc/profile
export FLINK_HOME=/opt/flink
export path=${FLINK_HOME}/bin:$path
// 刚开始键入flink,并不会生效,而是要source使之生效
source etc/profile
bin/start-local.sh or bin/start-cluster.sh
stop: bin/stop-cluster.sh
jps 查看进程
jps -l 看详细名字
4. flink部署
1) flink配置
check ips by echo /etc/hosts
conf/flink-conf.yaml
job manager.address:slave05
taskmanager.numberOfSlot:2
conf/slaves
slave06
1.2) 分发包
ssh面密
// -r 级联, hadoop是用户名
scp传包 scp -r flink-1.6.2 hadoop@slave06:~/
2) 启动flink
bin/start-cluster.sh
可以自动添加Jobmanager/ taskmanager
bin/jobmanager.sh
bin/taskmanager.sh
3) run socket wordcound example
on slave06: nc -l 9000
on slave05: flink run ./wordcount.jar --port 9000 --hostname slave06
running on dashboard
see taskmanager, check record and stdout
mvn clean install -DskipTests
mvn clean package
mvn clean install -DskipTest -Dfast (javadoc, QA plugin, default import hadoop2)
mvn clean install -DskipTests -Dhadoop.version=2.6.1 (ss pom)