如何确定Apache Livy的“允许的最大活动会话数”?

时间:2019-09-11 22:10:43

标签: apache-spark session amazon-emr livy

比方说,我想继续为提交给YARN的每个Spark作业创建一个会话。每个连接都有一个唯一的用户,该用户不断轮询状态并将语句发布到会话中。如何在任何给定的时间计算Livy可以拥有多少活动会话?它是否基于我配置的livy.spark.driver大小?此计算还涉及哪些其他参数?

1 个答案:

答案 0 :(得分:0)

yarn有一个使用AM容器的调度程序,livy将使用群集/独立服务器上的可用资源初始化对纱线的接受请求。 参见yarn-scheduler 应该将livy-client.conf配置为处理长时间运行的作业以产生响应。

  

livy-client.conf

     

状态检查为取消作业之间的时间

     

livy.rsc.job-cancel.trigger-interval = 100ms

     

取消作业被强制进入取消状态之前的时间

     

livy.rsc.job-cancel.timeout = 60m

这是您应过滤状态的示例代码:输出中的繁忙会话。

import requests

host = "{livy_host}:8998"
sessions = requests.get(host + '/sessions/')
  

输出   b'{“ from”:0,“ total”:1,“ sessions”:[{“ id”:3,“ appId”:“ application_1566223151385_0085”,“ owner”:null,“ proxyUser”:null,“ state” :“忙”,“种类”:“ pyspark”,“ appInfo”:{“ driverLogUrl”:“ {livy_host}:8042 / node / containerlogs / container_e182_1566223151385_0085_01_000001 / mapr”,“ sparkUiUrl”:“ {livy_host}:8088 / proxy / application_1566223151385_0085 /“},” log“:[”“]}]}'

sum(session['state'] == 'busy' for session in sessions.json()['sessions'])