标签:memory hive 报错 sql spark hiveconf
hive提交spark报错
报错内容
Failed to execute spark task, with exception 'org.apache.hadoop.hive.ql.metadata.HiveException(Failed to create spark client.)' FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.spark.SparkTask. Failed to create spark client.
排查思路
首先确定集群最近没有修改,可能是sql配置的有问题,请教开发同学 发现也没有变动。
这里的报错显示任务没有提交到集群, 那么使用其他简单的命令试一试
hive -e "show databases"
hive -e "select count(1) from XXX.XX"
这里面的第一个语句显示结果 表明连接集群没问题 因为查询出来的结果是集群里面的数据
第二个语句查询出来也没问题,因为count(*)会跑mr 所以集群肯定没问题
- 接下来怀疑可能是sql里面的参数有问题, 大概看了下没有发现什么问题,
- 终极杀招
添加参数
--hiveconf hive.root.logger=DEBUG,console
如下示例
hive --hiveconf hive.root.logger=DEBUG,console --hiveconf hive.spark.client.server.connect.timeout=300000ms --hiveconf hive.exec.max.dynamic.partitions.pernode=1000 -hivevar pd=2022-04-25 -hivevar yesterday=2022-04-24 -hivevar start_time=2021-10-28 -hivevar end_time=2022-04-26 -f ./1.sql
这样我们就看到报错了
2022-04-26T11:03:48,324 INFO [stderr-redir-1] client.SparkClientImpl: Exception in thread "main" java.lang.IllegalArgumentException: Required executor memory (10240), overhead (1024 MB), and PySpark memory (0 MB) is above the max threshold (10485 MB) of this cluster! Please check the values of 'yarn.scheduler.maximum-allocation-mb' and/or 'yarn.nodemanager.resource.memory-mb'.
原来是因为修改了yarn的mem 导致任务提交申请不到那么多内存
sql里面的写法
` SET spark.sql.autoBroadcastJoinThreshold=-1;
SET spark.driver.memory=8G;
SET spark.executor.memory=10G;
SET spark.driver.maxResultSize=8G;
`
减小内存即可
标签:memory,hive,报错,sql,spark,hiveconf 来源: https://www.cnblogs.com/ZFBG/p/16194042.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。