blob: 593a834104fb47a5362b58241fde9c6119a4db88 [file] [log] [blame]
@echo off
:: Licensed to the Apache Software Foundation (ASF) under one or more
:: contributor license agreements. See the NOTICE file distributed with
:: this work for additional information regarding copyright ownership.
:: The ASF licenses this file to You under the Apache License, Version 2.0
:: (the "License"); you may not use this file except in compliance with
:: the License. You may obtain a copy of the License at
::
:: http://www.apache.org/licenses/LICENSE-2.0
::
:: Unless required by applicable law or agreed to in writing, software
:: distributed under the License is distributed on an "AS IS" BASIS,
:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
:: See the License for the specific language governing permissions and
:: limitations under the License.
:: The Pig command script
::
:: Environment Variables
::
:: JAVA_HOME The java implementation to use. Overrides JAVA_HOME.
::
:: PIG_CLASSPATH Extra Java CLASSPATH entries.
::
:: HADOOP_HOME Environment HADOOP_HOME
::
:: HADOOP_CONF_DIR Hadoop conf dir
::
:: PIG_HEAPSIZE The maximum amount of heap to use, in MB.
:: Default is 1000.
::
:: PIG_OPTS Extra Java runtime options.
::
:: PIG_CONF_DIR Alternate conf dir. Default is ${PIG_HOME}/conf.
::
:: HBASE_CONF_DIR - Optionally, the HBase configuration to run against
:: when using HBaseStorage
::
setlocal enabledelayedexpansion
set HADOOP_BIN_PATH=%HADOOP_HOME%\bin
set hadoop-config-script=%HADOOP_BIN_PATH%\hadoop-config.cmd
call %hadoop-config-script%
:main
set PIGARGS=
:ProcessCmdLine
if [%1]==[] goto :FinishArgs
if %1==--config (
set HADOOP_CONF_DIR=%2
shift
shift
if exist %HADOOP_CONF_DIR%\hadoop-env.cmd (
call %HADOOP_CONF_DIR%\hadoop-env.cmd
)
goto :ProcessCmdLine
)
REM Account for quotes around %1 if needed when checking for -useHCatalog
REM because the string may come in quoted from WebHCat.
if %1==-useHCatalog (
shift
set HCAT_FLAG="true"
goto :ProcessCmdLine
)
if %1==^"-useHCatalog^" (
shift
set HCAT_FLAG="true"
goto :ProcessCmdLine
)
set PIGARGS=%PIGARGS% %1
shift
goto :ProcessCmdLine
:FinishArgs
if not defined PIG_HOME (
if exist %HADOOP_HOME%\pig (
set PIG_HOME=%HADOOP_HOME%\pig
)
)
if not defined PIG_HOME (
set PIG_HOME=%~dp0\..\
)
if not defined PIG_HEAPSIZE (
set PIG_HEAPSIZE=1000
)
if defined PIG_HOME (
for %%i in (%PIG_HOME%\*.jar) do (
set CLASSPATH=!CLASSPATH!;%%i
)
for %%i in (%PIG_HOME%\lib\*.jar) do (
set CLASSPATH=!CLASSPATH!;%%i
)
for %%i in (%PIG_HOME%\lib\h2\*.jar) do (
set CLASSPATH=!CLASSPATH!;%%i
)
if not defined PIG_CONF_DIR (
set PIG_CONF_DIR=%PIG_HOME%\conf
)
)
set HCAT_DEPENDCIES=
set HCAT_CLASSPATH=
if not defined HCAT_FLAG (
goto HCAT_END
)
REM Try to set HCAT_HOME if not set. Use of HCATALOG_HOME is deprecated.
REM Future development should use HCAT_HOME for consistency with non-Windows
REM environments.
if not defined HCAT_HOME (
if defined HCATALOG_HOME (
set HCAT_HOME=%HCATALOG_HOME%
) else (
echo "Warning: HCAT_HOME not set"
)
)
if defined HCAT_HOME (
call :AddJar %HCAT_HOME%\share\hcatalog *hcatalog-*.jar
) else (
echo "HCAT_HOME should be defined"
exit /b 1
)
if defined HIVE_HOME (
call :AddJar %HIVE_HOME%\lib hive-metastore-*.jar
call :AddJar %HIVE_HOME%\lib libthrift-*.jar
call :AddJar %HIVE_HOME%\lib hive-exec-*.jar
call :AddJar %HIVE_HOME%\lib libfb303-*.jar
call :AddJar %HIVE_HOME%\lib jdo*-api-*.jar
call :AddJar %HIVE_HOME%\lib slf4j-api-*.jar
call :AddJar %HIVE_HOME%\lib hive-hbase-handler-*.jar
call :AddJar %HIVE_HOME%\lib httpclient-*.jar
REM Include datanucleus to support embedded metastore use case via setting
REM hive.metastore.uris to ''
call :AddJar %HIVE_HOME%\lib datanucleus-*.jar
REM Include sqljdbc4.jar to support SQL server or Windows Azure SQLDB as embedded metastore.
call :AddJar %HIVE_HOME%\lib sqljdbc4.jar
REM Include derby to support local metastore as embedded metastore.
call :AddJar %HIVE_HOME%\lib derby*.jar
) else (
echo "HIVE_HOME should be defined"
exit /b 1
)
set PIG_CLASSPATH=%PIG_CLASSPATH%;%HCAT_CLASSPATH%;%HIVE_HOME%\conf
set PIG_OPTS=%PIG_OPTS% -Dpig.additional.jars.uris=%HCAT_DEPENDCIES%,%PIG_ADDITIONAL_JARS_COMMA%
:HCAT_END
if defined PIG_CLASSPATH (
set CLASSPATH=!CLASSPATH!;%PIG_CLASSPATH%
)
if defined PIG_CONF_DIR (
set CLASSPATH=!CLASSPATH!;%PIG_CONF_DIR%
)
if defined HADOOP_CONF_DIR (
set CLASSPATH=!CLASSPATH!;%HADOOP_CONF_DIR%
)
if not defined PIG_LOGDIR (
set PIG_LOGDIR=%HADOOP_LOG_DIR%
)
if not defined PIG_LOGFILE (
set PIG_LOGFILE=%PIG_LOGDIR%
)
if defined PIG_HEAPSIZE (
set JAVA_HEAP_MAX= -Xmx%PIG_HEAPSIZE%M
)
set CLASSPATH=!CLASSPATH!;%JAVA_HOME%\lib\tools.jar
if defined HBASE_CONF_DIR (
set CLASSPATH=!CLASSPATH!;%HBASE_CONF_DIR%
)
set PIG_OPTS=%PIG_OPTS% -Dpig.log.dir=%PIG_LOGDIR%
set PIG_OPTS=%PIG_OPTS% -Dpig.logfile=%PIG_LOGFILE%
set PIG_OPTS=%PIG_OPTS% -Dpig.home.dir=%PIG_HOME%
set PIG_OPTS=%PIG_OPTS% -Dpig.root.logger=%HADOOP_ROOT_LOGGER%
set PIG_OPTS=%PIG_OPTS% -Dfile.encoding=UTF-8
set PIG_OPTS=%PIG_OPTS% %HADOOP_OPTS%
call %JAVA% %JAVA_HEAP_MAX% %PIG_OPTS% -classpath %CLASSPATH% org.apache.pig.Main %PIGARGS%
exit /b %ERRORLEVEL%
goto endlocal
:AddJar
pushd %1
for /f %%a IN ('dir /b %2') do (
set HCAT_CLASSPATH=!HCAT_CLASSPATH!;%1\%%a
set HCAT_DEPENDCIES=!HCAT_DEPENDCIES!,file:///%1\%%a
)
popd
:endlocal