您的位置:首页 > 编程语言 > Java开发

自动化脚本腾讯云配置集群(四)自动化安装从节点的JDK+Hadoop

2017-09-02 23:07 525 查看
在大规模集群中直接自动化安装软件JDK和Hadoop,效率是可想而知的。

这一部分紧接之前3个部分的环境配置,完成jdk和hadoop的安装,这样hadoop大规模集群算是完成了。

本小节的步骤较多,但并不复杂:

》首先准备好要分发到从节点的文件,包含以下三个文件:

软件包(*tar.gz)+环境变量设置文本(*env)+从节点上执行的脚本(.sh)

脚本文件会在各个从节点上运行,其功能主要是解压软件包,并将软件的环境变量配置添加入当前节点的~/.bashrc文件中。





1.jdk.sh

#!bin/bash
tar -zxvf ~/myscript/jdk/jdk-8u131-linux-x64.tar.gz -C ~/
mv ~/jdk1.8.0_131 ~/jdk1.8

cat ~/myscript/jdk/jdkenv >> ~/.bashrc
source ~/.bashrc


2.jdkenv

# java Env
export JAVA_HOME=~/jdk1.8
export JRE_HOME=~/jdk1.8/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib


3.hadoop.sh

#!bin/bash
tar -zxvf ~/myscript/hadoop/hadoop-2.6.0.tar.gz -C ~/

cat ~/myscript/hadoop/hadoopenv >> ~/.bashrc
source ~/.bashrc


4.hadoopenv

# Hadoop Env
export HADOOP_HOME=~/hadoop-2.6.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH


》主节点上操纵从节点执行上述的脚本文件,完成该功能的脚本jdk_hadoop.sh,改文件存在于主节点中,直接在主节点中执行改文件,即可完成自动化在各个从节点上解压文件并更新用户的环境变量。

主要过程:

对slavenodes(解释见前几部分博文)中的各个从节点,创建相应的文件夹,再使用rsync命令将之前所述的三类文件分发到各个从节点的相应文件夹中,最后,则直接控制执行从节点文件夹中的脚本文件即可。

#!bin/bash
nodes=($(awk "{print \$1}" slavenodes))
for node in ${nodes[*]}
do
ssh $node "mkdir -p /home/ubuntu/myscript/jdk/"
ssh $node "mkdir -p /home/ubuntu/myscript/hadoop/"

rsync -r --progress ~/myscript/jdk/ ubuntu@$node:/home/ubuntu/myscript/jdk/
rsync -r --progress ~/myscript/hadoop/ ubuntu@$node:/home/ubuntu/myscript/hadoop/

ssh $node "bash /home/ubuntu/myscript/jdk/jdk.sh"
ssh $node "bash /home/ubuntu/myscript/hadoop/hadoop.sh"
done


》最后则是配置hadoop的conf相关文件,具体修改的hadooppath/etc/hadoop/路径下的相关文件,具体修改内容,请参考https://my.oschina.net/jackieyeah/blog/657750。先在主节点上将这些文件修改后,再利用脚本将修改后的文件直接分发到从节点即可。

#!bin/bash
#完成hadoop/etc/hadoop/下的所有配置文件设置后,将配置文件分发到slave节点上
nodes=($(awk "{print \$1}" slavenodes))
for node in ${nodes[*]}
do
#   重新格式化主节点并重启时,需要将datanode中hadoop下的tmp和logs文件清空或直接删除。
#   ssh $node "rm -r /home/ubuntu/hadoop-2.6.0/tmp"
#   ssh $node "rm -r /home/ubuntu/hadoop-2.6.0/logs"

#  分发配置文件
rsync -r --progress ~/hadoop-2.6.0/etc/hadoop/ zhangtao@$node:/home/ubuntu/hadoop-2.6.0/etc/hadoop/
done

#开启集群
#hadoop namenode -format
# start-all.sh
#开启JobHistoryServer进程
# mr-jobhistory-daemon.sh start historyserver
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: