All hadoop commands are invoked by the bin/hadoop script. Running the hadoop script without any arguments prints the description for all commands.

Usage: hadoop [--config confdir] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]

Hadoop has an option parsing framework that employs parsing generic options as well as running classes.

--config confdirOverwrites the default Configuration directory. Default is $HADOOP_HOME/conf.
GENERIC_OPTIONS COMMAND_OPTIONSThe common set of options supported by multiple commands. Various commands with their options are described in the following sections. The commands have been grouped into User Commands and Administration Commands.

Generic Options

The following options are supported by dfsadmin, fs, fsck, job and fetchdt. Applications should implement Tool to support GenericOptions.

-conf <configuration file> Specify an application configuration file.
-D <property>=<value> Use value for given property.
-jt <local> or <jobtracker:port> Specify a job tracker. Applies only to job.
-files <comma separated list of files> Specify comma separated files to be copied to the map reduce cluster. Applies only to job.
-libjars <comma seperated list of jars> Specify comma separated jar files to include in the classpath. Applies only to job.
-archives <comma separated list of archives> Specify comma separated archives to be unarchived on the compute machines. Applies only to job.

User Commands

Commands useful for users of a hadoop cluster.


Creates a hadoop archive. More information can be found at Hadoop Archives.

Usage: hadoop archive -archiveName NAME <src>* <dest>

-archiveName NAMEName of the archive to be created.
srcFilesystem pathnames which work as usual with regular expressions.
destDestination directory which would contain the archive.


Copy file or directories recursively. More information can be found at Hadoop DistCp Guide.

Usage: hadoop distcp <srcurl> <desturl>

srcurlSource Url
desturlDestination Url



Deprecated, use hdfs dfs instead.

Runs a generic filesystem user client.

The various COMMAND_OPTIONS can be found at File System Shell Guide.


Runs a HDFS filesystem checking utility. See Fsck for more info.

Usage: hadoop fsck [GENERIC_OPTIONS] <path> [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks]]]

pathStart checking from this path.
-moveMove corrupted files to /lost+found
-deleteDelete corrupted files.
-openforwritePrint out files opened for write.
-filesPrint out files being checked.
-blocksPrint out block report.
-locationsPrint out locations for every block.
-racksPrint out network topology for data-node locations.


Gets Delegation Token from a NameNode. See fetchdt for more info.

Usage: hadoop fetchdt [GENERIC_OPTIONS] [--webservice <namenode_http_addr>] <path>

fileNameFile name to store the token into.
--webservice https_addressuse http protocol instead of RPC


Runs a jar file. Users can bundle their Map Reduce code in a jar file and execute it using this command.

Usage: hadoop jar <jar> [mainClass] args...

The streaming jobs are run via this command. Examples can be referred from Streaming examples

Word count example is also run using jar command. It can be referred from Wordcount example


Command to interact with Map Reduce Jobs.

