更新时间:2022-12-14 GMT+08:00

DataArts Studio调度spark作业失败

用户问题

DataArts Studio作业调度失败,显示读取/thriftserver/active_thriftserver路径下的数据失败。

问题现象

DataArts Studio作业调度失败,显示读取/thriftserver/active_thriftserver路径下的数据失败,

报错信息为:Can not get JDBC Connection, due to KeeperErrorCode = NoNode for /thriftserver/active_thriftserver。

原因分析

DataArts Studio提交spark作业时调用spark的JDBC方式,而Spark会启动一个名为thriftserver的进程以供客户端提供JDBC连接,JDBCServer在启动时会在zk的/thriftserver目录下创建子目录active_thriftserver,并且注册相关连接信息。如果读不到该连接信息就会JDBC连接异常。

处理步骤

检查zookeeper下面是否有目标目录和注册的信息

  1. 以root用户登录任意一个Master节点并初始化环境变量。

    source /opt/client/bigdata_env

  2. 执行zkCli.sh -server 'ZookeeperIp:2181'命令登录zk。
  3. 执行ls /thriftserver查看是否有active_thriftserver目录。

    • 如果有active_thriftserver目录,执行get /thriftserver/active_thriftserver查看该目录下是否有注册的配置信息。
      • 如果有注册的配置信息,联系支持人员处理。
      • 如果没有注册的配置信息,执行4
    • 如果没有active_thriftserver目录,执行4

  4. 登录Manager界面,查看Spark的JDBCServer实例的主备状态是否未知。

    • 是,执行5
    • 否,联系运维人员处理。

  5. 重启两个JDBCServer实例,查看主备实例状态恢复正常且zk下面有了目标目录和数据,作业即可恢复正常。若实例状态没有恢复请联系支持人员处理。