文档首页/ MapReduce服务 MRS/ 故障排除/ 使用Spark/ DataArts Studio调度Spark作业失败
更新时间:2023-11-10 GMT+08:00
分享

DataArts Studio调度Spark作业失败

问题现象

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在启动时会在ZooKeeper的“/thriftserver”目录下创建子目录“active_thriftserver”,并且注册相关连接信息。如果读不到该连接信息就会JDBC连接异常。

处理步骤

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

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

    source /opt/client/bigdata_env

  2. 执行zkCli.sh -server 'ZooKeeper实例IP地址:ZooKeeper连接端口'命令登录ZooKeeper。

    ZooKeeper连接端口通常为2181,可通过查看ZooKeeper服务配置参数“clientPort”获取。

  3. 执行ls /thriftserver查看是否有“active_thriftserver”目录。

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

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

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

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

相关文档