1 启动 Session
./bin/kubernetes-session.sh -Dkubernetes.cluster-id=k8s-session-1 -Dkubernetes.container.image=registry.aibee.cn/aibee/platform/flink -Dkubernetes.container.image.pull-policy=Always -Djobmanager.heap.size=4096m -Dtaskmanager.memory.process.size=4096m -Dtaskmanager.numberOfTaskSlots=4 -Dkubernetes.jobmanager.cpu=1 -Dkubernetes.taskmanager.cpu=2
默认的namespace为default
可以使用下面的命令,查看创的pod
kubectl get pod | grep k8s-session-1
2 提交 job 到 Session
./bin/flink run -d -p 10 -e kubernetes-session -Dkubernetes.cluster-id=k8s-session-1 examples/streaming/WindowJoin.jar
3. 停止 Session
echo 'stop' | ./bin/kubernetes-session.sh -Dkubernetes.cluster-id=k8s-session-1 -Dexecution.attached=true
也可以手工删除资源:
kubectl delete service/k8s-session-1
默认情况下, JobManager 和 TaskManager 只会将 log 写到各自 pod 的 /opt/flink/log 。如果想通过 kubectl logs 看到日志,需要将 log 输出到控制台。要做如下修改 FLINK_HOME/conf 目录下的 log4j.properties 文件。
log4j.rootLogger=INFO, file, console
# Log all infos to the console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n
然后启动 session cluster 的命令行需要带上参数:
-Dkubernetes.container-start-command-template="%java% %classpath% %jvmmem% %jvmopts% %logging% %class% %args%"
网友评论