报错:
FAILED: Execution Error, return code 30041 from org.apache.hadoop.hive.ql.exec.spark.SparkTask.
Failed to create Spark client for Spark session XXXX: java.util.concurrent.TimeoutException:
Client ‘XXXXX’ timed out waiting for connection from the Remote Spark Driver
调整超时参数
启动spark集群时,具体的超时时间,有两个相关参数进行控制:
1、hive.spark.client.server.connect.timeout:该参数是服务端配置,用来控制hive客户端跟远程spark集群中的sparkdriver建立连接的超时时间,默认90秒
(这里hive客户端是启动spark集群的客户端,其实就是hs2);90000–>300000
注意:hive.spark.client.server.connect.timeout是服务端参数,所以需要在服务端更改配置并重启服务端(hs2)后才能生效,
单纯在客户端修改该参数,虽然修改时不会报错但修改并不会生效!
2、hive.spark.client.connect.timeout:该参数是客户端配置,用来控制远程spark集群中的sparkdriver跟hive客户端建立连接的时间,默认1秒;1000–>10000
Hive on Spark功能目前只增加下面九个参数:
1、hive.spark.client.future.timeout
Hive client请求Spark driver的超时时间,如果没有指定时间单位,默认就是秒。
2、hive.spark.job.monitor.timeout
Job监控获取Spark作业状态的超时时间,如果没有指定时间单位,默认就是秒。
3、hive.spark.client.connect.timeout
Spark driver连接Hive client的超时时间,如果没有指定时间单位,默认就是毫秒。
4、hive.spark.client.server.connect.timeout
Hive client和远程Spark driver握手时的超时时间,这个会在两边都检查的,如果没有指定时间单位,默认就是毫秒。
5、hive.spark.client.secret.bits
在Hive client和远程Spark driver通信过程中,随机生成密码的比特数。最好设置成8的倍数。
6、hive.spark.client.rpc.threads
远程Spark drive用于处理RPC事件所用的最大线程数,默认是8。
7、hive.spark.client.rpc.max.size
Hive client和远程Spark driver通信最大的消息大小(单位:byte),默认是50MB。
8、hive.spark.client.channel.log.level
远程Spark driver的通道日志级别,必须是DEBUG, ERROR, INFO, TRACE, WARN中的一个。
9、hive.spark.client.rpc.sasl.mechanisms
用于身份验证的SASL机制的名称。