You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@tez.apache.org by "Gopal V (JIRA)" <ji...@apache.org> on 2019/05/30 06:08:00 UTC
[jira] [Comment Edited] (TEZ-4073) Configuration: Reduce Vertex and
DAG Payload Size
[ https://issues.apache.org/jira/browse/TEZ-4073?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16851545#comment-16851545 ]
Gopal V edited comment on TEZ-4073 at 5/30/19 6:07 AM:
-------------------------------------------------------
Async dispatcher CPU is mostly spent on the protobuf codepaths.
The AM side shows hotspots in places like
{code}
public VertexManagerPluginDescriptor build() {
VertexManagerPluginDescriptor desc =
VertexManagerPluginDescriptor.create(
RootInputVertexManager.class.getName());
try {
return desc.setUserPayload(TezUtils
.createUserPayloadFromConf(this.conf));
} catch (IOException e) {
throw new TezUncheckedException(e);
}
}
{code}
was (Author: gopalv):
Async dispatcher CPU is mostly spent on the protobuf codepaths.
> Configuration: Reduce Vertex and DAG Payload Size
> -------------------------------------------------
>
> Key: TEZ-4073
> URL: https://issues.apache.org/jira/browse/TEZ-4073
> Project: Apache Tez
> Issue Type: Bug
> Reporter: Gopal V
> Priority: Major
> Attachments: tez-am-protobuf-reading.png, tez-protobuf-writing.png
>
>
> As the total number of vertices go up, the Tez protobuf transport starts to show up as a potential scalability problem for the task submission and the AM
> {code}
> public TezTaskRunner2(Configuration tezConf, UserGroupInformation ugi, String[] localDirs,
> ...
> this.taskConf = new Configuration(tezConf);
> if (taskSpec.getTaskConf() != null) {
> Iterator<Entry<String, String>> iter = taskSpec.getTaskConf().iterator();
> while (iter.hasNext()) {
> Entry<String, String> entry = iter.next();
> taskConf.set(entry.getKey(), entry.getValue());
> }
> }
> {code}
> The TaskSpec getTaskConf() need not include any of the default configs, since the keys are placed into an existing task conf.
> {code}
> // Security framework already loaded the tokens into current ugi
> DAGProtos.ConfigurationProto confProto =
> TezUtilsInternal.readUserSpecifiedTezConfiguration(System.getenv(Environment.PWD.name()));
> TezUtilsInternal.addUserSpecifiedTezConfiguration(defaultConf, confProto.getConfKeyValuesList());
> UserGroupInformation.setConfiguration(defaultConf);
> Credentials credentials = UserGroupInformation.getCurrentUser().getCredentials();
> {code}
> At the very least, the DAG and Vertex do not both need to have the same configs repeated in them.
> !tez-protobuf-writing.png!
> +
> !tez-am-protobuf-reading.png!
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)