Skip to content

Instantly share code, notes, and snippets.

@shiumachi
Created November 28, 2018 06:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shiumachi/144a7a99d2f6e12fee5be3c9edafb12b to your computer and use it in GitHub Desktop.
Save shiumachi/144a7a99d2f6e12fee5be3c9edafb12b to your computer and use it in GitHub Desktop.
alternatives like script for hadoop
#!/bin/sh
HOME_LIB_DIR=${HOME}/lib
# symlink list
HADOOP_SYMLINK=${HOME_LIB_DIR}/hadoop
HBASE_SYMLINK=${HOME_LIB_DIR}/hbase
ZOOKEEPER_SYMLINK=${HOME_LIB_DIR}/zookeeper
HIVE_SYMLINK=${HOME_LIB_DIR}/hive
PIG_SYMLINK=${HOME_LIB_DIR}/pig
HUE_SYMLINK=${HOME_LIB_DIR}/hue
HUE_PLUGINS_SYMLINK=${HOME_LIB_DIR}/hue-plugins.jar
MAHOUT_SYMLINK=${HOME_LIB_DIR}/mahout
FLUME_SYMLINK=${HOME_LIB_DIR}/flume
SYMLINK_LIST=(${HADOOP_SYMLINK} ${HBASE_SYMLINK} ${ZOOKEEPER_SYMLINK} ${HIVE_SYMLINK} ${PIG_SYMLINK} ${HUE_SYMLINK} ${HUE_PLUGINS_SYMLINK} ${MAHOUT_SYMLINK} ${FLUME_SYMLINK})
## version list
HADOOP_HOME_CDH2U1=${HOME_LIB_DIR}/hadoop-0.20.1+169.88
HADOOP_HOME_CDH2U3=${HOME_LIB_DIR}/hadoop-0.20.1+169.127
HADOOP_HOME_CDH3U0=${HOME_LIB_DIR}/hadoop-0.20.2-cdh3u0
HADOOP_HOME_CDH3U1=${HOME_LIB_DIR}/hadoop-0.20.2-cdh3u1
HADOOP_HOME_CDH3U2=${HOME_LIB_DIR}/hadoop-0.20.2-cdh3u2
HADOOP_HOME_CDH3U3=${HOME_LIB_DIR}/hadoop-0.20.2-cdh3u3
HADOOP_HOME_CDH3U4=${HOME_LIB_DIR}/hadoop-0.20.2-cdh3u4
HADOOP_HOME_CDH3U5=${HOME_LIB_DIR}/hadoop-0.20.2-cdh3u5
HADOOP_HOME_CDH4B2=${HOME_LIB_DIR}/hadoop-0.23.1-cdh4.0.0b2
HADOOP_HOME_CDH4_0=${HOME_LIB_DIR}/hadoop-2.0.0-cdh4.0.0
HADOOP_HOME_CDH4_1=${HOME_LIB_DIR}/hadoop-2.0.0-cdh4.1.1
HADOOP_HOME_CDH4_2=${HOME_LIB_DIR}/hadoop-2.0.0-cdh4.2.0
HBASE_HOME_CDH3U0=${HOME_LIB_DIR}/hbase-0.90.1-cdh3u0
HBASE_HOME_CDH3U1=${HOME_LIB_DIR}/hbase-0.90.3-cdh3u1
HBASE_HOME_CDH3U2=${HOME_LIB_DIR}/hbase-0.90.4-cdh3u2
HBASE_HOME_CDH3U3=${HOME_LIB_DIR}/hbase-0.90.4-cdh3u3
HBASE_HOME_CDH3U4=${HOME_LIB_DIR}/hbase-0.90.6-cdh3u4
ZOOKEEPER_HOME_CDH3U0=${HOME_LIB_DIR}/zookeeper-3.3.3-cdh3u0
ZOOKEEPER_HOME_CDH3U1=${HOME_LIB_DIR}/zookeeper-3.3.3-cdh3u1
ZOOKEEPER_HOME_CDH3U2=${HOME_LIB_DIR}/zookeeper-3.3.3-cdh3u2
ZOOKEEPER_HOME_CDH3U3=${HOME_LIB_DIR}/zookeeper-3.3.4-cdh3u3
ZOOKEEPER_HOME_CDH3U4=${HOME_LIB_DIR}/zookeeper-3.3.5-cdh3u4
HIVE_HOME_CDH3U0=${HOME_LIB_DIR}/hive-0.7.0-cdh3u0
HIVE_HOME_CDH3U1=${HOME_LIB_DIR}/hive-0.7.1-cdh3u1
HIVE_HOME_CDH3U2=${HOME_LIB_DIR}/hive-0.7.1-cdh3u2
HIVE_HOME_CDH3U3=${HOME_LIB_DIR}/hive-0.7.1-cdh3u3
HIVE_HOME_CDH3U4=${HOME_LIB_DIR}/hive-0.7.1-cdh3u4
HIVE_HOME_CDH3U5=${HOME_LIB_DIR}/hive-0.7.1-cdh3u5
HIVE_HOME_CDH4B2=${HOME_LIB_DIR}/hive-0.8.1-cdh4.0.0b2
HIVE_HOME_CDH4_0=${HOME_LIB_DIR}/hive-0.8.1-cdh4.0.1
HIVE_HOME_CDH4_2=${HOME_LIB_DIR}/hive-0.10.0-cdh4.2.0
PIG_HOME_CDH3U3=${HOME_LIB_DIR}/pig-0.8.1-cdh3u3
HUE_HOME_CDH3U2=${HOME_LIB_DIR}/hue-1.2.0.0-cdh3u2
HUE_HOME_CDH3U3=${HOME_LIB_DIR}/hue-1.2.0.0-cdh3u3
HUE_PLUGINS_CDH3U2=${HUE_HOME_CDH3U2}/desktop/libs/hadoop/java-lib/hue-plugins-1.2.0-cdh3u2.jar
HUE_PLUGINS_CDH3U3=${HUE_HOME_CDH3U3}/desktop/libs/hadoop/java-lib/hue-plugins-1.2.0-cdh3u3.jar
MAHOUT_HOME_CDH3U4=${HOME_LIB_DIR}/mahout-0.5-cdh3u4
FLUME_HOME_CDH4_1=${HOME_LIB_DIR}/apache-flume-1.2.0-cdh4.1.3
usage(){
printf "%s:\n" "usage" 1>&2
printf "%s [component] [cdh-version] -prod\n" `basename $0` 1>&2
# please add new component here
printf " %-15s: hadoop, hbase, zookeeper, hive, hue(>= CDH3u2), pig(>= CDH3u3), mahout(>= CDH3u4) flume(>= 4.1)\n" "component" 1>&2
# please add new version here
printf " %-15s: CDH2u1/CDH2u3(hadoop only), CDH3u[0-5], CDH4b2, CDH4.[0-2]\n" "cdh-version" 1>&2
printf "%s -l\n" `basename $0` 1>&2
printf " list current settings\n" 1>&2
}
# please add new version here
version_selection(){
case "${CDH_VERSION}" in
"CDH2u1")
cdh_ver=\$${CDH_HOME}_CDH2U1
;;
"CDH2u3")
cdh_ver=\$${CDH_HOME}_CDH2U3
;;
"CDH3u0")
cdh_ver=\$${CDH_HOME}_CDH3U0
;;
"CDH3u1")
cdh_ver=\$${CDH_HOME}_CDH3U1
;;
"CDH3u2")
cdh_ver=\$${CDH_HOME}_CDH3U2
;;
"CDH3u3")
cdh_ver=\$${CDH_HOME}_CDH3U3
;;
"CDH3u4")
cdh_ver=\$${CDH_HOME}_CDH3U4
;;
"CDH3u5")
cdh_ver=\$${CDH_HOME}_CDH3U5
;;
"CDH4b2")
cdh_ver=\$${CDH_HOME}_CDH4B2
;;
"CDH4.0")
cdh_ver=\$${CDH_HOME}_CDH4_0
;;
"CDH4.1")
cdh_ver=\$${CDH_HOME}_CDH4_1
;;
"CDH4.2")
cdh_ver=\$${CDH_HOME}_CDH4_2
;;
*)
usage
exit
esac
}
# please add new component here
component_selection(){
case "${COMPONENT}" in
"hadoop")
CDH_ALTERNATIVE_COMMAND=hadoop_alternative
CDH_HOME="HADOOP_HOME"
;;
"hbase")
CDH_ALTERNATIVE_COMMAND=hbase_alternative
CDH_HOME="HBASE_HOME"
;;
"zookeeper")
CDH_ALTERNATIVE_COMMAND=zookeeper_alternative
CDH_HOME="ZOOKEEPER_HOME"
;;
"hive")
CDH_ALTERNATIVE_COMMAND=hive_alternative
CDH_HOME="HIVE_HOME"
;;
"pig")
CDH_ALTERNATIVE_COMMAND=pig_alternative
CDH_HOME="PIG_HOME"
;;
"hue")
CDH_ALTERNATIVE_COMMAND=hue_alternative
CDH_HOME="HUE_HOME"
;;
"mahout")
CDH_ALTERNATIVE_COMMAND=mahout_alternative
CDH_HOME="MAHOUT_HOME"
;;
"flume")
CDH_ALTERNATIVE_COMMAND=flume_alternative
CDH_HOME="FLUME_HOME"
;;
*)
usage
exit
esac
}
alternative_list(){
echo "alternative_list()"
for link in ${SYMLINK_LIST[@]}; do
ls -lGd ${link}
done
}
hadoop_alternative(){
echo "hadoop_alternative()"
rm ${HADOOP_SYMLINK}
ln -s $1 ${HADOOP_SYMLINK}
}
hadoop_alternative_dryrun(){
echo "hadoop_alternative()"
echo "rm ${HADOOP_SYMLINK}"
echo "ln -s $1 ${HADOOP_SYMLINK}"
}
hbase_alternative(){
echo "hbase_alternative()"
rm ${HBASE_SYMLINK}
ln -s $1 ${HBASE_SYMLINK}
}
hbase_alternative_dryrun(){
echo "hbase_alternative()"
echo "rm ${HBASE_SYMLINK}"
echo "ln -s $1 ${HBASE_SYMLINK}"
}
zookeeper_alternative(){
echo "zookeeper_alternative()"
rm ${ZOOKEEPER_SYMLINK}
ln -s $1 ${ZOOKEEPER_SYMLINK}
}
zookeeper_alternative_dryrun(){
echo "zookeeper_alternative()"
echo "rm ${ZOOKEEPER_SYMLINK}"
echo "ln -s $1 ${ZOOKEEPER_SYMLINK}"
}
hive_alternative(){
echo "hive_alternative()"
rm ${HIVE_SYMLINK}
ln -s $1 ${HIVE_SYMLINK}
}
hive_alternative_dryrun(){
echo "hive_alternative()"
echo "rm ${HIVE_SYMLINK}"
echo "ln -s $1 ${HIVE_SYMLINK}"
}
pig_alternative(){
echo "pig_alternative()"
rm ${PIG_SYMLINK}
ln -s $1 ${PIG_SYMLINK}
}
pig_alternative_dryrun(){
echo "pig_alternative()"
echo "rm ${PIG_SYMLINK}"
echo "ln -s $1 ${PIG_SYMLINK}"
}
hue_alternative(){
echo "hue_alternative()"
case "${CDH_VERSION}" in
"CDH3u2")
rm ${HUE_PLUGINS_SYMLINK}
ln -s ${HUE_PLUGINS_CDH3U2} ${HUE_PLUGINS_SYMLINK}
;;
"CDH3u3")
rm ${HUE_PLUGINS_SYMLINK}
ln -s ${HUE_PLUGINS_CDH3U3} ${HUE_PLUGINS_SYMLINK}
;;
*)
printf "ERROR: invalid version: %s\n" ${CDH_VERSION} 1>&2
exit
esac
rm ${HUE_SYMLINK}
ln -s $1 ${HUE_SYMLINK}
}
hue_alternative_dryrun(){
echo "hue_alternative()"
case "${CDH_VERSION}" in
"CDH3u2")
echo "rm ${HUE_PLUGINS_SYMLINK}"
echo "ln -s ${HUE_PLUGINS_CDH3U2} ${HUE_PLUGINS_SYMLINK}"
;;
"CDH3u3")
echo "rm ${HUE_PLUGINS_SYMLINK}"
echo "ln -s ${HUE_PLUGINS_CDH3U3} ${HUE_PLUGINS_SYMLINK}"
;;
*)
printf "ERROR: invalid version: %s\n" ${CDH_VERSION} 1>&2
exit
esac
echo "rm ${HUE_SYMLINK}"
echo "ln -s $1 ${HUE_SYMLINK}"
}
mahout_alternative(){
echo "mahout_alternative()"
rm ${MAHOUT_SYMLINK}
ln -s $1 ${MAHOUT_SYMLINK}
}
mahout_alternative_dryrun(){
echo "mahout_alternative()"
echo "rm ${MAHOUT_SYMLINK}"
echo "ln -s $1 ${MAHOUT_SYMLINK}"
}
flume_alternative(){
echo "flume_alternative()"
rm ${FLUME_SYMLINK}
ln -s $1 ${FLUME_SYMLINK}
}
flume_alternative_dryrun(){
echo "flume_alternative()"
echo "rm ${FLUME_SYMLINK}"
echo "ln -s $1 ${FLUME_SYMLINK}"
}
if [ $# == 1 -a "$1" == "-l" ]; then
alternative_list
exit
fi
if [ $# == 3 ]; then
DRYRUN=0
elif [ $# == 2 ]; then
DRYRUN=1
else
usage
exit
fi
COMPONENT=$1
CDH_VERSION=$2
component_selection
if [ "${DRYRUN}" == 1 ]; then
CDH_ALTERNATIVE_COMMAND=${CDH_ALTERNATIVE_COMMAND}_dryrun
fi
version_selection
${CDH_ALTERNATIVE_COMMAND} `eval echo $"$cdh_ver"`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment