hb.sh:
功能:创建配置文件。
需要改动的有:
backup-masters
regionservers
hbase-site.xml
hbase-env.sh
hadoop-common-2.7.4.jar
hdfs-site.xml
core-site.xml
其中:
backup-masters放置备用的master的host
regionservers放置对应的host
hbase-env.sh里要改动JAVA_HOME及ZK不用自带的hbase-site.xml里配置roor.dir为HDFS的集群名称,quorum的host,zk信息存放文件,临时文件
其他三个配置要从hadoop相应的位置拷过来。
以下是详细脚本:
DIR_DEFAULT="/opt/hbase/hbase-1.3.1/conf/"
FILENAME2=$1ZKNODES=""
NNCOUNT=0
for iphost in `cat $FILENAME2`
do
if [ -z "$iphost" ];
then continue
fi
echo $iphost
serverinfo=$iphost
HOST=`echo $serverinfo | awk -F',' '{print $2}'`
NODETYPE=`echo $serverinfo | awk -F',' '{print $5}'`
if [ "$NODETYPE" = "ZK" ] ;then
ZKNODES=$ZKNODES""$HOST","
echo $ZKNODES $HOST
elif [ "$NODETYPE" = "NN" ] ;then
echo $HOST
let NNCOUNT+=1
if [ $NNCOUNT = 2 ];then
backmaster="$HOST""\n"
echo -e $backmaster>$DIR_DEFAULT/"backup-masters"
else
slaves="$slaves""$HOST""\n"
echo $HOST
fi
done
ZKNODES_STR=`echo $ZKNODES |sed '$ s/.$//'`
echo $ZKNODES_STR
echo -e $slaves >$DIR_DEFAULT/"regionservers"
FILEN="/opt/hbase/hbase-1.3.1/conf/hbase-site.xml"
(cat <<DATA
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>$ZKNODES_STR</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/hbase/hbase-1.3.1/zk/data</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/opt/hbase/hbase-1.3.1/tmp</value>
</property>
</configuration>
DATA
) > $FILEN
echo "start install hbase....."
TAR_PATH=/opt/tars
SH_PATH=/opt/scripts
CFG_PATH=/opt/config
FILENAME=$1
if [ "$1" = '' ];
then exit;
fi
cat $FILENAME
SSHPASS=/opt/tools/sshpass
for iphost in `cat $FILENAME`
do
if [ -z "$iphost" ];
then continue
fi
echo $iphost
serverinfo=$iphost
IP=`echo $serverinfo | awk -F',' '{print $1}'`
USER=`echo $serverinfo | awk -F',' '{print $3}'`
PAWD=`echo $serverinfo | awk -F',' '{print $4}'`
HOST=`echo $serverinfo | awk -F',' '{print $2}'`
NODETYPE=`echo $serverinfo | awk -F',' '{print $5}'`
echo $IP
echo $PAWD
echo $USER
echo $HOST
echo $NODETYPE
if [ "$NODETYPE" = "NN" ] || [ "$NODETYPE" = "DN" ];then
$SSHPASS -p "$PAWD" ssh "$USER"@"$IP" "if ! [ -e /opt/tars ] ;then mkdir /opt/tars;fi"
$SSHPASS -p "$PAWD" ssh "$USER"@"$IP" "if ! [ -e /opt/config ] ;then mkdir /opt/config;fi"
$SSHPASS -p "$PAWD" scp $TAR_PATH/hbase-1.3.1-bin.tar.gz "$USER"@"$IP":$TAR_PATH/
$SSHPASS -p "$PAWD" ssh "$USER"@"$IP" "if [ -e /opt/scripts ] ;then rm -fr /opt/scripts;mkdir /opt/scripts;fi"
$SSHPASS -p "$PAWD" scp -r $SH_PATH "$USER"@"$IP":/opt/
$SSHPASS -p "$PAWD" scp -r $CFG_PATH "$USER"@"$IP":/opt/
$SSHPASS -p "$PAWD" ssh "$USER"@"$IP" "if [ -e /opt/hbase ] ;then rm -fr /opt/hbase;fi;mkdir /opt/hbase;"
$SSHPASS -p "$PAWD" ssh "$USER"@"$IP" "tar -zxvf $TAR_PATH/hbase-1.3.1-bin.tar.gz -C /opt/hbase"
$SSHPASS -p "$PAWD" ssh "$USER"@"$IP" "if [ -e /opt/hbase/hbase-1.3.1/zk ] ;then mkdir /opt/hbase/hbase-1.3.1/zk;fi"
$SSHPASS -p "$PAWD" ssh "$USER"@"$IP" "if [ -e /opt/hbase/hbase-1.3.1/zk/data ] ;then mkdir /opt/hbase/hbase-1.3.1/zk/data;fi"
$SSHPASS -p "$PAWD" ssh "$USER"@"$IP" "if [ -e /opt/hbase/hbase-1.3.1/tmp ] ;then mkdir /opt/hbase/hbase-1.3.1/tmp;fi"
$SSHPASS -p "$PAWD" ssh "$USER"@"$IP" "sed -i 's/#\s.*export\s*JAVA_HOME.*$/export JAVA_HOME=\/opt\/java\/jdk1.8.0_144\//' /opt/hbase/hbase-1.3.1/conf/hbase-env.sh"
$SSHPASS -p "$PAWD" ssh "$USER"@"$IP" "sed -i 's/#\s.*export\s*HBASE_MANAGES_ZK.*$/export HBASE_MANAGES_ZK=false/' /opt/hbase/hbase-1.3.1/conf/hbase-env.sh"
$SSHPASS -p "$PAWD" ssh "$USER"@"$IP" "cp /opt/hadoop/hadoop-2.7.4/etc/hadoop/hdfs-site.xml /opt/hbase/hbase-1.3.1/conf/"
$SSHPASS -p "$PAWD" ssh "$USER"@"$IP" "cp /opt/hadoop/hadoop-2.7.4/etc/hadoop/core-site.xml /opt/hbase/hbase-1.3.1/conf/"
$SSHPASS -p "$PAWD" ssh "$USER"@"$IP" "cp /opt/hadoop/hadoop-2.7.4/share/hadoop/common/hadoop-common-2.7.4.jar /opt/hbase/hbase-1.3.1/lib/"
$SSHPASS -p "$PAWD" ssh "$USER"@"$IP" "/opt/scripts/hb.sh /opt/config/hs.txt"
fi
done