问题一:yarn部署模式kerberos问题
最近使用flink-1.11.1在通过per-job方式提交任务到yarn队列的时候,碰到了kerberos权限认证问题。
具体描述:在客户端通过Kerberos权限认证指定用户,提交flink任务到yarn队列,正常提交,但是当任务被yarn分配到指定节点进行执行时,根据报错信息来看,是因为需要操作hdfs(创建检查点目录和保存点目录,因为我使用FileSystem StateBackend)而并没有获得操作hdfs的权限,被kerberos常规的拦截了。
所以我通过查找社区邮件了解到,使用-yD参数可以避免这个问题,但是理论上来说在客户端通过认证并成功提交到yarn之后,无论是任务提交节点还是任务执行节点,权限都应该互通吗?
这里的-yD security.kerberos.login.principal=xxx -yD security.kerberos.login.keytab=xxx是纯粹为了解决这类问题而使用的吗?帮忙解惑~*来自志愿者整理的flink邮件归档
参考答案:
请问描述中的"在客户端通过Kerberos权限认证指定用户"指的具体是什么操作?
-yD security.kerberos.login.principal=xxx -yD security.kerberos.login.keytab=xxx
这两个参数的作用是在Flink中enable
HadoopModule,这个Module利用UserGroupInformation来处理Kerberos认证。同时在Yarn部署中,会帮你把这个Keytab上传到yarn中的container里。
可以参照社区文档再看一下[1]
[1] https://ci.apache.org/projects/flink/flink-docs-master/ops/security-kerberos.html*来自志愿者整理的flink邮件归档
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/371636?spm=a2c6h.13066369.question.92.6ad26382J06FAq
问题二:Flink中是否可动态Task调度
我目前学习到的情况是,Flink在初次运行Job时,会先申请所有需要的Slot,确定每一个Task都在哪个TM的哪个Slot中,然后再执行整个任务。 那么在执行阶段,能否动态调节某一组Task/SubTask从一个slot转移到另一个空闲的slot(甚至从一个TM转移到另一个TM这种跨TM)?
例如算子并发度3、两个TM、每个TM有3个slot的情况下,资源预申请时可能3个subTask都被放置在TM 1的3个slot中。 那么在运行时,能否动态调节其中一个subTask到TM 2的1个slot中?*来自志愿者整理的flink邮件归档
参考答案:
Flink 不支持执行中更改 slot 的情况。不确定你说的“预申请”是什么意思。
如果是你举例的这种情况,可以配置 cluster.evenly-spread-out-slots: true
[1] 来促使 slot 在 TM
上尽量均匀分布。*来自志愿者整理的flink邮件归档
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/371635?spm=a2c6h.13066369.question.93.6ad2638297rTAv
问题三:flink 1.11.2 keyby 更换partition
请问可以更改keyby的hash partition 不? 现在发现这个hash partition不能均匀的分配key。
KeyGroupRangeAssignment.assignKeyToParallelOperator(stringToMd5(asset_id),
128, parallesism)
用这个方法测试,即使个asset_id 转换为MD5都不能均匀分配。
相反,用最最简单的 Math.abs(asset_id.hashcode() % parallesism ) 就可以平均的分配key。
*来自志愿者整理的flink邮件归档
参考答案:
不太明白你这里问题,如果是说按照 Md5 进行 keyby 不均匀,直接用 hashcode keyby 会更均匀的话,是不是直接把计算
md5 的逻辑改成计算 hashcode 的逻辑就行了*来自志愿者整理的flink邮件归档
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/371634?spm=a2c6h.13066369.question.94.6ad26382wrMCWw
问题四:pyflink的where该如何使用?如何筛选?
我想要在输出表中进行条件筛选,使用了where语句,结果不行
我的代码如下:
处理流程
t_env.from_path('mySource') \
.select("pickup_datetime, dropoff_datetime, pickup_longitude, pickup_latitude, dropoff_longitude, dropoff_latitude, distance_meters(pickup_longitude, pickup_latitude) as O, distance_meters(dropoff_longitude, dropoff_latitude) as D, compute_duration_time(pickup_datetime, dropoff_datetime) as duration") \
.where("duration >= 120 && duration <= 3600") \
.select("pickup_datetime, dropoff_datetime, pickup_longitude, pickup_latitude, dropoff_longitude, dropoff_latitude, O, D, is_same_od(O, D) as same_od, duration") \
.where("same_od == 0") \
.select("pickup_datetime, dropoff_datetime, pickup_longitude, pickup_latitude, dropoff_longitude, dropoff_latitude, O, D, duration") \
.insert_into('mySink')
请问我这样使用where为什么不行呢?我应该如何去筛选出想要的结果呢?
(尝试了去掉where是可以正常运行的)*来自志愿者整理的flink邮件归档
参考答案:
你说的不行,指的是运行报错了 (如果报错了,可以贴下错误的日志), 还是出来的结果不符合预期(是不生效,还是啥的)。 *来自志愿者整理的flink邮件归档
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/371632?spm=a2c6h.13066369.question.97.6ad26382FEyFHp
问题五:Flink 1.11 submit job timed out
使用版本Flink 1.11,部署方式 kubernetes session。 TM个数30个,每个TM 4个slot。 job 并行度120.提交作业的时候出现大量的No hostname could be resolved for the IP address,JM time out,作业提交失败。web ui也会卡主无响应。
用wordCount,并行度只有1提交也会刷,no hostname的日志会刷个几条,然后正常提交,如果并行度一上去,就会超时。
部分日志如下:
2020-07-15 16:58:46,460 WARN org.apache.flink.runtime.taskmanager.TaskManagerLocation [] - No hostname could be resolved for the IP address 10.32.160.7, using IP address as host name. Local input split assignment (such as for HDFS files) may be impacted. 2020-07-15 16:58:46,460 WARN org.apache.flink.runtime.taskmanager.TaskManagerLocation [] - No hostname could be resolved for the IP address 10.44.224.7, using IP address as host name. Local input split assignment (such as for HDFS files) may be impacted. 2020-07-15 16:58:46,461 WARN org.apache.flink.runtime.taskmanager.TaskManagerLocation [] - No hostname could be resolved for the IP address 10.40.32.9, using IP address as host name. Local input split assignment (such as for HDFS files) may be impacted.
2020-07-15 16:59:10,236 INFO org.apache.flink.runtime.resourcemanager.StandaloneResourceManager [] - The heartbeat of JobManager with id 69a0d460de468888a9f41c770d963c0a timed out. 2020-07-15 16:59:10,236 INFO org.apache.flink.runtime.resourcemanager.StandaloneResourceManager [] - Disconnect job manager 00000000000000000000000000000000@akka.tcp://flink@flink-jobmanager:6123/user/rpc/jobmanager_2 for job e1554c737e37ed79688a15c746b6e9ef from the resource manager.
how to deal with ?*来自志愿者整理的flink邮件归档
参考答案:
个人之前有遇到过 类似 的host解析问题,可以从k8s的pod节点网络映射角度排查一下。 希望这对你有帮助。*来自志愿者整理的flink邮件归档
关于本问题的更多回答可点击进行查看: