diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/protocol/DatanodeDetails.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/protocol/DatanodeDetails.java index 04329ab2b038..ec68692d24c0 100644 --- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/protocol/DatanodeDetails.java +++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/protocol/DatanodeDetails.java @@ -195,6 +195,15 @@ public String getHostName() { return hostName; } + /** + * Returns the Hostname and IP of the datanode separated by a slash. + * + * Eg: datanode001.corp/192.168.0.123 + */ + public String getHostNameAndIP() { + return getHostName() + "/" + getIpAddress(); + } + /** * Sets a DataNode Port. * diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/CloseContainerCommand.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/CloseContainerCommand.java index ded0464ef4ba..edc551688ea6 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/CloseContainerCommand.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/CloseContainerCommand.java @@ -79,4 +79,14 @@ public long getContainerID() { public PipelineID getPipelineID() { return pipelineID; } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getType()) + .append(": containerID: ").append(getContainerID()) + .append(", pipelineID: ").append(getPipelineID()) + .append(", force: ").append(force); + return sb.toString(); + } } diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/DeleteContainerCommand.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/DeleteContainerCommand.java index bb9035f2961e..6b76803dbf8a 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/DeleteContainerCommand.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/DeleteContainerCommand.java @@ -105,4 +105,14 @@ public static DeleteContainerCommand getFromProtobuf( public int getReplicaIndex() { return replicaIndex; } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getType()) + .append(": containerID: ").append(getContainerID()) + .append(", replicaIndex: ").append(getReplicaIndex()) + .append(", force: ").append(force); + return sb.toString(); + } } diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/ReconstructECContainersCommand.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/ReconstructECContainersCommand.java index 203e5e6bed07..f86fcc7a6569 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/ReconstructECContainersCommand.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/ReconstructECContainersCommand.java @@ -134,6 +134,23 @@ public ECReplicationConfig getEcReplicationConfig() { return ecReplicationConfig; } + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getType()) + .append(": containerID: ").append(containerID) + .append(", replicationConfig: ").append(ecReplicationConfig) + .append(", sources: [").append(getSources().stream() + .map(a -> a.dnDetails.getHostNameAndIP() + + " replicaIndex: " + a.getReplicaIndex()) + .collect(Collectors.joining(", "))).append("]") + .append(", targets: [").append(getTargetDatanodes().stream() + .map(DatanodeDetails::getHostNameAndIP) + .collect(Collectors.joining(", "))).append("]") + .append(", missingIndexes: ").append( + Arrays.toString(missingContainerIndexes)); + return sb.toString(); + } /** * To store the datanode details with replica index. */ diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/ReplicateContainerCommand.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/ReplicateContainerCommand.java index f824557778fb..cdc2a15e9c50 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/ReplicateContainerCommand.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/ReplicateContainerCommand.java @@ -109,4 +109,17 @@ public List getSourceDatanodes() { public int getReplicaIndex() { return replicaIndex; } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getType()); + sb.append(": containerId: ").append(getContainerID()); + sb.append(", replicaIndex: ").append(getReplicaIndex()); + sb.append(", sourceNodes: ["); + sb.append(sourceDatanodes.stream() + .map(DatanodeDetails::getHostNameAndIP) + .collect(Collectors.joining(", "))).append("]"); + return sb.toString(); + } } diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ReplicationManager.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ReplicationManager.java index 5fd0ad2ea2e5..1b5ee43fe3fc 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ReplicationManager.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ReplicationManager.java @@ -423,8 +423,8 @@ public void sendDeleteCommand(final ContainerInfo container, int replicaIndex, public void sendDatanodeCommand(SCMCommand command, ContainerInfo containerInfo, DatanodeDetails target) throws NotLeaderException { - LOG.info("Sending command of type {} for container {} to {}", - command.getType(), containerInfo, target); + LOG.info("Sending command [{}] for container {} to {}", + command, containerInfo, target); command.setTerm(getScmTerm()); command.setDeadline(clock.millis() + Math.round(rmConf.eventTimeout * rmConf.commandDeadlineFactor));