@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