• 沒有找到結果。

10-34 Flink 系统加密传输方式

Flink整个系统有三种加密传输方式:

● 使用Yarn内部的加密传输方式:Flink yarn client与Yarn Resource Manager、

Yarn Resource Manager与Job Manager。

● SSL:Flink yarn client与JobManager、JobManager与TaskManager、

TaskManager与TaskManager。

● 使用Hadoop内部的加密传输方式:JobManager和HDFS、TaskManager和 HDFS、JobManager与ZooKeeper、TaskManager与ZooKeeper。

说明

Yarn内部和Hadoop内部都不需要用户配置加密,用户只需要配置SSL加密传输方式。

配置SSL传输,用户主要在客户端的“flink-conf.yaml”文件中做如下配置:

1. 打开SSL开关和设置SSL加密算法,配置参数如表10-6所示,请根据实际情况修改 对应参数值。

10-6 参数描述

参数 参数值示例 描述

security.ssl.enabled true 打开SSL总开关 akka.ssl.enabled true 打开akka SSL开关 blob.service.ssl.enabled true 打开blob通道SSL开关 taskmanager.data.ssl.en

abled true 打开taskmanager之间

通信的SSL开关

应用开发指南 10 Flink 开发指南(安全模式)

参数 参数值示例 描述

2. 在Flink客户端的bin目录下,执行命令sh generate_keystore.sh <password>, 具体操作可参考认证和加密,表10-7中的配置项会被默认赋值,用户也可以手动 配置。

10-7 参数描述

参数 参数值示例 描述

security.ssl.keystore ${path}/flink.keystore keystore的存放路径,

“flink.keystore”表示 用户通过generate_keystore.sh*工 具生成的keystore文件名 称。

security.ssl.keystore-password 123456 keystore的password,

“123456”表示需要用 户输入自定义设置的密 码值。

security.ssl.key-password 123456 ssl key的password,

“123456”表示需要用 户输入自定义设置的密 码值。

security.ssl.truststore ${path}/flink.truststore truststore存放路径,

“flink.truststore”表示 用户通过generate_keystore.sh*工 具生成的truststore文件 名称。

security.ssl.truststore-password 123456 truststore的password,

“123456”表示需要用 户输入自定义设置的密 码值。

应用开发指南 10 Flink 开发指南(安全模式)

说明

“path”目录是用来存放SSL keystore、truststore相关配置文件,该目录是由用户自定义 创建。相对路径和绝对路径的不同导致执行命令存在差异,在3和4详细说明。

3. 配置keystore或truststore文件路径为相对路径时,Flink Client执行命令的目录需 要可以直接访问该相对路径。Flink有两种执行方式来传输keystore和truststore文 件。

– 在Flink的CLI yarn-session.sh命令中增加“-t”选项来传输keystore和 truststore文件到各个执行节点。例如:

cd /opt/client/Flink/flink ./bin/yarn-session.sh -t ssl/

– 在Flink run命令中增加“-yt”选项来传输keystore和truststore文件到各个执 行节点。例如:

./bin/flink run -yt ssl/ -ys 3 -m yarn-cluster -c

com.huawei.SocketWindowWordCount ../lib/flink-eg-1.0.jar --hostname r3-d3 --port 9000

说明

● 示例中的“ssl/”是Flink客户端目录下自定义的子目录,用来存放SSL keystore、

truststore相关配置文件。

● Flink客户端执行命令的当前路径需要能访问到“ssl/”相对路径。

4. 配置keystore或truststore文件路径为绝对路径时,需要在Flink Client以及Yarn各 个节点的该绝对路径上放置keystore或truststore文件。

Flink有两种方式执行应用程序,且执行命令中不需要使用“-t”或“-yt”来传输 keystore和truststore文件。

– 使用Flink的CLI yarn-session.sh命令执行应用程序。如:

./bin/yarn-session.sh

– 使用Flink run命令执行应用程序。如:

./bin/flink run -ys 3 -m yarn-cluster -c

com.huawei.SocketWindowWordCount ../lib/flink-eg-1.0.jar --hostname r3-d3 --port 9000

10.3 开发程序

10.3.1 DataStream 程序

10.3.1.1 场景说明

场景说明

假定用户有某个网站周末网民网购停留时间的日志文本,基于某些业务要求,要求开 发Flink的DataStream应用程序实现如下功能:

说明

DataStream应用程序可以在Windows环境和Linux环境中运行。

应用开发指南 10 Flink 开发指南(安全模式)

● 实时统计总计网购时间超过2个小时的女性网民信息。

● 数据文件若存放在本地文件系统,需在所有部署Yarn NodeManager的节点指定目录放置,

并设置运行用户访问权限。