#!/usr/bin/env bash
# Copyright 2014 The Apache Software Foundation
#
# 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.

##
## VENDORS!
##
## This is where you can redefine the layout of Hadoop directories
## and expect to be reasonably compatible.  Needless to say, this
## is expert level stuff and one needs to tread carefully.
##
## If you move HADOOP_LIBEXEC_DIR from some location that
## isn't bin/../libexec, you MUST define either HADOOP_LIBEXEC_DIR
## or have HADOOP_HOME/libexec/hadoop-config.sh and
## HADOOP_HOME/libexec/hadoop-layout.sh (this file) exist.

## NOTE:
##
## hadoop-functions.sh gets executed BEFORE this file.  So you can
##   redefine all of those functions here.
##
## *-env.sh get executed AFTER this file but generally too late to
## override the settings (but not the functions!) here.  However, this
## also means you cannot use things like HADOOP_CONF_DIR for these
## definitions.

####
# Common disk layout
####

# Default location for the common/core Hadoop project
export HADOOP_COMMON_HOME=${HADOOP_HOME}

# Relative locations where components under HADOOP_COMMON_HOME are located
export HADOOP_COMMON_DIR="share/hadoop/common"
export HADOOP_COMMON_LIB_JARS_DIR="share/hadoop/common/lib"
export HADOOP_COMMON_LIB_NATIVE_DIR="lib/native"

####
# HDFS disk layout
####

# Default location for the HDFS subproject
export HADOOP_HDFS_HOME=${HADOOP_HOME}

# Relative locations where components under HADOOP_HDFS_HOME are located
export HDFS_DIR="share/hadoop/hdfs"
export HDFS_LIB_JARS_DIR="share/hadoop/hdfs/lib"

####
# YARN disk layout
####

# Default location for the YARN subproject
export HADOOP_YARN_HOME=${HADOOP_HOME}

# Relative locations where components under HADOOP_YARN_HOME are located
export YARN_DIR="share/hadoop/yarn"
export YARN_LIB_JARS_DIR="share/hadoop/yarn/lib"

####
# MapReduce disk layout
####

# Default location for the MapReduce subproject
export HADOOP_MAPRED_HOME=${HADOOP_HOME}

# Relative locations where components under HADOOP_MAPRED_HOME are located
export MAPRED_DIR="share/hadoop/mapreduce"
export MAPRED_LIB_JARS_DIR="share/hadoop/mapreduce/lib"

####
# Misc paths
####

# This is where things like distcp, S3, and other things live
# note that this path only gets added for certain commands and not
# part of the general classpath unless HADOOP_OPTIONAL_TOOLS is used
# to configure them in
export HADOOP_TOOLS_HOME=${HADOOP_HOME}
export HADOOP_TOOLS_DIR=${HADOOP_TOOLS_DIR:-"share/hadoop/tools"}
export HADOOP_TOOLS_LIB_JARS_DIR=${HADOOP_TOOLS_LIB_JARS_DIR:-"${HADOOP_TOOLS_DIR}/lib"}
