在系统的环境变量或java JVM变量⾥⾯添加HADOOP_USER_NAME,如程序中添加System.setProperty(“HADOOP_USER_NAME”, “bdata”);,这⾥的值就是以后会运⾏HADOOP上的
解析:
Linux的⽤⼾名,如果是eclipse,则修改完重启eclipse,不然可能不⽣效
运⾏Spark-SQL报错:org.apache.spark.sql.AnalysisException: unresolved operator ‘Project
解析:
解决办法:
在Spark-sql和hive结合时或者单独Spark-sql,运⾏某些sql语句时,偶尔出现上⾯错误,那么我们可以检查⼀下sql的问题,这⾥遇到的问题是嵌套语句太多,导致spark⽆法解析,所以需要
修改sql或者改⽤其他⽅式处理;特别注意该语句可能在hive⾥⾯没有错误,spark才会出现的⼀种错误。
spark输出太多warning messages
解析:
调试log时候发现问题解决了
在简略Spark输出设置时[Spark安装和配置 ]修改过$SPARK_HOME/conf/log4j.properties.template⽂件只输出WARN信息,就算改成了ERROR,信息也还是会⾃动修改成WARN输出出来,
不过多了⼀条提⽰:
Setting default log level to "WARN". To adjust logging level use sc.setLogLevel(newLevel).
就在这时发现了⼀个解决⽅案:
根据提⽰在代码中加⼊sc.setLogLevel('ERROR')就可以解决了!
org.apache.spark.shuffle.FetchFailedException,⼀般发⽣在有⼤量shuffle操作的时候,task不断的failed,然后⼜重执⾏,⼀直循环下去,⾮常的耗时
解析:
www.aboutyun.com/thread-24246-1-1.html 47/57
2019/4/24 spark相关的⾯试题跟答案,带着问题学习效果更佳哟。?)-⾯试区-about云开发
⼀般遇到这种问题提⾼executor内存即可,同时增加每个executor的cpu,这样不会减少task并⾏度。
Executor&Task Lost因为⽹络或者gc的原因,worker或executor没有接收到executor或task的⼼跳反馈WARN TaskSetManager: Lost task 0 in stage 0 (TID 1, aa.local):
解析:
ExecutorLostFailure (executor lost)
提⾼ spark.network.timeout 的值,根据情况改成300(5min)或更⾼。
默认为 120(120s),配置所有⽹络传输的延时,如果没有主动设置以下参数,默认覆盖其属性
spark.core.connection.ack.wait.timeout
spark.akka.timeout
spark.storage.blockManagerSlaveTimeoutMs
spark.shuffle.io.connectionTimeout
spark.rpc.askTimeout or spark.rpc.lookupTimeout