Usage: hadoop job [GENERIC_OPTIONS] [-submit <job-file>] | [-status <job-id>] | [-counter <job-id> <group-name> <counter-name>] | [-kill <job-id>] | [-events <job-id> <from-event-#> <#-of-events>] | [-history [all] <jobOutputDir>] | [-list [all]] | [-kill-task <task-id>] | [-fail-task <task-id>] | [-set-priority <job-id> <priority>]

-submit job-fileSubmits the job.
-status job-idPrints the map and reduce completion percentage and all job counters.
-counter job-id group-name counter-namePrints the counter value.
-kill job-idKills the job.
-events job-id from-event-# #-of-eventsPrints the events' details received by jobtracker for the given range.
-history [all]jobOutputDirPrints job details, failed and killed tip details. More details about the job such as successful tasks and task attempts made for each task can be viewed by specifying the [all] option.
-list [all]Displays jobs which are yet to complete. -list all displays all jobs.
-kill-task task-idKills the task. Killed tasks are NOT counted against failed attempts.
-fail-task task-idFails the task. Failed tasks are counted against failed attempts.
-set-priority job-id priorityChanges the priority of the job. Allowed priority values are VERY_HIGH, HIGH, NORMAL, LOW, VERY_LOW


Runs a pipes job.

Usage: hadoop pipes [-conf <path>] [-jobconf <key=value>, <key=value>, ...] [-input <path>] [-output <path>] [-jar <jar file>] [-inputformat <class>] [-map <class>] [-partitioner <class>] [-reduce <class>] [-writer <class>] [-program <executable>] [-reduces <num>]

-conf pathConfiguration for job
-jobconf key=value, key=value, ...Add/override configuration for job
-input pathInput directory
-output pathOutput directory
-jar jar fileJar filename
-inputformat classInputFormat class
-map classJava Map class
-partitioner classJava Partitioner
-reduce classJava Reduce class
-writer classJava RecordWriter
-program executableExecutable URI
-reduces numNumber of reduces


command to interact and view Job Queue information

Usage: hadoop queue [-list] | [-info <job-queue-name> [-showJobs]] | [-showacls]

-listGets list of Job Queues configured in the system. Along with scheduling information associated with the job queues.
-info job-queue-name [-showJobs]Displays the job queue information and associated scheduling information of particular job queue. If -showJobs options is present a list of jobs submitted to the particular job queue is displayed.
-showaclsDisplays the queue name and associated queue operations allowed for the current user. The list consists of only those queues to which the user has access.


Prints the version.

Usage: hadoop version


hadoop script can be used to invoke any class.

Usage: hadoop CLASSNAME

Runs the class named CLASSNAME.


Prints the class path needed to get the Hadoop jar and the required libraries.

Usage: hadoop classpath

Administration Commands

Commands useful for administrators of a hadoop cluster.


Runs a cluster balancing utility. An administrator can simply press Ctrl-C to stop the rebalancing process. See Rebalancer for more details.

Usage: hadoop balancer [-threshold <threshold>]

-threshold thresholdPercentage of disk capacity. This overwrites the default threshold.


Get/Set the log level for each daemon.

Usage: hadoop daemonlog -getlevel <host:port> <name> Usage: hadoop daemonlog -setlevel <host:port> <name> <level>

-getlevel host:port namePrints the log level of the daemon running at host:port. This command internally connects to http://host:port/logLevel?log=name
-setlevel host:port name levelSets the log level of the daemon running at host:port. This command internally connects to http://host:port/logLevel?log=name


Runs a HDFS datanode.

Usage: hadoop datanode [-rollback]

-rollbackRollsback the datanode to the previous version. This should be used after stopping the datanode and distributing the old hadoop version.


Runs a HDFS dfsadmin client.

Usage: hadoop dfsadmin [GENERIC_OPTIONS] [-report] [-safemode enter | leave | get | wait] [-refreshNodes] [-finalizeUpgrade] [-upgradeProgress status | details | force] [-metasave filename] [-setQuota <quota> <dirname>...<dirname>] [-clrQuota <dirname>...<dirname>] [-help [cmd]]

COMMAND_OPTION -reportDescription Reports basic filesystem information and statistics.
-safemode enter / leave / get / waitSafe mode maintenance command. Safe mode is a Namenode state in which it  
1. does not accept changes to the name space (read-only)  
2. does not replicate or delete blocks.  
Safe mode is entered automatically at Namenode startup, and leaves safe mode automatically when the configured minimum percentage of blocks satisfies the minimum replication condition. Safe mode can also be entered manually, but then it can only be turned off manually as well.
-refreshNodesRe-read the hosts and exclude files to update the set of Datanodes that are allowed to connect to the Namenode and those that should be decommissioned or recommissioned.
-finalizeUpgradeFinalize upgrade of HDFS. Datanodes delete their previous version working directories, followed by Namenode doing the same. This completes the upgrade process.
-upgradeProgress status / details / forceRequest current distributed upgrade status, a detailed status or force the upgrade to proceed.
-metasave filenameSave Namenode's primary data structures to filename in the directory specified by hadoop.log.dir property. filename will contain one line for each of the following 
1. Datanodes heart beating with Namenode 
2. Blocks waiting to be replicated 
3. Blocks currrently being replicated 
4. Blocks waiting to be deleted 
-setQuota quota dirname...dirnameSet the quota quota for each directory dirname. The directory quota is a long integer that puts a hard limit on the number of names in the directory tree. Best effort for the directory, with faults reported if  
1. N is not a positive integer, or  
2. user is not an administrator, or  
3. the directory does not exist or is a file, or  
4. the directory would immediately exceed the new quota.  
-clrQuota dirname...dirnameClear the quota for each directory dirname. Best effort for the directory. with fault reported if  
1. the directory does not exist or is a file, or  
2. user is not an administrator. It does not fault if the directory has no quota.
-help [cmd]Displays help for the given command or all commands if none is specified.


Runs MR admin client

Usage: hadoop mradmin [ GENERIC_OPTIONS ] [-refreshQueueAcls]

-refreshQueueAclsRefresh the queue acls used by hadoop, to check access during submissions and administration of the job by the user. The properties present in mapred-queue-acls.xml is reloaded by the queue manager.


Runs the MapReduce job Tracker node.

Usage: hadoop jobtracker [-dumpConfiguration]

-dumpConfigurationDumps the configuration used by the JobTracker alongwith queue configuration in JSON format into Standard output used by the jobtracker and exits.


Runs the namenode. More info about the upgrade, rollback and finalize is at Upgrade Rollback

Usage: hadoop namenode [-format] | [-upgrade] | [-rollback] | [-finalize] | [-importCheckpoint]

-formatFormats the namenode. It starts the namenode, formats it and then shut it down.
-upgradeNamenode should be started with upgrade option after the distribution of new hadoop version.
-rollbackRollsback the namenode to the previous version. This should be used after stopping the cluster and distributing the old hadoop version.
-finalizeFinalize will remove the previous state of the files system. Recent upgrade will become permanent. Rollback option will not be available anymore. After finalization it shuts the namenode down.
-importCheckpointLoads image from a checkpoint directory and save it into the current one. Checkpoint dir is read from property fs.checkpoint.dir


Runs the HDFS secondary namenode. See Secondary Namenode for more info.

Usage: hadoop secondarynamenode [-checkpoint [force]] | [-geteditsize]

-checkpoint [-force]Checkpoints the Secondary namenode if EditLog size >= fs.checkpoint.size. If -force is used, checkpoint irrespective of EditLog size.
-geteditsizePrints the EditLog size.


Runs a MapReduce task Tracker node.

Usage: hadoop tasktracker