Get desktop application:
View/edit binary Protocol Buffers messages
(message has no fields)
(message has no fields)
* Protocol used from client to the Datanode. See the request and response for details of rpc call.
* Returns the visible length of the replica
* block - block for which visible length is requested
* length - visible length of the block
* Refresh the list of federated namenodes from updated configuration. Adds new namenodes and stops the deleted namenodes.
* void request
(message has no fields)
* void response
(message has no fields)
* Delete the block pool from the datanode.
* blockPool - block pool to be deleted force - if false, delete the block pool only if it is empty. if true, delete the block pool even if it has blocks.
* void response
(message has no fields)
* Retrieves the path names of the block file and metadata file stored on the local file system.
* Gets the file information where block and its metadata is stored block - block for which path information is being requested token - block token This message is deprecated in favor of file descriptor passing.
* block - block for which file path information is being returned localPath - file path where the block data is stored localMetaPath - file path where the block meta data is stored This message is deprecated in favor of file descriptor passing.
* forUpgrade - if true, clients are advised to wait for restart and quick upgrade restart is instrumented. Otherwise, datanode does the regular shutdown.
(message has no fields)
* Tell datanode to evict active clients that are writing
(message has no fields)
(message has no fields)
* Ping datanode for liveness and quick info
(message has no fields)
(message has no fields)
(message has no fields)
* Returns the balancer bandwidth value of datanode.
(message has no fields)
* bandwidth - balancer bandwidth value of the datanode.
* Submit a disk balancer plan for execution
* This message allows a client to submit a disk balancer plan to a data node.
A hash of the plan like SHA-1
Plan file data in Json format
Plan version number
Ignore date checks on this plan.
Plan file path
* Response from the DataNode on Plan Submit request
(message has no fields)
* Cancel an executing plan
* This message describes a request to cancel an outstanding disk balancer plan
* This is the response for the cancellation request
(message has no fields)
* Gets the status of an executing Plan
* This message allows a client to query data node to see if a disk balancer plan is executing and if so what is the status.
(message has no fields)
* This message describes a plan if it is in progress
* Gets run-time settings of Disk Balancer.
* This message sends a request to data node get a specific setting that is used by disk balancer.
* Response that describes the value of requested disk balancer setting.
file name
range start offset
range length
No parameters
(message has no fields)
bits set using CreateFlag
Short: Only 16 bits used
bits set using CreateFlag
Short: Only 16 bits used
void response
(message has no fields)
(message has no fields)
void request
(message has no fields)
void response
(message has no fields)
void response
(message has no fields)
default to GRANDFATHER_INODE_ID
void response
(message has no fields)
default as a bogus id
the set of datanodes to use for the block
default to empty.
default to GRANDFATHER_INODE_ID
default to GRANDFATHER_INODE_ID
void response
(message has no fields)
void response
(message has no fields)
void response
(message has no fields)
void response
(message has no fields)
no input paramters
(message has no fields)
no input paramters
(message has no fields)
no input paramters
(message has no fields)
void response
no parameters
(message has no fields)
response
no parameters
(message has no fields)
void response
(message has no fields)
no parameters
(message has no fields)
void response
(message has no fields)
no parameters
(message has no fields)
void response
(message has no fields)
bits set using CacheFlag
bits set using CacheFlag
(message has no fields)
(message has no fields)
void response
(message has no fields)
void response
(message has no fields)
void response
(message has no fields)
void response
(message has no fields)
default to GRANDFATHER_INODE_ID
void response
(message has no fields)
void response
(message has no fields)
void response
(message has no fields)
void response
(message has no fields)
void response
(message has no fields)
no parameters
(message has no fields)
void response
(message has no fields)
(message has no fields)
(message has no fields)
no input parameters
(message has no fields)
void response
(message has no fields)
(message has no fields)
(message has no fields)
(message has no fields)
(message has no fields)
(message has no fields)
bits set using XAttrSetFlagProto
(message has no fields)
(message has no fields)
void response
(message has no fields)
(message has no fields)
(message has no fields)
(message has no fields)
(message has no fields)
(message has no fields)
void request
(message has no fields)
(message has no fields)
(message has no fields)
(message has no fields)
path to get the policy info
void request
(message has no fields)
(message has no fields)
(message has no fields)
(message has no fields)
(message has no fields)
* Protocol used between datanodes for block recovery. See the request and response for details of rpc call.
* Initialize recovery of a replica
* Block with location information and new generation stamp to be used for recovery.
* Repica recovery information
The following entries are not set if there was no replica found.
State of the replica
block information
* Update a replica with new generation stamp and length
* Update replica with new generation stamp and length
Block identifier
New genstamp of the replica
New length of the replica
New blockId for copy (truncate), default is 0.
* Response returns updated block information
ID of the storage that stores replica
* Protocol used from client to the NN/DN. See the request and response for details of rpc call.
* File access permissions mode.
Used in:
Used in:
, , , , ,Used in:
Used in:
Used in:
,Used in:
Used in:
avoid writing to local node.
write to a random node
Used in:
Used in:
, , , , ,Directory listing result for a batched listing call.
Used in:
* Algorithms/types denoting how block-level checksums are computed using lower-level chunk checksums/CRCs. These options should be kept in sync with org.apache.hadoop.hdfs.protocol.BlockChecksumOptions.
Used in:
, ,Only used if blockChecksumType specifies a striped format, such as COMPOSITE_CRC. If so, then the blockChecksum in the response is expected to be the concatenation of N crcs, where N == ((requestedLength - 1) / stripedLength) + 1
Used in:
BlockChecksum obtained by taking the MD5 digest of chunk CRCs
Chunk-independent CRC, optionally striped
* Block erasure coding reconstruction info
* Block access token information
Used in:
Key identifier
Expiry time in milliseconds
Key secret
* explanatory text which may be useful to log on the client side
* If the server chooses to agree to the request of a client for short-circuit access, it will send a response message with the relevant file descriptors attached. In the body of the message, this version number will be set to the specific version number of the block data that the client is about to read.
* Block information Please be wary of adding additional fields here, since INodeFiles need to fit in PB's default max message size of 64MB. We restrict the max # of blocks per file (dfs.namenode.fs-limits.max-blocks-per-file), but it's better to avoid changing this.
Used in:
, , , , , ,* Block replica storage policy.
Used in:
,a list of storage types for storing the block replicas when creating a block.
A list of storage types for creation fallback storage.
* Secret information for the BlockKeyProto. This is not sent on the wire as such but is used to pack a byte array and encrypted and put in BlockKeyProto.bytes When adding further fields, make sure they are optional as they would otherwise not be backwards compatible. Note: As part of the migration from WritableUtils based tokens (aka "legacy") to Protocol Buffers, we use the first byte to determine the type. If the first byte is <=0 then it is a legacy token. This means that when using protobuf tokens, the the first field sent must have a `field_number` less than 16 to make sure that the first byte is positive. Otherwise it could be parsed as a legacy token. See HDFS-11026 for more discussion.
* Types of recognized blocks.
* Block and datanodes where is it located
Used in:
Block
Datanodes with replicas of the block
Storages with replicas of the block
* List of block with locations
Used in:
Used in:
Used in:
, , ,Used in:
Ignore pool resource limits
Used in:
Used in:
, ,Used in:
Used in:
,* Command returned from primary to checkpointing namenode. This command has checkpoint signature that identifies checkpoint transaction and is needed for further communication related to checkpointing.
Used in:
Unique signature to identify checkpoint transation
If true, return transfer image to primary upon the completion of checkpoint
* Unique signature to identify checkpoint transactions.
Used in:
Used in:
,* Checksum algorithms/types used in HDFS Make sure this enum's integer values match enum values' id properties defined in org.apache.hadoop.util.DataChecksum.Type
Used in:
, ,* Cipher option
Used in:
* Cipher suite.
Used in:
, , ,Used in:
, ,* Message sent from the client to the DN after reading the entire read request.
* Codec and it's corresponding coders
Used in:
* Summary of a file or directory
Used in:
* Contains a list of paths corresponding to corrupt files and a cookie used for iterative calls to NameNode.listCorruptFileBlocks.
Used in:
Create a file
Truncate/overwrite a file. Same as POSIX O_TRUNC
Append to a file
File with reduced durability guarantees.
Write data to a new block when appending
Enforce to create a replicate file
* Crypto protocol version used to access encrypted files.
Used in:
, , ,Used in:
Used in:
Used in:
, ,* Identifies a Datanode
Used in:
,IP address
hostname
UUID assigned to the Datanode. For
upgraded clusters this is the same as the original StorageID of the Datanode.
data streaming port
datanode http port
ipc server port
datanode https port
* The status of a Datanode
Used in:
, , , , , , , ,Used in:
* DatanodeInfo array
Used in:
,* Datanode local information
Used in:
type of the datanode report
Used in:
,* Represents a storage available on the datanode
Used in:
Used in:
Used in:
* Datanode volume information
Used in:
* Directory listing
Used in:
* ECSchema options entry
Used in:
* ECSchema for erasurecoding
Used in:
Used in:
Used in:
,Used in:
, , , , , , , ,Actually a byte - only 8 bits used
* EC policy state.
Used in:
Used in:
Used in:
,Used in:
Used in:
deprecated
* Current key and set of block keys at the namenode.
* Extended block idenfies a block
Used in:
, , , , , , , , , , , ,Block pool id - globally unique across clusters
the local id within a pool
len does not belong in ebid
* Encryption information for a file.
Used in:
,* File or Directory permision - same spec as posix
Used in:
, , , , , , , ,Actually a short - only 16bits used
* HDFS Server Defaults
Used in:
Actually a short - only 16 bits used
Used in:
It is empty if success.
* Query the running status of reconfiguration process
Used as request type in: ClientDatanodeProtocolService.getReconfigurationStatus, ReconfigurationProtocolService.getReconfigurationStatus
(message has no fields)
Used as response type in: ClientDatanodeProtocolService.getReconfigurationStatus, ReconfigurationProtocolService.getReconfigurationStatus
Used in:
* Status of a file, directory or symlink Optionally includes a file's block locations if requested by client on the rpc call.
Used in:
, , , , , , ,local name of inode encoded java UTF8
Optional fields for symlink
if symlink, target encoded java UTF8
Optional fields for file
only 16bits used
suppled only if asked by client
Optional field for fileId
default as an invalid id
Optional field for file encryption
block storage policy id
Optional field for erasure coding
Set of flags
Used in:
has ACLs
encrypted
erasure coded
SNAPSHOT ENABLED
* Placeholder type for consistent HDFS operations.
Used in:
Used in:
,* Query the reconfigurable properties on NN/DN.
Used as request type in: ClientDatanodeProtocolService.listReconfigurableProperties, ReconfigurationProtocolService.listReconfigurableProperties
(message has no fields)
Used as response type in: ClientDatanodeProtocolService.listReconfigurableProperties, ReconfigurationProtocolService.listReconfigurableProperties
* A LocatedBlock gives information about a block and its location.
Used in:
, , , , , ,offset of first byte of block in the file
Locations ordered by proximity to client ip
true if all replicas of a block are corrupt, else false
if a location in locs is cached
striped block related fields
used for striped block to indicate block index for each storage
each internal block has a block token
* A set of file blocks and their locations.
Used in:
,Optional field for erasure coding
Used in:
* state - State the NN is in when returning response to the DN txid - Highest transaction ID this NN has seen
Used in:
,* Command sent from one namenode to another namenode.
Used in:
Base command
Check point command
* Information sent by a namenode to identify itself to the primary namenode.
host:port of the namenode RPC address
host:port of the namenode http server
Node information
Namenode role
Used in:
* Namespace information that describes namespace on a namenode
Used in:
Software revision version (e.g. an svn or git revision)
Retained for backward compatibility
block pool used by the namespace
Node information
Software version number (e.g. 2.0.0)
feature flags
Used in:
each internal block has a block token
* In order to get short-circuit access to block data, clients must set this to the highest version of the block data that they can understand. Currently 1 is the only version, but more versions may exist in the future if the on-disk format changes.
* The shared memory slot to use, if we are using one.
* True if the client supports verifying that the file descriptor has been sent successfully.
* The requested checksum mechanism for this block write.
* Hint to the DataNode that the block can be allocated on transient storage i.e. memory and written to disk lazily. The DataNode is free to ignore this hint.
whether to pin the block, so Balancer won't move it.
Used in:
pipeline set up for failed PIPELINE_SETUP_APPEND recovery
data streaming
pipeline setup for failed data streaming recovery
close the block and pipeline
Recover a failed PIPELINE_CLOSE
pipeline set up for block creation
transfer RBW for adding datanodes
transfer Finalized for adding datanodes
Used in:
Used in:
,All fields must be fixed-length!
* Encryption information for an individual file within an encryption zone
Used in:
,* Summary of quota usage of a directory
Used in:
* Sent as part of the BlockOpResponseProto for READ_BLOCK and COPY_BLOCK operations.
Used in:
* The offset into the block at which the first packet will start. This is necessary since reads will align backwards to a checksum chunk boundary.
* Block that needs to be recovered with at a given location
Used in:
New genstamp post recovery
Block to be recovered
New block for recovery (truncate)
block indices of striped internal blocks for each storage in LocatedBlock
Used in:
* Re-encryption information for an encryption zone
Used in:
Used in:
* Enumeration of editlogs available on a remote namenode
* Editlog information with available transactions
Used in:
Starting available edit log transaction
Ending available edit log transaction
Used in:
* State of a block replica at a datanode
Used in:
State of a replica when it is not modified
State of replica that is being written to
State of replica that is waiting to be recovered
State of replica that is under recovery
State of replica that is created for replication
Used in:
Used in:
* Rolling upgrade status
Used in:
Used in:
* An ID uniquely identifying a shared memory segment.
Used in:
,The name of the client requesting the shared memory segment. This is purely for logging / debugging purposes.
* An ID uniquely identifying a slot within a shared memory segment.
Used in:
,Used in:
,* Snapshot diff report entry
Used in:
* Snapshot diff report listing entry
Used in:
* Snapshot diff report listing
Used in:
full path of the directory where snapshots were taken
* Snapshot diff report
Used in:
full path of the directory where snapshots were taken
* Information related to a snapshot TODO: add more information
TODO: do we need access time?
* Snapshottable directory listing
Used in:
* Status of a snapshottable directory: besides the normal information for a directory status, also include snapshot quota, number of snapshots, and the full path of the parent directory.
Used in:
Fields specific for snapshottable directory
* Asks NN/DN to reload configuration file.
Used as request type in: ClientDatanodeProtocolService.startReconfiguration, ReconfigurationProtocolService.startReconfiguration
(message has no fields)
Used as response type in: ClientDatanodeProtocolService.startReconfiguration, ReconfigurationProtocolService.startReconfiguration
(message has no fields)
Status is a 4-bit enum
Used in:
, , , , ,Quick restart
Reserved
Reserved
Reserved
* Common node information shared by all the nodes in the cluster
Used in:
, ,Layout version of the file system
File system namespace ID
ID of the cluster
File system creation time
Used in:
supersedes StorageUuid
* Types of recognized storage media.
Used in:
, , , , , , , , , ,Used in:
* Storage type quota and usage information of a file or directory
Used in:
,* A list of storage types.
Used in:
,* A list of storage IDs.
Used in:
* void request
(message has no fields)
* Version response from namenode.
Used in:
, , , , , ,Used in:
* Encryption information for an encryption zone
Used in: