|
@@ -18,12 +18,8 @@
|
|
bin=`dirname "$0"`
|
|
bin=`dirname "$0"`
|
|
bin=`cd "$bin"; pwd`
|
|
bin=`cd "$bin"; pwd`
|
|
|
|
|
|
-if [ "$HADOOP_HOME" != "" ]; then
|
|
|
|
- echo "Warning: \$HADOOP_HOME is deprecated."
|
|
|
|
- echo
|
|
|
|
-fi
|
|
|
|
-
|
|
|
|
-. "$bin"/../libexec/hadoop-config.sh
|
|
|
|
|
|
+this="${BASH_SOURCE-$0}"
|
|
|
|
+export HADOOP_PREFIX=`dirname "$this"`/..
|
|
|
|
|
|
usage() {
|
|
usage() {
|
|
echo "
|
|
echo "
|
|
@@ -34,20 +30,48 @@ usage: $0 <parameters>
|
|
--default Setup configuration as default
|
|
--default Setup configuration as default
|
|
--conf-dir=/etc/hadoop Set configuration directory
|
|
--conf-dir=/etc/hadoop Set configuration directory
|
|
--datanode-dir=/var/lib/hadoop/hdfs/datanode Set datanode directory
|
|
--datanode-dir=/var/lib/hadoop/hdfs/datanode Set datanode directory
|
|
|
|
+ --group=hadoop Set Hadoop group name
|
|
-h Display this message
|
|
-h Display this message
|
|
- --jobtracker-url=hostname:9001 Set jobtracker url
|
|
|
|
|
|
+ --hdfs-user=hdfs Set HDFS user
|
|
|
|
+ --jobtracker-host=hostname Set jobtracker host
|
|
|
|
+ --namenode-host=hostname Set namenode host
|
|
|
|
+ --secondarynamenode-host=hostname Set secondary namenode host
|
|
|
|
+ --kerberos-realm=KERBEROS.EXAMPLE.COM Set Kerberos realm
|
|
|
|
+ --kinit-location=/usr/kerberos/bin/kinit Set kinit location
|
|
|
|
+ --keytab-dir=/etc/security/keytabs Set keytab directory
|
|
--log-dir=/var/log/hadoop Set log directory
|
|
--log-dir=/var/log/hadoop Set log directory
|
|
--pid-dir=/var/run/hadoop Set pid directory
|
|
--pid-dir=/var/run/hadoop Set pid directory
|
|
- --hdfs-dir=/var/lib/hadoop/hdfs Set hdfs directory
|
|
|
|
|
|
+ --hdfs-dir=/var/lib/hadoop/hdfs Set HDFS directory
|
|
|
|
+ --hdfs-user-keytab=/home/hdfs/hdfs.keytab Set HDFS user key tab
|
|
--mapred-dir=/var/lib/hadoop/mapred Set mapreduce directory
|
|
--mapred-dir=/var/lib/hadoop/mapred Set mapreduce directory
|
|
|
|
+ --mapreduce-user=mr Set mapreduce user
|
|
|
|
+ --mapreduce-user-keytab=/home/mr/hdfs.keytab Set mapreduce user key tab
|
|
--namenode-dir=/var/lib/hadoop/hdfs/namenode Set namenode directory
|
|
--namenode-dir=/var/lib/hadoop/hdfs/namenode Set namenode directory
|
|
- --namenode-url=hdfs://hostname:9000/ Set namenode url
|
|
|
|
--replication=3 Set replication factor
|
|
--replication=3 Set replication factor
|
|
--taskscheduler=org.apache.hadoop.mapred.JobQueueTaskScheduler Set task scheduler
|
|
--taskscheduler=org.apache.hadoop.mapred.JobQueueTaskScheduler Set task scheduler
|
|
|
|
+ --datanodes=hostname1,hostname2,... SET the datanodes
|
|
|
|
+ --tasktrackers=hostname1,hostname2,... SET the tasktrackers
|
|
"
|
|
"
|
|
exit 1
|
|
exit 1
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+check_permission() {
|
|
|
|
+ TARGET=$1
|
|
|
|
+ OWNER="0"
|
|
|
|
+ RESULT=0
|
|
|
|
+ while [ "$TARGET" != "/" ]; do
|
|
|
|
+ PARENT=`dirname $TARGET`
|
|
|
|
+ NAME=`basename $TARGET`
|
|
|
|
+ OWNER=`ls -ln $PARENT | grep $NAME| awk '{print $3}'`
|
|
|
|
+ if [ "$OWNER" != "0" ]; then
|
|
|
|
+ RESULT=1
|
|
|
|
+ break
|
|
|
|
+ fi
|
|
|
|
+ TARGET=`dirname $TARGET`
|
|
|
|
+ done
|
|
|
|
+ return $RESULT
|
|
|
|
+}
|
|
|
|
+
|
|
template_generator() {
|
|
template_generator() {
|
|
REGEX='(\$\{[a-zA-Z_][a-zA-Z_0-9]*\})'
|
|
REGEX='(\$\{[a-zA-Z_][a-zA-Z_0-9]*\})'
|
|
cat $1 |
|
|
cat $1 |
|
|
@@ -65,18 +89,30 @@ OPTS=$(getopt \
|
|
-n $0 \
|
|
-n $0 \
|
|
-o '' \
|
|
-o '' \
|
|
-l 'auto' \
|
|
-l 'auto' \
|
|
|
|
+ -l 'java-home:' \
|
|
-l 'conf-dir:' \
|
|
-l 'conf-dir:' \
|
|
-l 'default' \
|
|
-l 'default' \
|
|
|
|
+ -l 'group:' \
|
|
-l 'hdfs-dir:' \
|
|
-l 'hdfs-dir:' \
|
|
-l 'namenode-dir:' \
|
|
-l 'namenode-dir:' \
|
|
-l 'datanode-dir:' \
|
|
-l 'datanode-dir:' \
|
|
-l 'mapred-dir:' \
|
|
-l 'mapred-dir:' \
|
|
- -l 'namenode-url:' \
|
|
|
|
- -l 'jobtracker-url:' \
|
|
|
|
|
|
+ -l 'namenode-host:' \
|
|
|
|
+ -l 'secondarynamenode-host:' \
|
|
|
|
+ -l 'jobtracker-host:' \
|
|
-l 'log-dir:' \
|
|
-l 'log-dir:' \
|
|
-l 'pid-dir:' \
|
|
-l 'pid-dir:' \
|
|
-l 'replication:' \
|
|
-l 'replication:' \
|
|
-l 'taskscheduler:' \
|
|
-l 'taskscheduler:' \
|
|
|
|
+ -l 'hdfs-user:' \
|
|
|
|
+ -l 'hdfs-user-keytab:' \
|
|
|
|
+ -l 'mapreduce-user:' \
|
|
|
|
+ -l 'mapreduce-user-keytab:' \
|
|
|
|
+ -l 'keytab-dir:' \
|
|
|
|
+ -l 'kerberos-realm:' \
|
|
|
|
+ -l 'kinit-location:' \
|
|
|
|
+ -l 'datanodes:' \
|
|
|
|
+ -l 'tasktrackers:' \
|
|
-o 'h' \
|
|
-o 'h' \
|
|
-- "$@")
|
|
-- "$@")
|
|
|
|
|
|
@@ -95,6 +131,10 @@ while true ; do
|
|
AUTOMATED=1
|
|
AUTOMATED=1
|
|
shift
|
|
shift
|
|
;;
|
|
;;
|
|
|
|
+ --java-home)
|
|
|
|
+ JAVA_HOME=$2; shift 2
|
|
|
|
+ AUTOMATED=1
|
|
|
|
+ ;;
|
|
--conf-dir)
|
|
--conf-dir)
|
|
HADOOP_CONF_DIR=$2; shift 2
|
|
HADOOP_CONF_DIR=$2; shift 2
|
|
AUTOMATED=1
|
|
AUTOMATED=1
|
|
@@ -102,6 +142,10 @@ while true ; do
|
|
--default)
|
|
--default)
|
|
AUTOMATED=1; shift
|
|
AUTOMATED=1; shift
|
|
;;
|
|
;;
|
|
|
|
+ --group)
|
|
|
|
+ HADOOP_GROUP=$2; shift 2
|
|
|
|
+ AUTOMATED=1
|
|
|
|
+ ;;
|
|
-h)
|
|
-h)
|
|
usage
|
|
usage
|
|
;;
|
|
;;
|
|
@@ -121,11 +165,15 @@ while true ; do
|
|
HADOOP_MAPRED_DIR=$2; shift 2
|
|
HADOOP_MAPRED_DIR=$2; shift 2
|
|
AUTOMATED=1
|
|
AUTOMATED=1
|
|
;;
|
|
;;
|
|
- --namenode-url)
|
|
|
|
|
|
+ --namenode-host)
|
|
HADOOP_NN_HOST=$2; shift 2
|
|
HADOOP_NN_HOST=$2; shift 2
|
|
AUTOMATED=1
|
|
AUTOMATED=1
|
|
;;
|
|
;;
|
|
- --jobtracker-url)
|
|
|
|
|
|
+ --secondarynamenode-host)
|
|
|
|
+ HADOOP_SNN_HOST=$2; shift 2
|
|
|
|
+ AUTOMATED=1
|
|
|
|
+ ;;
|
|
|
|
+ --jobtracker-host)
|
|
HADOOP_JT_HOST=$2; shift 2
|
|
HADOOP_JT_HOST=$2; shift 2
|
|
AUTOMATED=1
|
|
AUTOMATED=1
|
|
;;
|
|
;;
|
|
@@ -145,6 +193,45 @@ while true ; do
|
|
HADOOP_TASK_SCHEDULER=$2; shift 2
|
|
HADOOP_TASK_SCHEDULER=$2; shift 2
|
|
AUTOMATED=1
|
|
AUTOMATED=1
|
|
;;
|
|
;;
|
|
|
|
+ --hdfs-user)
|
|
|
|
+ HADOOP_HDFS_USER=$2; shift 2
|
|
|
|
+ AUTOMATED=1
|
|
|
|
+ ;;
|
|
|
|
+ --mapreduce-user)
|
|
|
|
+ HADOOP_MR_USER=$2; shift 2
|
|
|
|
+ AUTOMATED=1
|
|
|
|
+ ;;
|
|
|
|
+ --keytab-dir)
|
|
|
|
+ KEYTAB_DIR=$2; shift 2
|
|
|
|
+ AUTOMATED=1
|
|
|
|
+ ;;
|
|
|
|
+ --hdfs-user-keytab)
|
|
|
|
+ HDFS_KEYTAB=$2; shift 2
|
|
|
|
+ AUTOMATED=1
|
|
|
|
+ ;;
|
|
|
|
+ --mapreduce-user-keytab)
|
|
|
|
+ MR_KEYTAB=$2; shift 2
|
|
|
|
+ AUTOMATED=1
|
|
|
|
+ ;;
|
|
|
|
+ --kerberos-realm)
|
|
|
|
+ KERBEROS_REALM=$2; shift 2
|
|
|
|
+ SECURITY_TYPE="kerberos"
|
|
|
|
+ AUTOMATED=1
|
|
|
|
+ ;;
|
|
|
|
+ --kinit-location)
|
|
|
|
+ KINIT=$2; shift 2
|
|
|
|
+ AUTOMATED=1
|
|
|
|
+ ;;
|
|
|
|
+ --datanodes)
|
|
|
|
+ DATANODES=$2; shift 2
|
|
|
|
+ AUTOMATED=1
|
|
|
|
+ DATANODES=$(echo $DATANODES | tr ',' ' ')
|
|
|
|
+ ;;
|
|
|
|
+ --tasktrackers)
|
|
|
|
+ TASKTRACKERS=$2; shift 2
|
|
|
|
+ AUTOMATED=1
|
|
|
|
+ TASKTRACKERS=$(echo $TASKTRACKERS | tr ',' ' ')
|
|
|
|
+ ;;
|
|
--)
|
|
--)
|
|
shift ; break
|
|
shift ; break
|
|
;;
|
|
;;
|
|
@@ -158,10 +245,11 @@ done
|
|
|
|
|
|
AUTOSETUP=${AUTOSETUP:-1}
|
|
AUTOSETUP=${AUTOSETUP:-1}
|
|
JAVA_HOME=${JAVA_HOME:-/usr/java/default}
|
|
JAVA_HOME=${JAVA_HOME:-/usr/java/default}
|
|
-HADOOP_NN_HOST=${HADOOP_NN_HOST:-hdfs://`hostname`:9000/}
|
|
|
|
|
|
+HADOOP_GROUP=${HADOOP_GROUP:-hadoop}
|
|
|
|
+HADOOP_NN_HOST=${HADOOP_NN_HOST:-`hostname`}
|
|
HADOOP_NN_DIR=${HADOOP_NN_DIR:-/var/lib/hadoop/hdfs/namenode}
|
|
HADOOP_NN_DIR=${HADOOP_NN_DIR:-/var/lib/hadoop/hdfs/namenode}
|
|
HADOOP_DN_DIR=${HADOOP_DN_DIR:-/var/lib/hadoop/hdfs/datanode}
|
|
HADOOP_DN_DIR=${HADOOP_DN_DIR:-/var/lib/hadoop/hdfs/datanode}
|
|
-HADOOP_JT_HOST=${HADOOP_JT_HOST:-`hostname`:9001}
|
|
|
|
|
|
+HADOOP_JT_HOST=${HADOOP_JT_HOST:-`hostname`}
|
|
HADOOP_HDFS_DIR=${HADOOP_HDFS_DIR:-/var/lib/hadoop/hdfs}
|
|
HADOOP_HDFS_DIR=${HADOOP_HDFS_DIR:-/var/lib/hadoop/hdfs}
|
|
HADOOP_MAPRED_DIR=${HADOOP_MAPRED_DIR:-/var/lib/hadoop/mapred}
|
|
HADOOP_MAPRED_DIR=${HADOOP_MAPRED_DIR:-/var/lib/hadoop/mapred}
|
|
HADOOP_LOG_DIR=${HADOOP_LOG_DIR:-/var/log/hadoop}
|
|
HADOOP_LOG_DIR=${HADOOP_LOG_DIR:-/var/log/hadoop}
|
|
@@ -169,6 +257,25 @@ HADOOP_PID_DIR=${HADOOP_PID_DIR:-/var/log/hadoop}
|
|
HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/etc/hadoop}
|
|
HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/etc/hadoop}
|
|
HADOOP_REPLICATION=${HADOOP_RELICATION:-3}
|
|
HADOOP_REPLICATION=${HADOOP_RELICATION:-3}
|
|
HADOOP_TASK_SCHEDULER=${HADOOP_TASK_SCHEDULER:-org.apache.hadoop.mapred.JobQueueTaskScheduler}
|
|
HADOOP_TASK_SCHEDULER=${HADOOP_TASK_SCHEDULER:-org.apache.hadoop.mapred.JobQueueTaskScheduler}
|
|
|
|
+HADOOP_HDFS_USER=${HADOOP_HDFS_USER:-hdfs}
|
|
|
|
+HADOOP_MR_USER=${HADOOP_MR_USER:-mr}
|
|
|
|
+KEYTAB_DIR=${KEYTAB_DIR:-/etc/security/keytabs}
|
|
|
|
+HDFS_KEYTAB=${HDFS_KEYTAB:-/home/hdfs/hdfs.keytab}
|
|
|
|
+MR_KEYTAB=${MR_KEYTAB:-/home/mr/mr.keytab}
|
|
|
|
+KERBEROS_REALM=${KERBEROS_REALM:-KERBEROS.EXAMPLE.COM}
|
|
|
|
+SECURITY_TYPE=${SECURITY_TYPE:-simple}
|
|
|
|
+KINIT=${KINIT:-/usr/kerberos/bin/kinit}
|
|
|
|
+if [ "${SECURITY_TYPE}" = "kerberos" ]; then
|
|
|
|
+ TASK_CONTROLLER="org.apache.hadoop.mapred.LinuxTaskController"
|
|
|
|
+ HADOOP_DN_ADDR="0.0.0.0:1019"
|
|
|
|
+ HADOOP_DN_HTTP_ADDR="0.0.0.0:1022"
|
|
|
|
+ SECURITY="true"
|
|
|
|
+else
|
|
|
|
+ TASK_CONTROLLER="org.apache.hadoop.mapred.DefaultTaskController"
|
|
|
|
+ HADDOP_DN_ADDR="0.0.0.0:50010"
|
|
|
|
+ HADOOP_DN_HTTP_ADDR="0.0.0.0:50075"
|
|
|
|
+ SECURITY="false"
|
|
|
|
+fi
|
|
|
|
|
|
if [ "${AUTOMATED}" != "1" ]; then
|
|
if [ "${AUTOMATED}" != "1" ]; then
|
|
echo "Setup Hadoop Configuration"
|
|
echo "Setup Hadoop Configuration"
|
|
@@ -179,13 +286,13 @@ if [ "${AUTOMATED}" != "1" ]; then
|
|
read USER_HADOOP_LOG_DIR
|
|
read USER_HADOOP_LOG_DIR
|
|
echo -n "Where would you like to put pid directory? (${HADOOP_PID_DIR}) "
|
|
echo -n "Where would you like to put pid directory? (${HADOOP_PID_DIR}) "
|
|
read USER_HADOOP_PID_DIR
|
|
read USER_HADOOP_PID_DIR
|
|
- echo -n "What is the url of the namenode? (${HADOOP_NN_HOST}) "
|
|
|
|
|
|
+ echo -n "What is the host of the namenode? (${HADOOP_NN_HOST}) "
|
|
read USER_HADOOP_NN_HOST
|
|
read USER_HADOOP_NN_HOST
|
|
echo -n "Where would you like to put namenode data directory? (${HADOOP_NN_DIR}) "
|
|
echo -n "Where would you like to put namenode data directory? (${HADOOP_NN_DIR}) "
|
|
read USER_HADOOP_NN_DIR
|
|
read USER_HADOOP_NN_DIR
|
|
echo -n "Where would you like to put datanode data directory? (${HADOOP_DN_DIR}) "
|
|
echo -n "Where would you like to put datanode data directory? (${HADOOP_DN_DIR}) "
|
|
read USER_HADOOP_DN_DIR
|
|
read USER_HADOOP_DN_DIR
|
|
- echo -n "What is the url of the jobtracker? (${HADOOP_JT_HOST}) "
|
|
|
|
|
|
+ echo -n "What is the host of the jobtracker? (${HADOOP_JT_HOST}) "
|
|
read USER_HADOOP_JT_HOST
|
|
read USER_HADOOP_JT_HOST
|
|
echo -n "Where would you like to put jobtracker/tasktracker data directory? (${HADOOP_MAPRED_DIR}) "
|
|
echo -n "Where would you like to put jobtracker/tasktracker data directory? (${HADOOP_MAPRED_DIR}) "
|
|
read USER_HADOOP_MAPRED_DIR
|
|
read USER_HADOOP_MAPRED_DIR
|
|
@@ -211,10 +318,10 @@ if [ "${AUTOMATED}" != "1" ]; then
|
|
echo "Config directory : ${HADOOP_CONF_DIR}"
|
|
echo "Config directory : ${HADOOP_CONF_DIR}"
|
|
echo "Log directory : ${HADOOP_LOG_DIR}"
|
|
echo "Log directory : ${HADOOP_LOG_DIR}"
|
|
echo "PID directory : ${HADOOP_PID_DIR}"
|
|
echo "PID directory : ${HADOOP_PID_DIR}"
|
|
- echo "Namenode url : ${HADOOP_NN_HOST}"
|
|
|
|
|
|
+ echo "Namenode host : ${HADOOP_NN_HOST}"
|
|
echo "Namenode directory : ${HADOOP_NN_DIR}"
|
|
echo "Namenode directory : ${HADOOP_NN_DIR}"
|
|
echo "Datanode directory : ${HADOOP_DN_DIR}"
|
|
echo "Datanode directory : ${HADOOP_DN_DIR}"
|
|
- echo "Jobtracker url : ${HADOOP_JT_HOST}"
|
|
|
|
|
|
+ echo "Jobtracker host : ${HADOOP_JT_HOST}"
|
|
echo "Mapreduce directory : ${HADOOP_MAPRED_DIR}"
|
|
echo "Mapreduce directory : ${HADOOP_MAPRED_DIR}"
|
|
echo "Task scheduler : ${HADOOP_TASK_SCHEDULER}"
|
|
echo "Task scheduler : ${HADOOP_TASK_SCHEDULER}"
|
|
echo "JAVA_HOME directory : ${JAVA_HOME}"
|
|
echo "JAVA_HOME directory : ${JAVA_HOME}"
|
|
@@ -228,52 +335,179 @@ if [ "${AUTOMATED}" != "1" ]; then
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
|
|
-rm -f core-site.xml >/dev/null
|
|
|
|
-rm -f hdfs-site.xml >/dev/null
|
|
|
|
-rm -f mapred-site.xml >/dev/null
|
|
|
|
-rm -f hadoop-env.sh >/dev/null
|
|
|
|
-
|
|
|
|
-template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/core-site.xml core-site.xml
|
|
|
|
-template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/hdfs-site.xml hdfs-site.xml
|
|
|
|
-template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/mapred-site.xml mapred-site.xml
|
|
|
|
-template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/hadoop-env.sh hadoop-env.sh
|
|
|
|
-
|
|
|
|
-chown root:hadoop hadoop-env.sh
|
|
|
|
-chmod 755 hadoop-env.sh
|
|
|
|
-
|
|
|
|
if [ "${AUTOSETUP}" == "1" -o "${AUTOSETUP}" == "y" ]; then
|
|
if [ "${AUTOSETUP}" == "1" -o "${AUTOSETUP}" == "y" ]; then
|
|
- mkdir -p ${HADOOP_HDFS_DIR}
|
|
|
|
- mkdir -p ${HADOOP_NN_DIR}
|
|
|
|
- mkdir -p ${HADOOP_DN_DIR}
|
|
|
|
- mkdir -p ${HADOOP_MAPRED_DIR}
|
|
|
|
|
|
+ if [ -d ${KEYTAB_DIR} ]; then
|
|
|
|
+ chmod 700 ${KEYTAB_DIR}/*
|
|
|
|
+ chown ${HADOOP_MR_USER}:${HADOOP_GROUP} ${KEYTAB_DIR}/[jt]t.service.keytab
|
|
|
|
+ chown ${HADOOP_HDFS_USER}:${HADOOP_GROUP} ${KEYTAB_DIR}/[dns]n.service.keytab
|
|
|
|
+ fi
|
|
|
|
+ chmod 755 -R ${HADOOP_PREFIX}/sbin/*hadoop*
|
|
|
|
+ chmod 755 -R ${HADOOP_PREFIX}/bin/hadoop
|
|
|
|
+ chmod 755 -R ${HADOOP_PREFIX}/libexec/hadoop-config.sh
|
|
|
|
+ mkdir -p /home/${HADOOP_MR_USER}
|
|
|
|
+ chown ${HADOOP_MR_USER}:${HADOOP_GROUP} /home/${HADOOP_MR_USER}
|
|
|
|
+ HDFS_DIR=`echo ${HADOOP_HDFS_DIR} | sed -e 's/,/ /g'`
|
|
|
|
+ mkdir -p ${HDFS_DIR}
|
|
|
|
+ if [ -e ${HADOOP_NN_DIR} ]; then
|
|
|
|
+ rm -rf ${HADOOP_NN_DIR}
|
|
|
|
+ fi
|
|
|
|
+ DATANODE_DIR=`echo ${HADOOP_DN_DIR} | sed -e 's/,/ /g'`
|
|
|
|
+ mkdir -p ${DATANODE_DIR}
|
|
|
|
+ MAPRED_DIR=`echo ${HADOOP_MAPRED_DIR} | sed -e 's/,/ /g'`
|
|
|
|
+ mkdir -p ${MAPRED_DIR}
|
|
mkdir -p ${HADOOP_CONF_DIR}
|
|
mkdir -p ${HADOOP_CONF_DIR}
|
|
|
|
+ check_permission ${HADOOP_CONF_DIR}
|
|
|
|
+ if [ $? == 1 ]; then
|
|
|
|
+ echo "Full path to ${HADOOP_CONF_DIR} should be owned by root."
|
|
|
|
+ exit 1
|
|
|
|
+ fi
|
|
|
|
+
|
|
mkdir -p ${HADOOP_LOG_DIR}
|
|
mkdir -p ${HADOOP_LOG_DIR}
|
|
- mkdir -p ${HADOOP_LOG_DIR}/hdfs
|
|
|
|
- mkdir -p ${HADOOP_LOG_DIR}/mapred
|
|
|
|
|
|
+ #create the log sub dir for diff users
|
|
|
|
+ mkdir -p ${HADOOP_LOG_DIR}/${HADOOP_HDFS_USER}
|
|
|
|
+ mkdir -p ${HADOOP_LOG_DIR}/${HADOOP_MR_USER}
|
|
|
|
+
|
|
mkdir -p ${HADOOP_PID_DIR}
|
|
mkdir -p ${HADOOP_PID_DIR}
|
|
- chown hdfs:hadoop ${HADOOP_HDFS_DIR}
|
|
|
|
- chown hdfs:hadoop ${HADOOP_NN_DIR}
|
|
|
|
- chown hdfs:hadoop ${HADOOP_DN_DIR}
|
|
|
|
- chown mapred:hadoop ${HADOOP_MAPRED_DIR}
|
|
|
|
- chown root:hadoop ${HADOOP_LOG_DIR}
|
|
|
|
|
|
+ chown ${HADOOP_HDFS_USER}:${HADOOP_GROUP} ${HDFS_DIR}
|
|
|
|
+ chown ${HADOOP_HDFS_USER}:${HADOOP_GROUP} ${DATANODE_DIR}
|
|
|
|
+ chmod 700 -R ${DATANODE_DIR}
|
|
|
|
+ chown ${HADOOP_MR_USER}:${HADOOP_GROUP} ${MAPRED_DIR}
|
|
|
|
+ chown ${HADOOP_HDFS_USER}:${HADOOP_GROUP} ${HADOOP_LOG_DIR}
|
|
chmod 775 ${HADOOP_LOG_DIR}
|
|
chmod 775 ${HADOOP_LOG_DIR}
|
|
chmod 775 ${HADOOP_PID_DIR}
|
|
chmod 775 ${HADOOP_PID_DIR}
|
|
- chown hdfs:hadoop ${HADOOP_LOG_DIR}/hdfs
|
|
|
|
- chown mapred:hadoop ${HADOOP_LOG_DIR}/mapred
|
|
|
|
- cp -f *.xml ${HADOOP_CONF_DIR}
|
|
|
|
- cp -f hadoop-env.sh ${HADOOP_CONF_DIR}
|
|
|
|
|
|
+ chown root:${HADOOP_GROUP} ${HADOOP_PID_DIR}
|
|
|
|
+
|
|
|
|
+ #change the permission and the owner
|
|
|
|
+ chmod 755 ${HADOOP_LOG_DIR}/${HADOOP_HDFS_USER}
|
|
|
|
+ chown ${HADOOP_HDFS_USER}:${HADOOP_GROUP} ${HADOOP_LOG_DIR}/${HADOOP_HDFS_USER}
|
|
|
|
+ chmod 755 ${HADOOP_LOG_DIR}/${HADOOP_MR_USER}
|
|
|
|
+ chown ${HADOOP_MR_USER}:${HADOOP_GROUP} ${HADOOP_LOG_DIR}/${HADOOP_MR_USER}
|
|
|
|
+
|
|
|
|
+ if [ -e ${HADOOP_CONF_DIR}/core-site.xml ]; then
|
|
|
|
+ mv -f ${HADOOP_CONF_DIR}/core-site.xml ${HADOOP_CONF_DIR}/core-site.xml.bak
|
|
|
|
+ fi
|
|
|
|
+ if [ -e ${HADOOP_CONF_DIR}/hdfs-site.xml ]; then
|
|
|
|
+ mv -f ${HADOOP_CONF_DIR}/hdfs-site.xml ${HADOOP_CONF_DIR}/hdfs-site.xml.bak
|
|
|
|
+ fi
|
|
|
|
+ if [ -e ${HADOOP_CONF_DIR}/mapred-site.xml ]; then
|
|
|
|
+ mv -f ${HADOOP_CONF_DIR}/mapred-site.xml ${HADOOP_CONF_DIR}/mapred-site.xml.bak
|
|
|
|
+ fi
|
|
|
|
+ if [ -e ${HADOOP_CONF_DIR}/hadoop-env.sh ]; then
|
|
|
|
+ mv -f ${HADOOP_CONF_DIR}/hadoop-env.sh ${HADOOP_CONF_DIR}/hadoop-env.sh.bak
|
|
|
|
+ fi
|
|
|
|
+ if [ -e ${HADOOP_CONF_DIR}/hadoop-policy.xml ]; then
|
|
|
|
+ mv -f ${HADOOP_CONF_DIR}/hadoop-policy.xml ${HADOOP_CONF_DIR}/hadoop-policy.xml.bak
|
|
|
|
+ fi
|
|
|
|
+ if [ -e ${HADOOP_CONF_DIR}/mapred-queue-acls.xml ]; then
|
|
|
|
+ mv -f ${HADOOP_CONF_DIR}/mapred-queue-acls.xml ${HADOOP_CONF_DIR}/mapred-queue-acls.xml.bak
|
|
|
|
+ fi
|
|
|
|
+ if [ -e ${HADOOP_CONF_DIR}/commons-logging.properties ]; then
|
|
|
|
+ mv -f ${HADOOP_CONF_DIR}/commons-logging.properties ${HADOOP_CONF_DIR}/commons-logging.properties.bak
|
|
|
|
+ fi
|
|
|
|
+ if [ -e ${HADOOP_CONF_DIR}/taskcontroller.cfg ]; then
|
|
|
|
+ mv -f ${HADOOP_CONF_DIR}/taskcontroller.cfg ${HADOOP_CONF_DIR}/taskcontroller.cfg.bak
|
|
|
|
+ fi
|
|
|
|
+ if [ -e ${HADOOP_CONF_DIR}/slaves ]; then
|
|
|
|
+ mv -f ${HADOOP_CONF_DIR}/slaves ${HADOOP_CONF_DIR}/slaves.bak
|
|
|
|
+ fi
|
|
|
|
+ if [ -e ${HADOOP_CONF_DIR}/dfs.include ]; then
|
|
|
|
+ mv -f ${HADOOP_CONF_DIR}/dfs.include ${HADOOP_CONF_DIR}/dfs.include.bak
|
|
|
|
+ fi
|
|
|
|
+ if [ -e ${HADOOP_CONF_DIR}/dfs.exclude ]; then
|
|
|
|
+ mv -f ${HADOOP_CONF_DIR}/dfs.exclude ${HADOOP_CONF_DIR}/dfs.exclude.bak
|
|
|
|
+ fi
|
|
|
|
+ if [ -e ${HADOOP_CONF_DIR}/mapred.include ]; then
|
|
|
|
+ mv -f ${HADOOP_CONF_DIR}/mapred.include ${HADOOP_CONF_DIR}/mapred.include.bak
|
|
|
|
+ fi
|
|
|
|
+ if [ -e ${HADOOP_CONF_DIR}/mapred.exclude ]; then
|
|
|
|
+ mv -f ${HADOOP_CONF_DIR}/mapred.exclude ${HADOOP_CONF_DIR}/mapred.exclude.bak
|
|
|
|
+ fi
|
|
|
|
+
|
|
|
|
+ template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/core-site.xml ${HADOOP_CONF_DIR}/core-site.xml
|
|
|
|
+ template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/hdfs-site.xml ${HADOOP_CONF_DIR}/hdfs-site.xml
|
|
|
|
+ template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/mapred-site.xml ${HADOOP_CONF_DIR}/mapred-site.xml
|
|
|
|
+ template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/hadoop-env.sh ${HADOOP_CONF_DIR}/hadoop-env.sh
|
|
|
|
+ template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/hadoop-policy.xml ${HADOOP_CONF_DIR}/hadoop-policy.xml
|
|
|
|
+ template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/commons-logging.properties ${HADOOP_CONF_DIR}/commons-logging.properties
|
|
|
|
+ template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/mapred-queue-acls.xml ${HADOOP_CONF_DIR}/mapred-queue-acls.xml
|
|
|
|
+ template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/taskcontroller.cfg ${HADOOP_CONF_DIR}/taskcontroller.cfg
|
|
|
|
+ if [ ! -e ${HADOOP_CONF_DIR}/capacity-scheduler.xml ]; then
|
|
|
|
+ template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/capacity-scheduler.xml ${HADOOP_CONF_DIR}/capacity-scheduler.xml
|
|
|
|
+ fi
|
|
|
|
+
|
|
|
|
+ #set the owner of the hadoop dir to root
|
|
|
|
+ chown root ${HADOOP_PREFIX}
|
|
|
|
+ chown root:${HADOOP_GROUP} ${HADOOP_CONF_DIR}/hadoop-env.sh
|
|
|
|
+ chmod 755 ${HADOOP_CONF_DIR}/hadoop-env.sh
|
|
|
|
+
|
|
|
|
+ #set taskcontroller
|
|
|
|
+ chown root:${HADOOP_GROUP} ${HADOOP_CONF_DIR}/taskcontroller.cfg
|
|
|
|
+ chmod 400 ${HADOOP_CONF_DIR}/taskcontroller.cfg
|
|
|
|
+ chown root:${HADOOP_GROUP} ${HADOOP_PREFIX}/bin/task-controller
|
|
|
|
+ chmod 6050 ${HADOOP_PREFIX}/bin/task-controller
|
|
|
|
+
|
|
|
|
+ #generate the slaves file and include and exclude files for hdfs and mapred
|
|
|
|
+ echo '' > ${HADOOP_CONF_DIR}/slaves
|
|
|
|
+ echo '' > ${HADOOP_CONF_DIR}/dfs.include
|
|
|
|
+ echo '' > ${HADOOP_CONF_DIR}/dfs.exclude
|
|
|
|
+ echo '' > ${HADOOP_CONF_DIR}/mapred.include
|
|
|
|
+ echo '' > ${HADOOP_CONF_DIR}/mapred.exclude
|
|
|
|
+ for dn in $DATANODES
|
|
|
|
+ do
|
|
|
|
+ echo $dn >> ${HADOOP_CONF_DIR}/slaves
|
|
|
|
+ echo $dn >> ${HADOOP_CONF_DIR}/dfs.include
|
|
|
|
+ done
|
|
|
|
+ for tt in $TASKTRACKERS
|
|
|
|
+ do
|
|
|
|
+ echo $tt >> ${HADOOP_CONF_DIR}/mapred.include
|
|
|
|
+ done
|
|
|
|
+
|
|
echo "Configuration setup is completed."
|
|
echo "Configuration setup is completed."
|
|
if [[ "$HADOOP_NN_HOST" =~ "`hostname`" ]]; then
|
|
if [[ "$HADOOP_NN_HOST" =~ "`hostname`" ]]; then
|
|
echo "Proceed to run hadoop-setup-hdfs.sh on namenode."
|
|
echo "Proceed to run hadoop-setup-hdfs.sh on namenode."
|
|
fi
|
|
fi
|
|
else
|
|
else
|
|
|
|
+ template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/core-site.xml ${HADOOP_CONF_DIR}/core-site.xml
|
|
|
|
+ template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/hdfs-site.xml ${HADOOP_CONF_DIR}/hdfs-site.xml
|
|
|
|
+ template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/mapred-site.xml ${HADOOP_CONF_DIR}/mapred-site.xml
|
|
|
|
+ template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/hadoop-env.sh ${HADOOP_CONF_DIR}/hadoop-env.sh
|
|
|
|
+ template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/hadoop-policy.xml ${HADOOP_CONF_DIR}/hadoop-policy.xml
|
|
|
|
+ template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/commons-logging.properties ${HADOOP_CONF_DIR}/commons-logging.properties
|
|
|
|
+ template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/mapred-queue-acls.xml ${HADOOP_CONF_DIR}/mapred-queue-acls.xml
|
|
|
|
+ template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/taskcontroller.cfg ${HADOOP_CONF_DIR}/taskcontroller.cfg
|
|
|
|
+ template_generator ${HADOOP_PREFIX}/share/hadoop/templates/conf/hadoop-metrics2.properties ${HADOOP_CONF_DIR}/hadoop-metrics2.properties
|
|
|
|
+
|
|
|
|
+ chown root:${HADOOP_GROUP} ${HADOOP_CONF_DIR}/hadoop-env.sh
|
|
|
|
+ chmod 755 ${HADOOP_CONF_DIR}/hadoop-env.sh
|
|
|
|
+ #set taskcontroller
|
|
|
|
+ chown root:${HADOOP_GROUP} ${HADOOP_CONF_DIR}/taskcontroller.cfg
|
|
|
|
+ chmod 400 ${HADOOP_CONF_DIR}/taskcontroller.cfg
|
|
|
|
+ chown root:${HADOOP_GROUP} ${HADOOP_PREFIX}/bin/task-controller
|
|
|
|
+ chmod 6050 ${HADOOP_PREFIX}/bin/task-controller
|
|
|
|
+
|
|
|
|
+ #generate the slaves file and include and exclude files for hdfs and mapred
|
|
|
|
+ echo '' > ${HADOOP_CONF_DIR}/slaves
|
|
|
|
+ echo '' > ${HADOOP_CONF_DIR}/dfs.include
|
|
|
|
+ echo '' > ${HADOOP_CONF_DIR}/dfs.exclude
|
|
|
|
+ echo '' > ${HADOOP_CONF_DIR}/mapred.include
|
|
|
|
+ echo '' > ${HADOOP_CONF_DIR}/mapred.exclude
|
|
|
|
+ for dn in $DATANODES
|
|
|
|
+ do
|
|
|
|
+ echo $dn >> ${HADOOP_CONF_DIR}/slaves
|
|
|
|
+ echo $dn >> ${HADOOP_CONF_DIR}/dfs.include
|
|
|
|
+ done
|
|
|
|
+ for tt in $TASKTRACKERS
|
|
|
|
+ do
|
|
|
|
+ echo $tt >> ${HADOOP_CONF_DIR}/mapred.include
|
|
|
|
+ done
|
|
|
|
+
|
|
echo
|
|
echo
|
|
- echo "Configuration file has been generated, please copy:"
|
|
|
|
|
|
+ echo "Configuration file has been generated in:"
|
|
echo
|
|
echo
|
|
- echo "core-site.xml"
|
|
|
|
- echo "hdfs-site.xml"
|
|
|
|
- echo "mapred-site.xml"
|
|
|
|
- echo "hadoop-env.sh"
|
|
|
|
|
|
+ echo "${HADOOP_CONF_DIR}/core-site.xml"
|
|
|
|
+ echo "${HADOOP_CONF_DIR}/hdfs-site.xml"
|
|
|
|
+ echo "${HADOOP_CONF_DIR}/mapred-site.xml"
|
|
|
|
+ echo "${HADOOP_CONF_DIR}/hadoop-env.sh"
|
|
echo
|
|
echo
|
|
echo " to ${HADOOP_CONF_DIR} on all nodes, and proceed to run hadoop-setup-hdfs.sh on namenode."
|
|
echo " to ${HADOOP_CONF_DIR} on all nodes, and proceed to run hadoop-setup-hdfs.sh on namenode."
|
|
fi
|
|
fi
|