blob: 550b1ed5ad617754ef7e0c566f595069c556276d [file] [log] [blame]
@echo off
@rem Licensed to the Apache Software Foundation (ASF) under one or more
@rem contributor license agreements. See the NOTICE file distributed with
@rem this work for additional information regarding copyright ownership.
@rem The ASF licenses this file to You under the Apache License, Version 2.0
@rem (the "License"); you may not use this file except in compliance with
@rem the License. You may obtain a copy of the License at
@rem
@rem http://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem The Hadoop mapred command script
setlocal enabledelayedexpansion
if not defined HADOOP_BIN_PATH (
set HADOOP_BIN_PATH=%~dp0
)
if "%HADOOP_BIN_PATH:~`%" == "\" (
set HADOOP_BIN_PATH=%HADOOP_BIN_PATH:~0,-1%
)
set DEFAULT_LIBEXEC_DIR=%HADOOP_BIN_PATH%\..\libexec
if not defined HADOOP_LIBEXEC_DIR (
set HADOOP_LIBEXEC_DIR=%DEFAULT_LIBEXEC_DIR%
)
call %DEFAULT_LIBEXEC_DIR%\mapred-config.cmd %*
if "%1" == "--config" (
shift
shift
)
if "%1" == "--loglevel" (
shift
shift
)
:main
if exist %MAPRED_CONF_DIR%\mapred-env.cmd (
call %MAPRED_CONF_DIR%\mapred-env.cmd
)
set mapred-command=%1
call :make_command_arguments %*
if not defined mapred-command (
goto print_usage
)
@rem JAVA and JAVA_HEAP_MAX are set in hadoop-confg.cmd
if defined MAPRED_HEAPSIZE (
@rem echo run with Java heapsize %MAPRED_HEAPSIZE%
set JAVA_HEAP_SIZE=-Xmx%MAPRED_HEAPSIZE%m
)
@rem CLASSPATH initially contains HADOOP_CONF_DIR and MAPRED_CONF_DIR
if not defined HADOOP_CONF_DIR (
echo NO HADOOP_CONF_DIR set.
echo Please specify it either in mapred-env.cmd or in the environment.
goto :eof
)
set CLASSPATH=%HADOOP_CONF_DIR%;%MAPRED_CONF_DIR%;%CLASSPATH%
@rem for developers, add Hadoop classes to CLASSPATH
if exist %HADOOP_MAPRED_HOME%\build\classes (
set CLASSPATH=%CLASSPATH%;%HADOOP_MAPRED_HOME%\build\classes
)
if exist %HADOOP_MAPRED_HOME%\build\webapps (
set CLASSPATH=%CLASSPATH%;%HADOOP_MAPRED_HOME%\build
)
if exist %HADOOP_MAPRED_HOME%\build\test\classes (
set CLASSPATH=%CLASSPATH%;%HADOOP_MAPRED_HOME%\build\test\classes
)
if exist %HADOOP_MAPRED_HOME%\build\tools (
set CLASSPATH=%CLASSPATH%;%HADOOP_MAPRED_HOME%\build\tools
)
@rem Need YARN jars also
set CLASSPATH=%CLASSPATH%;%HADOOP_YARN_HOME%\%YARN_DIR%\*
@rem add libs to CLASSPATH
set CLASSPATH=%CLASSPATH%;%HADOOP_MAPRED_HOME%\%MAPRED_LIB_JARS_DIR%\*
@rem add modules to CLASSPATH
set CLASSPATH=%CLASSPATH%;%HADOOP_MAPRED_HOME%\modules\*
if %mapred-command% == classpath (
if not defined mapred-command-arguments (
@rem No need to bother starting up a JVM for this simple case.
@echo %CLASSPATH%
exit /b
)
)
call :%mapred-command% %mapred-command-arguments%
set java_arguments=%JAVA_HEAP_MAX% %HADOOP_OPTS% -classpath %CLASSPATH% %CLASS% %mapred-command-arguments%
call %JAVA% %java_arguments%
goto :eof
:classpath
set CLASS=org.apache.hadoop.util.Classpath
goto :eof
:job
set CLASS=org.apache.hadoop.mapred.JobClient
set HADOOP_OPTS=%HADOOP_OPTS% %HADOOP_CLIENT_OPTS%
goto :eof
:queue
set CLASS=org.apache.hadoop.mapred.JobQueueClient
set HADOOP_OPTS=%HADOOP_OPTS% %HADOOP_CLIENT_OPTS%
goto :eof
:sampler
set CLASS=org.apache.hadoop.mapred.lib.InputSampler
set HADOOP_OPTS=%HADOOP_OPTS% %HADOOP_CLIENT_OPTS%
goto :eof
:historyserver
set CLASS=org.apache.hadoop.mapreduce.v2.hs.JobHistoryServer
set HADOOP_OPTS=%HADOOP_OPTS% -Dmapred.jobsummary.logger=%HADOOP_JHS_LOGGER% %HADOOP_JOB_HISTORYSERVER_OPTS%
if defined HADOOP_JOB_HISTORYSERVER_HEAPSIZE (
set JAVA_HEAP_MAX=-Xmx%HADOOP_JOB_HISTORYSERVER_HEAPSIZE%m
)
goto :eof
:distcp
set CLASS=org.apache.hadoop.tools.DistCp
set CLASSPATH=%CLASSPATH%;%TOO_PATH%
set HADOOP_OPTS=%HADOOP_OPTS% %HADOOP_CLIENT_OPTS%
goto :eof
:archive
set CLASS=org.apache.hadop.tools.HadoopArchives
set CLASSPATH=%CLASSPATH%;%TOO_PATH%
set HADOOP_OPTS=%HADOOP_OPTS% %HADOOP_CLIENT_OPTS%
:hsadmin
set CLASS=org.apache.hadoop.mapreduce.v2.hs.client.HSAdmin
set HADOOP_OPTS=%HADOOP_OPTS% %HADOOP_CLIENT_OPTS%
:pipes
goto not_supported
:mradmin
goto not_supported
:jobtracker
goto not_supported
:tasktracker
goto not_supported
:groups
goto not_supported
@rem This changes %1, %2 etc. Hence those cannot be used after calling this.
:make_command_arguments
if [%2] == [] goto :eof
if "%1" == "--config" (
shift
shift
)
if "%1" == "--loglevel" (
shift
shift
)
shift
set _mapredarguments=
:MakeCmdArgsLoop
if [%1]==[] goto :EndLoop
if not defined _mapredarguments (
set _mapredarguments=%1
) else (
set _mapredarguments=!_mapredarguments! %1
)
shift
goto :MakeCmdArgsLoop
:EndLoop
set mapred-command-arguments=%_mapredarguments%
goto :eof
:not_supported
@echo Sorry, the %COMMAND% command is no longer supported.
@echo You may find similar functionality with the "yarn" shell command.
goto print_usage
:print_usage
@echo Usage: mapred [--config confdir] [--loglevel loglevel] COMMAND
@echo where COMMAND is one of:
@echo job manipulate MapReduce jobs
@echo queue get information regarding JobQueues
@echo classpath prints the class path needed for running
@echo mapreduce subcommands
@echo historyserver run job history servers as a standalone daemon
@echo distcp ^<srcurl^> ^<desturl^> copy file or directories recursively
@echo archive -archiveName NAME -p ^<parent path^> ^<src^>* ^<dest^> create a hadoop archive
@echo hsadmin job history server admin interface
@echo
@echo Most commands print help when invoked w/o parameters.
endlocal