简单记录下提交MR任务到YARN的问题记录吧。
异常信息关键信息:
impl.YarnClientImpl: Application submission is not finished ,submitted application_xxx is still in NEW
情况一,使用distcp时可能会遇到这种问题
此问题是由一个已知的错误(YARN-3021)引起的。
https://issues.apache.org/jira/browse/YARN-3021
要解决此问题,请在distcp命令中添加以下值:
-Dmapreduce.job.hdfs-servers.token-renewal.exclude=<remoteHDFS namespace/active nn host/RemoteNamenodeFQDN>
示例:
hadoop distcp -Dmapreduce.job.hdfs-servers.token-renewal.exclude=nameservice hdfs://namenode1:8020/foo hdfs://nameservice1/bar
hadoop distcp -Dmapreduce.job.hdfs-servers.token-renewal.exclude=namenode2 hdfs://namenode1:8020/foo hdfs://namenode2:8020/bar
情况二,提交spark-submit遇到这种问题
提交命令
spark-submit \
--master yarn \
--deploy-mode cluster \
--class org.apache.spark.examples.SparkPi \
--num-executors 1 --executor-memory 2G --executor-cores 1 \
--name Spark-Pi \
/opt/cloudera/parcels/CDH/jars/spark-examples_2.11-2.4.0-cdh6.2.1.jar 1
原因是 krb5.conf文件中的 udp_preference_limit 参数设置为 0 启用了udp协议,理论上udp协议走不通会尝试tcp协议,但是从结果上看显示是不行的,因为将udp_preference_limit 设置为1 直接禁用掉使用udp协议即可。
对于协议我这边暂时没什么了解,所以先简单记录下。
本人旨在分享工作中一些用到的知识技能
如有感兴趣欢迎关注Wbigdata微信公众号。