in client-tez/src/main/java/org/apache/tez/common/ShuffleAssignmentsInfoWritable.java [49:101]
public void write(DataOutput dataOutput) throws IOException {
if (shuffleAssignmentsInfo == null) {
dataOutput.writeInt(-1);
LOG.warn("shuffleAssignmentsInfo is null, no need write");
return;
} else {
dataOutput.writeInt(1);
}
Map<Integer, List<ShuffleServerInfo>> partitionToServers =
shuffleAssignmentsInfo.getPartitionToServers();
if (MapUtils.isEmpty(partitionToServers)) {
dataOutput.writeInt(-1);
} else {
dataOutput.writeInt(partitionToServers.size());
for (Map.Entry<Integer, List<ShuffleServerInfo>> entry : partitionToServers.entrySet()) {
dataOutput.writeInt(entry.getKey());
if (CollectionUtils.isEmpty(entry.getValue())) {
dataOutput.writeInt(-1);
} else {
dataOutput.writeInt(entry.getValue().size());
for (ShuffleServerInfo serverInfo : entry.getValue()) {
dataOutput.writeUTF(serverInfo.getId());
dataOutput.writeUTF(serverInfo.getHost());
dataOutput.writeInt(serverInfo.getGrpcPort());
}
}
}
}
Map<ShuffleServerInfo, List<PartitionRange>> serverToPartitionRanges =
shuffleAssignmentsInfo.getServerToPartitionRanges();
if (MapUtils.isEmpty(serverToPartitionRanges)) {
dataOutput.writeInt(-1);
} else {
dataOutput.writeInt(serverToPartitionRanges.size());
for (Map.Entry<ShuffleServerInfo, List<PartitionRange>> entry :
serverToPartitionRanges.entrySet()) {
dataOutput.writeUTF(entry.getKey().getId());
dataOutput.writeUTF(entry.getKey().getHost());
dataOutput.writeInt(entry.getKey().getGrpcPort());
if (CollectionUtils.isEmpty(entry.getValue())) {
dataOutput.writeInt(-1);
} else {
dataOutput.writeInt(entry.getValue().size());
for (PartitionRange range : entry.getValue()) {
dataOutput.writeInt(range.getStart());
dataOutput.writeInt(range.getEnd());
}
}
}
}
}