Details
-
Bug
-
Status: Closed
-
Blocker
-
Resolution: Fixed
-
0.9.1
-
None
-
None
-
Reviewed
Description
"yarn.resourcemanager.zk-address" is deprecated in favor of "hadoop.zk.address" for Hadoop 2.9+.
Configuration base class does't auto-translate the deprecation. Only YarnConfiguration applies the translation.
In TezClientUtils.createFinalConfProtoForApp, a NPE is throw if "yarn.resourcemanager.zk-address" is present in the Configuration.
for (Entry<String, String> entry : amConf) { PlanKeyValuePair.Builder kvp = PlanKeyValuePair.newBuilder(); kvp.setKey(entry.getKey()); kvp.setValue(amConf.get(entry.getKey())); builder.addConfKeyValues(kvp); }
Even though Tez is not specifically looking for the deprecated property, amConf.get(entry.getKey()) will find it during the iteration, if it is in any of the merged xml property resources.
amConf.get(entry.getKey()) will return null, and kvp.setValue(null) will trigger NPE.
Suggested solution is to change to:
YarnConfiguration wrappedConf = new YarnConfiguration(amConf); for (Entry<String, String> entry : wrappedConf) { PlanKeyValuePair.Builder kvp = PlanKeyValuePair.newBuilder(); kvp.setKey(entry.getKey()); kvp.setValue(wrappedConf.get(entry.getKey())); builder.addConfKeyValues(kvp); }
Attachments
Attachments
Issue Links
- is broken by
-
HADOOP-14741 Refactor curator based ZooKeeper communication into common library
- Resolved
- relates to
-
HADOOP-15093 Deprecation of yarn.resourcemanager.zk-address is undocumented
- Resolved