目錄
- 前言
- 一、安裝前的準備
- 二、shell安裝MySQL
- 三、shell安裝&配置
- 1.洗掉重復檔案&配置
- 2.解壓安裝包&重命名&授權
- 3.配置環境變數
- 4.Hadoop配置
- 5.Hive配置
- 6.Zeppelin配置
- 7.Zookeeper配置
- 8.Hbase配置
- 9.Sqoop配置
前言
在使用計算機的時候,我們的程式越來越多,服務也越來越多,所以我們在拿到一臺新機器的時候總是習慣性的去安裝那些我們常用的程式&服務;使用虛擬機時也是一樣的,所以為了方便以后的操作,我們可以嘗試寫shell腳本來一次性完成我們需要的所有安裝&配置操作,
- MySql服務用wget獲取MySql安裝包安裝的,這一部分時間較長,所以我單獨列出來安裝MySql的腳本,其他的服務通過本地安裝包解壓之后配置安裝的所以統一放在一起;
- 由于hive初始化時后臺操作進入MySql并創建了資料庫,所以我推薦先安裝MySql之后再運行配置剩余全部的shell腳本;
- 如果在MySql服務未安裝時先執行整體配置的腳本則會報hive初始化失敗的報錯;
代碼提取:百度云提取鏈接
提取碼:uwkp
一、安裝前的準備
- 一臺網路通暢的虛擬機
- 所有服務的安裝包(上傳至虛擬機)
這里列出本文安裝的所有服務的安裝包資訊
- jdk-8u111-linux-x64.tar.gz
- mysql-community-release-el7-5.noarch.rpm
- hadoop-2.6.0-cdh5.14.2.tar.gz
- mysql-connector-java-5.1.32.jar
- hadoop-native-64-2.6.0.tar
- hive-1.1.0-cdh5.14.2.tar.gz
- hbase-1.2.0-cdh5.14.2.tar.gz
- zeppelin-0.8.2-bin-all.tgz
- zookeeper-3.4.5-cdh5.14.2.tar.gz
- sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
- scala-2.12.10.tgz
二、shell安裝MySQL
這一部分在安裝前為檢測是否有上一次安裝過的MySQL服務的痕跡,后面將補上這一部分內容;
- yum update =>更新yum
- SEARCH WGET AND ISTALL WGET =>安裝wget
- WGET MYSQL PACKAGE =>wget獲取MySQL安裝包
- RMP INSTALL MySQL =>安裝MySQL
- INSTALL MYSQL-SERVER I=>安裝MySQL服務
- CHINESE GARBLED PROBLEM =>修改MySQL字符集,解決中文亂碼問題
#!/bin/bash
echo "start to update yum ..."
VAR= "yum -y update>/root/test.log 2>&1"
`eval $VAR`
#-------------SEARCH WGET AND ISTALL WGET-------------------
VAR=`yum search wget|grep wget.|awk -F' ' '{print $1}'`
VAR=${VAR##*=}
echo " yum search wget find:$VAR"
echo "start to install $VAR"
VAR="yum -y install $VAR>/root/test.log 2>&1"
`eval $VAR`
#驗證wget是否安裝成功
VAR=`awk -F '!' 'END{print $1}' /root/test.log`
if [[ $VAR =~ ^Complete ]]
then
echo "install wget success"
else
echo "install wget failed,please reinstall..."
exit 1
fi
#------------------WGET MYSQL PACKAGE-----------------------
echo
echo "start to download package"
VAR=http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
OPER=`eval "wget $VAR>/root/test.log 2>&1"`
#驗證wget獲取MySQL package結果
ls>test.log
VAR=`cat test.log`
VAR=($VAR)
COUNT=0
for var in ${VAR[@]}
do
if [[ $var =~ ^mysql ]]
then
echo "download package success!"
COUNT=0
break
else
((COUNT++))
fi
done
if [ $COUNT -ne 0 ]
then
echo "download package failed .... please redownload package!"
exit 1
fi
echo
#----------------RMP INSTALL-----------------------
echo "start to install mysql"
VAR=`ls ./|grep mysql*`
OPER=`eval "rpm -ivh $VAR>/root/test.log 2>&1"`
#驗證MySQL安裝是否成功
VAR=`awk -F' ' 'END{print $1}' /root/test.log`
if [[ $VAR =~ ^mysql ]]
then
echo "install mysql successfully"
else
echo "install mysql failed,please reinstall..."
exit 1
fi
echo
#---------------MYSQL-SERVER INSTALL-----------------
echo "start to install mysql server..."
VAR="yum -y install mysql-server>/root/test.log 2>&1"
`eval $VAR`
#驗證MySQL服務是否安裝成功
VAR=`rpm -qa|grep -i mysql`
VAR=($VAR)
if [[ ${#VAR[*]} -ge 4 ]]
then
echo "mysql server install success"
else
echo "mysql server install fail"
exit 1
fi
#------------------CHINESE GARBLED PROBLEM------------------------
echo "start to modify mysql-my.cnf"
`echo "#mysql-setup">/etc/my.cnf`
sen="[client]
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
[mysql]
default-character-set=utf8
"
lines=`echo $sen`
for line in $lines
do
VAR=`eval "sed -i '/#mysql-setup/i\$line' /etc/my.cnf"`
done
#驗證修改是否完成
VAR=`awk -F' ' 'END{print $1}' /etc/my.cnf`
if [[ $VAR =~ ^#mysql ]]
then
echo "modify my.cnf success"
else
echo "modify my.cnf failed,please check shell..."
exit 1
fi
echo "restart mysql"
VAR=`eval "systemctl restart mysql"`
echo "install mysql finished !"
三、shell安裝&配置
先將整體的安裝包解壓到/opt/download檔案夾下(若無此檔案夾,需要手動創建),圖中我解壓到hadoop檔案夾內;接下來就可以啟用shell腳本了;

1.洗掉重復檔案&配置
-
洗掉服務所在的目錄檔案
本文默認所有服務安裝在/opt/software目錄下,所以只要遞回洗掉目錄software即可; -
剔除配置的環境變數
修改環境變數在/etc/profile下,因為本文插入的環境變數都在done 這一行和unset i這一行之間,所以將這兩行中間的內容洗掉即可;
#!/bin/bash
#------------------REMOVE ALL RELATIVE RESOURCES---------------------
echo "##### start to remove relative resources,included env-vars and software-installation ..."
#獲取配置環境變數的開始行和結束行
BEGIN=`cat -n /etc/profile|grep done|awk '{print $1}'`
END=`cat -n /etc/profile|grep "unset i"|awk '{print $1}'`
RST=$(((--END)-(++BEGIN)))
if [ $RST -gt 0 ]
then
RST="'"$BEGIN,$END" d'"
RST="sed -i $RST /etc/profile"
RST=`eval $RST`
echo "... /etc/profile cleared"
else
echo "... /etc/profile empty"
fi
#洗掉服務所在目錄下的所有檔案
if [ -e /opt/software ]
then
rm -rf /opt/software
echo "... /etc/profile delete"
else
echo "... /etc/profile not existed"
fi
echo
2.解壓安裝包&重命名&授權
-
驗證安裝包是否缺失
這里防止安裝一半時缺失安裝包的情況,先驗證安裝包是否完整; -
安裝目錄是否存在
統一解壓到/opt/software目錄下,若沒有此目錄則新建此目錄; -
解壓&重命名&授權
存在.tar和.gz的檔案,所以解壓方式也不同;解壓完之后根據安裝包的前半部分和重命名集合里的是否一致,一致則替換名稱,最后將權限修改;
#------------------NAME LIST FOR INSTALLATION------------------------
echo "----------------------------------------------"
echo
echo "#### start to unpack all resources ..."
INSTALL_LIST="jdk-8u111-linux-x64.tar.gz scala-2.12.10.tgz hadoop-2.6.0-cdh5.14.2.tar.gz hive-1.1.0-cdh5.14.2.tar.gz zeppelin-0.8.2-bin-all.tgz zookeeper-3.4.5-cdh5.14.2.tar.gz hbase-1.2.0-cdh5.14.2.tar.gz sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz"
#---------------------SOURCE PACKAGE VAILIDATION---------------------
echo "start to check whether all the resource needed exists?"
LIST=`ls /opt/download/hadoop`
for item in $INSTALL_LIST
do
if [[ $LIST =~ $item ]]
then
continue
else
echo "ERROR and will exit for the lack of $item"
exit 1
fi
done
echo "unpack all finish."
echo "start to installing..."
echo "first,we'll unpack all the items ..."
#---------------------ENSURE THE UNPACK DESTINATION DIR-----------------------
echo -n "start to check destination directory ..."
DEST_DIR="/opt/software/"
if [ ! -e $DEST_DIR ]
then
RST=`mkdir $DEST_DIR`
echo "not exist and has been created"
else
echo "ok"
fi
cd /opt/software
echo " ---------------"
echo "current dir has been changed into |/opt/software|"
echo " ---------------"
#--------------------UNPACK AND RENAME AND CHOWN---------------------------------------
RENAME_LIST="java180 scala21210 hadoop260 hive110 zeppelin082 zookeeper345 hbase120 sqoop146"
RENAME_LIST=($RENAME_LIST)
IX=0
for item in $INSTALL_LIST
do
if [[ $item =~ tar|gz$ ]]
then
echo "start to unpack $item ..."
OPT=${item##*.tar}
OPT="-"$([ $OPT ] && echo "z" || echo "" )"xf"
RST=`eval "tar $OPT /opt/download/hadoop/$item"`
RST=`eval "mv ${item%%-*}* ${RENAME_LIST[$IX]}"`
echo "unpack $item and rename ${RENAME_LIST[$IX]} ok!"
`chown -R root:root ${RENAME_LIST[$IX]}`
fi
((IX++))
done
echo
3.配置環境變數
- 目錄名轉大寫并判斷配置path時是否包含sbin
- 插入時以unset i 這一行為基準,一直往這一行上方插入即可
- CLASSPATH和LOGDIR單獨插入
#---------------------ENV_VAR : ALL_XXX_HOME--------------------------------
echo "----------------------------------------------"
echo
echo "#### start to config environment variables ..."
RENAME_ITEMS="java180_bin scala21210_bin hadoop260_bin_sbin hive110_bin zeppelin082_bin zookeeper345_sbin hbase120_bin sqoop146_bin"
ROAD="export PATH="
for item in $RENAME_ITEMS
do
HOME=${item%%[0-9]*}
#拼出export對應的字串
HOME=${HOME^^}"_HOME"
#名稱轉大寫
T="${item//_/ }"
FIRST=1
for var in $T
do
if [ $FIRST -eq 1 ]
then
FIRST=0
else
#插入path前拼出字串
ROAD+="$"$HOME"/"$var":"
fi
done
echo " .... $HOME finished"
HOME="export $HOME=$DEST_DIR${item%%_*}"
#往unset i 上方插入
RST=`eval "sed -i '/unset i/i\$HOME' /etc/profile"`
done
ROAD+="$""PATH"
RST=`eval "sed -i '/unset i/i\$ROAD' /etc/profile"`
echo " .... PATH finished"
#--------------------------CLASS_PATH---------------------
ROAD="export CLASSPATH=.:$""JAVA_HOME/lib/tools.jar:$""JAVA_HOME/lib/dt.jar"
RST=`eval "sed -i '/unset i/i\$ROAD' /etc/profile"`
echo " .... JAVA_CLASSPATH finished"
#---------------------ZOOKEEPER LOGS---------------------
ROAD="export LOGDIR=$""SQOOP_HOME/mylog/"
RST=`eval "sed -i '/unset i/i\$ROAD' /etc/profile"`
echo " .... ZOOLEEPER LOGDIR finished"
#---------------------ACTIVATE ENV_VAR-------------------
#激活環境變數
source /etc/profile
echo "environment variables have been written into /etc/profile and activated"
echo
#獲取虛擬機ip地址
HOST_IP=`ip addr|awk -v FS='/' '/noprefixroute ens33/{print $1}'|awk -F' ' '{print $2}'`
echo
echo "----------------------------------------------"
echo "$HOSTNAME IP is $HOST_IP"
echo "----------------------------------------------"
4.Hadoop配置
- hadoop-native-64-2.6.0.tar解壓至hadoop根目錄的lib目錄下的native檔案夾
- 修改hadoop-env.sh;
- core-site.xml hdfs-site.xml mapred-site.xml.template yarn-site.xml在同一目錄下,使用回圈修改;
- 格式化Namenode并驗證
#---------------------hadoop-----------------------------
echo
echo "Starting to modify hadoop..."
cd /opt/download/hadoop
VAR=`ls -F | grep "^hadoop-native"`
TMP=`eval "tar -xvf $VAR -C ${HADOOP_HOME}/lib/native"`
DEST_DIR=$HADOOP_HOME"/etc/hadoop/"
REP="export JAVA_HOME=${JAVA_HOME}"
`sed -i "/^export JAVA_HOME=/c$REP" ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh`
CONFS="core-site.xml hdfs-site.xml mapred-site.xml.template yarn-site.xml"
readonly CONFI1="
<property>
<name>hadoop.tmp.dir</name>
<value>$HADOOP_HOME</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://${HOST_IP}:9000</value>
</property>
"
RST=`mkdir $HADOOP_HOME"/tmp"`
RST=`mkdir $HADOOP_HOME"/tmp/name" $HADOOP_HOME"/tmp/data"`
readonly CONFI2="
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>$HADOOP_HOME/tmp/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>$HADOOP_HOME/tmp/data</value>
</property>
"
readonly CONFI3="
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
"
readonly CINFI4="
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
"
IX=1
for file in $CONFS
do
if [[ $file =~ .template ]]
then
CMD="mv $DEST_DIR$file $DEST_DIR${file%.*}"
RST=`eval $CMD`
file=${file%.*}
fi
CMD="sed -i '/<\/configuration>/i\REPL\' $DEST_DIR$file"
V="CONFI"$IX
LINES=`eval echo "$"$V`
echo -n " ---- config $file ..."
for line in $LINES
do
RST=${CMD/REPL/$line}
RST=`eval $RST`
done
echo " ok"
((IX++))
done
#hadoop namenode format
echo -n " .... start to format namenode ..."
RST=`eval "cd $HADOOP_HOME/tmp/name"`
hdfs namenode -format>/root/nnfmt.log 2>&1
RST=`cat /root/nnfmt.log|grep util.ExitUtil`
RST=${RST##* }
echo $([ $RST -eq 0 ] && echo "ok" || "error")
if [ $RST -ne 0 ]
then
exit 1
fi
echo
echo "Hadoop modify finish."
echo
5.Hive配置
- 創建目錄warehouse
- 創建并修改hive-site.xml
- 拷貝mysql的jar包
- 初始化hive
#-------------------------hive-----------------------
echo "----------------------------------------------"
echo
echo "Let's modify hive..."
#-------------create warehouse----------------------
cd $HIVE_HOME
#驗證路徑是否正確
`eval "pwd>/root/test.log"`
VAR=`cat /root/test.log`
if [[ $VAR =~ hive110$ ]]
then
echo -n ""
else
echo "path error,please check curren path!"
exit 1
fi
echo "currentpath: $VAR"
#創建目錄warehouse
echo "first,we need to create directory:warehouse..."
mkdir warehouse/
echo "Directory warehouse create finish!"
echo
#-------------hive-site.xml-------------------------
echo "second,we'll modify hive-site.xml...."
cd ./conf
#驗證路徑是否正確
`eval "pwd>/root/test.log"`
VAR=`cat /root/test.log`
if [[ $VAR =~ conf$ ]]
then
echo -n ""
else
echo "path error,please check curren path!"
exit 1
fi
echo "currentpath: $VAR"
TEXT="<?xml#version=\"1.0\"#encoding=\"UTF-8\"#standalone=\"no\"?>
<?xml-stylesheet#type=\"text/xsl\"#href=\"configuration.xsl\"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>$HIVE_HOME/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://${HOST_IP}:3306/hive110?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
</configuration>
"
#hive-site.xml不存在,創建并插入;考慮到sed無法插入空檔案,先echo一行進入再sed插入,最后將那一行洗掉
touch hive-site.xml
`echo "#setup">./hive-site.xml`
lines=`echo $TEXT`
for line in $lines
do
VAR=`eval "sed -i '/#setup/i\${line//#/ }' hive-site.xml"`
done
VAR=`awk -F'#' 'END{print $2}' hive-site.xml`
if [[ $VAR =~ ^setup ]]
then
echo "modify hive-site.xml success"
else
echo "modify hive-site.xml failed,please check shell..."
exit 1
fi
sed -i '$d' hive-site.xml
echo
#---------------------------copy mysql-connection---------------
echo "Third,we should copy drive to hive..."
cd ../lib
#驗證路徑是否正確
`eval "pwd>/root/test.log"`
VAR=`cat /root/test.log`
if [[ $VAR =~ lib$ ]]
then
echo -n ""
else
echo "path error,please check curren path!"
exit 1
fi
echo "currentpath: $VAR"
#拷貝jar包
cp /opt/download/hadoop/mysql*.jar ./
echo "copy drive ok!"
echo
#-----------------------Initialize the environment---------------------------
echo "last,we must initialize the environment...."
cd ../bin
#驗證路徑是否正確
`eval "pwd>/root/test.log"`
VAR=`cat /root/test.log`
if [[ $VAR =~ bin$ ]]
then
echo -n ""
else
echo "path error,please check curren path!"
exit 1
fi
echo "currentpath: $VAR"
echo "start to initialize..."
#初始化hive
VAR="./schematool -dbType mysql -initSchema>/root/test.log 2>&1"
`eval $VAR`
#驗證初始化結果
VAR=`awk -F' ' 'END{print $2}' /root/test.log`
if [[ $VAR =~ ^completed ]]
then
echo "initialize successfully"
else
echo "initalize failed,please reinitalize..."
exit 1
fi
echo
echo "hive Configurate finish!"
echo
6.Zeppelin配置
- 配置zeppelin-site.xml
- 配置zeppelin-env.xml
- 拷貝hive-site.xml&jar包
#---------------------zeppelin---------------------------
#--------------------authorize---------------------
echo "----------------------------------------------"
echo
echo "Next,we start to deploy zeppelin..."
#授權和上面重復,但不影響程式,可以刪掉這一部分
echo "First,we need to authorize directory with its files...."
cd $ZEPPELIN_HOME
cd ../
`eval "pwd>/root/test.log"`
VAR=`cat /root/test.log`
if [[ $VAR =~ software$ ]]
then
echo -n ""
else
echo "path error,please check curren path!"
exit 1
fi
echo "currentpath: $VAR"
VAR=`ls|grep zeppe*`
`chown -R root:root $VAR`
echo "authorized success!"
echo
#-----------modify zeppelin-site.xml---------
echo "Second,we need to modify zeppelin-site.xml..."
cd $ZEPPELIN_HOME
cd ./conf
`eval "pwd>/root/test.log"`
VAR=`cat /root/test.log`
if [[ $VAR =~ conf$ ]]
then
echo -n ""
else
echo "path error,please check curren path!"
exit 1
fi
echo "currentpath: $VAR"
VAR=`ls|grep zeppelin-site*`
echo "We need to copy $VAR one more to modify"
cp $VAR ${VAR%.*}
echo "Copy success,next to modify zeppelin-site.xml..."
VAR="sed -i '24s/127.0.0.1/$HOST_IP/' zeppelin-site.xml"
`eval $VAR`
VAR="sed -i '30s/8080/8000/' zeppelin-site.xml"
`eval $VAR`
VAR=`awk 'NR==30{print $0}' zeppelin-site.xml`
VAR=`echo $VAR | tr -cd "[0-9]"`
if [[ $VAR =~ 8000 ]]
then
echo "modify zeppelin-site.xml success!"
else
echo "modify zeppelin-site.xml failed,please check out..."
exit 1
fi
echo
#-----------modify zeppelin-env.xml---------
echo "Then,let's modify zeppelin-env.sh..."
VAR=`ls|grep zeppelin-env.sh*`
echo "We need to copy $VAR one more to modify"
cp $VAR ${VAR%.*}
echo "Copy success,next to modify zeppelin-env.sh..."
#TEMP=`grep -n "# export JAVA_HOME=" zeppelin-env.sh`
#TEMP=`echo $a | tr -cd "[0-9]"`
#VAR="sed -i '${TEMP}s/#/ /' zeppelin-env.sh"
#`eval $VAR`
#VAR="sed -i '${TEMP}s/$""/${JAVA_HOME//\//\\/}' zeppelin-env.sh"
#`eval $VAR`
REP="export JAVA_HOME=${JAVA_HOME}"
`sed -i "/^# export JAVA_HOME=/c$REP" zeppelin-env.sh`
#TEMP=`grep -n "# export HADOOP_CONF_DIR.*" zeppelin-env.sh`
#TEMP=`echo $a | tr -cd "[0-9]"`
#VAR="sed -i '${TEMP}s/#/ /' zeppelin-env.sh"
#`eval $VAR`
#VAR="sed -i '${TEMP}s/"="/'='${HADOOP_HOME//\//\\/}' zeppelin-env.sh"
#`eval $VAR`
REP="export HADOOP_CONF_DIR=${HADOOP_HOME}"
`sed -i "/^# export HADOOP_CONF_DIR/c$REP" zeppelin-env.sh`
echo "modify zeppelin-env.sh success!"
echo
#--------------cp jar-----------------------
echo "Next,we need to copy .jar and .xml file..."
#拷貝xml和jar包
`eval "pwd>/root/test.log"`
VAR=`cat /root/test.log`
if [[ $VAR =~ conf$ ]]
then
echo -n ""
else
echo "path error,please check curren path!"
exit 1
fi
echo "currentpath: $VAR"
`cp ${HIVE_HOME}/conf/hive-site.xml ./`
echo "copy hive-site.xml to current path success!"
`cp ${HADOOP_HOME}/share/hadoop/common/hadoop-common-2.6.0-cdh5.14.2.jar ./`
echo "echo hadoop.jar to current path success!"
`cp ${HIVE_HOME}/lib/hive-jdbc-1.1.0-cdh5.14.2-standalone.jar ./`
echo "copy hive.jar to current path success!"
echo
#-----------------start to switch on service-------------
echo "Finally,we'll start to switch on service..."
cd ../bin
`eval "pwd>/root/test.log"`
VAR=`cat /root/test.log`
if [[ $VAR =~ bin$ ]]
then
echo -n ""
else
echo "path error,please check curren path!"
exit 1
fi
echo "currentpath: $VAR"
#啟動服務
./zeppelin-daemon.sh start
echo
echo "Zeppelin modify finish."
echo
7.Zookeeper配置
- 創建directory mydata&myid
- 修改 zoo.cfg檔案
#---------------------zookeeper--------------------------
echo "----------------------------------------------"
echo
echo "After,we start to modify zookeeper..."
echo "First,we need to create directory mydata and myid..."
cd $ZOOKEEPER_HOME
`eval "pwd>/root/test.log"`
VAR=`cat /root/test.log`
echo "currentpath: $VAR"
`mkdir mydata myid`
`echo "1">./myid`
echo "create directory finish!"
echo
echo "Second,we'll modify zoo.cfg..."
cd ./conf
`eval "pwd>/root/test.log"`
VAR=`cat /root/test.log`
if [[ $VAR =~ conf$ ]]
then
echo -n ""
else
echo "path error,please check curren path!"
exit 1
fi
echo "currentpath: $VAR"
VAR=`ls|grep zoo.sample*`
echo "We need to copy $VAR one more to modify"
cp $VAR zoo.cfg
VAR="zoo.cfg"
echo "Copy success,next to modify $VAR..."
REP="dataDir=${ZOOKEEPER_HOME}/mydata"
`sed -i "/^dataDir=/c$REP" $VAR`
TEMP=`grep -n "dataDir=" zoo.cfg`
TEMP=`echo $a | tr -cd "[0-9]"`
SEN="sed -i 'N;${TEMP}aserver.1=master:2888:3888' $VAR"
`eval $SEN`
echo "Modify zoo.cfg success"
echo
echo "Zookeeper modify finish!"
echo
8.Hbase配置
- 修改hbase.env.sh
- 修改hbase-site.xml
#---------------------hbase------------------------------
echo "----------------------------------------------"
echo
echo "Afterwards,we start to deploy hbase"
echo "First,we'll modify hbase.env.sh..."
cd ${HBASE_HOME}/conf
`eval "pwd>/root/test.log"`
VAR=`cat /root/test.log`
if [[ $VAR =~ conf$ ]]
then
echo -n ""
else
echo "path error,please check current path!"
exit 1
fi
echo "currentpath: $VAR"
REP="export JAVA_HOME=${JAVA_HOME}"
`sed -i "/^# export JAVA_HOME=/c$REP" hbase-env.sh`
REP="export HBASE_MANAGES_ZK=false"
`sed -i "/^# export HBASE_MANAGES_ZK/c$REP" hbase-env.sh`
echo "hbase-env.sh has been modified."
echo
echo "Second,we should modify hbase-site.xml..."
TEXT="<property>
<name>hbase.rootdir</name>
<value>hdfs://${HOST_IP}:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.property.clientport</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>${ZOOKEEPER_HOME}/mydata</value>
</property>
"
lines=`echo $TEXT`
for line in $lines
do
VAR=`eval "sed -i '/<\/configuration>/i\$line' hbase-site.xml"`
done
echo "hbase-site.xml has been modified."
echo
echo "Hbase deploy finish!"
9.Sqoop配置
- 拷貝jar包
- *配置sqoop-env.sh
#----------------------sqoop-------------------------
echo
echo "----------------------------------------"
echo "Let's start to deploy sqoop..."
echo "First,we need to copy more .jar to path of lib..."
cd ${SQOOP_HOME}/lib
`eval "pwd>/root/test.log"`
VAR=`cat /root/test.log`
if [[ $VAR =~ lib$ ]]
then
echo -n ""
else
echo "path error,please check current path!"
exit 1
fi
echo "currentpath: $VAR"
`cp /opt/download/hadoop/mysql-connector-java-5.1.32.jar ./`
echo "copy mysql-connector-java-5.1.32.jar to current path success!"
`cp ${HADOOP_HOME}/share/hadoop/common/hadoop-common-2.6.0-cdh5.14.2.jar ./`
echo "copy hadoop-common-2.6.0-cdh5.14.2.jar to current path success!"
`cp ${HADOOP_HOME}/share/hadoop/hdfs/hadoop-hdfs-2.6.0-cdh5.14.2.jar ./`
echo "copy hadoop-hdfs-2.6.0-cdh5.14.2.jar to current path success!"
`cp ${HADOOP_HOME}/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.6.0-cdh5.14.2.jar ./`
echo "copy hadoop-mapreduce-client-core-2.6.0-cdh5.14.2.jar to current path success!"
echo
echo "Second ,we start to modify sqoop.env.sh..."
cd ../conf
`eval "pwd>/root/test.log"`
VAR=`cat /root/test.log`
if [[ $VAR =~ conf$ ]]
then
echo -n ""
else
echo "path error,please check current path!"
exit 1
fi
echo "currentpath: $VAR"
VAR=`ls|grep sqoop-env-template.sh`
echo "We need to copy $VAR one more to modify"
`cp $VAR sqoop-env.sh`
echo "Copy success,next to modify sqoop-env.sh..."
REP="export HADOOP_COMMON_HOME=$HADOOP_HOME"
`sed -i "/^#export HADOOP_COMMON_HOME=/c$REP" sqoop-env.sh`
REP="export HADOOP_MAPRED_HOME=${HADOOP_HOME}/share/common/mapreuce"
`sed -i "/^#export HADOOP_MAPRED_HOME=/c$REP" sqoop-env.sh`
REP="export HBASE_HOME=$HBASE_HOME"
`sed -i "/^#export HBASE_HOME=/c$REP" sqoop-env.sh`
REP="export HIVE_HOME=$HIVE_HOME"
`sed -i "/^#export HIVE_HOME=/c$REP" sqoop-env.sh`
REP="export ZOOCFGDIR=$ZOOKEEPER_HOME"
`sed -i "/^#export ZOOCFGDIR=/c$REP" sqoop-env.sh`
echo "sqoop-env.sh has been modified."
echo
echo "sqoop deploy finish!"
echo
echo "----------------------------------------------"
PS:作者是一枚剛入編程的小白,如果有寫錯或者寫的不好的地方,歡迎各位大佬在評論區留下寶貴的意見或者建議,敬上!如果這篇博客對您有幫助,希望您可以順手幫我點個贊!不勝感謝!
| 原創作者:wsjslient |
| 作者主頁:https://blog.csdn.net/wsjslient |
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/229817.html
標籤:其他
