Hadoop(MapR)分布式安裝及自動化腳本配置


  MapR的分布式集群安裝過程還是很艱難的,遠遠沒有計划中的簡單。本人總結安裝配置,由於集群有很多機器,手動每台配置是很累的,編寫了一個自動化配置腳本,下面以腳本為主線敘述(腳本並不完善,后續繼續完善中)。

  編寫腳本需要shell基礎的,還要掌握awk和sed等統計手段為佳。操作系統是CentOS7

  准備:安裝CentOS操作系統並分區

  分區:

  / 50G

  /home 50G

  /boot 500M

  /var 50G

  /swap 8G

  /disk 305G(剩余全部,用於MapR的文件管理系統使用。特別注意,后面需要去掉掛載,reboot后會進入緊急模式,需要在配置里刪掉disk的掛載)

  一 配置IP

  根據公司網絡代理配置Ip,這里注意使用awk,用=划分每一行,根據=前的變量修改=后的變量,輸出到備份文件中;然后替換原有的Ip配置文件,最后重啟網卡。ip在設置前一定要ping一下,不通才可以使用,否則會有ip沖突。

function config_ip(){
NETWORK_PATH=/etc/sysconfig/network-scripts/
ENFILE=`ls $NETWORK_PATH/ifcfg-en*`
IPADDR="10.4.45.211"
NETMASK="255.255.255.0"
GATEWAY="10.4.45.1"
DNS1="210.83.210.155"
TEMP_FILE="ifcfg.temp"

cat $ENFILE | awk -F "=" '{
  if($1=="BOOTPROTO"){
    print $1"=static"
  }
  else if($1=="ONBOOT"){
    print $1"=yes"
  }
  else{
    print $1"="$2
  }
}
' > $TEMP_FILE
echo "IPADDR="$IPADDR >> $TEMP_FILE
echo "NETMASK="$NETMASK >> $TEMP_FILE 
echo "GATEWAY="$GATEWAY >> $TEMP_FILE
echo "DNS1="$DNS1 >> $TEMP_FILE

mv $TEMP_FILE $ENFILE
service network restart
}

  二 配置host文件

  本集群暫時有四台主機,分別為apm1,apm2,apm3和apm4。用相應名稱代替ip,簡化了機器間的通訊。

function config_hosts(){

echo "10.4.45.210    apm1" >> /etc/hosts
echo "10.4.45.211    apm2" >> /etc/hosts
echo "10.4.45.212    apm3" >> /etc/hosts
echo "10.4.45.213    apm4" >> /etc/hosts
}

  三 配置網絡代理

  /etc/profile文件中加入代理配置,但這里是追加到文件尾部了,需要替換到文件頂部。根據自己的代理配置賬戶和密碼。

 

function config_proxy(){
echo "# add by user" >> /etc/profile
echo "setterm -blength 0" >> /etc/profile
echo "export http_proxy=http://sunyandong:Ulic2016@dl-proxy.neusoft.com:8080/" >> /etc/profile
echo "export https_proxy=http://sunyandong:Ulic2016@dl-proxy.neusoft.com:8080/" >> /etc/profile
echo "export ftp_proxy=http://sunyandong:Ulic2016@dl-proxy.neusoft.com:8080/" >> /etc/profile

source /etc/profile

#curl "www.baidu.com"
}

  四 配置本地repo

  repo配置成國內鏡像,可以加快下載速度。

function config_repo(){

WY_REPO=CentOS-163.com.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
cp /mnt/usb/$WY_REPO /etc/yum.repos.d/CentOS-Base.repo
yum clean all
yum makecache
}

  五 下載安裝JDK

  上一步配置好代理后,下面就可以yum下載安裝JDK,vim,和createrepo

function config_software(){
yum install vim
yum install java-1.8.0-openjdk-devel.x86_64
yum install createrepo
}

  六 安裝MapR

  使用MapR的repo,配置安裝MapR相應的服務,包括fileserver,nfs,nodemanager,zookeeper,resourcemanager 和cldb

function config_mapr(){

MAPR_REPO=CentOS-mapr.repo
cp /mnt/usb/$MAPR_REPO /etc/yum.repos.d/maprtech.repo

yum install mapr-fileserver
yum install mapr-nfs
yum install mapr-nodemanager
yum install mapr-zookeeper
yum install mapr-resourcemanager
#yum install mapr-cldb
}

  七 配置env.sh

function config_env(){
bash /opt/mapr/conf/env.sh
}

  以上為腳本的內容,可以完成MapR的大部分自動化配置安裝。

  八 格式化disk,配置結點

  后續完善。。。。。。。

 

  腳本源碼為下:

#!/bin/bash

# config ip address 
function config_ip(){
NETWORK_PATH=/etc/sysconfig/network-scripts/
ENFILE=`ls $NETWORK_PATH/ifcfg-en*`
IPADDR="10.4.45.211"
NETMASK="255.255.255.0"
GATEWAY="10.4.45.1"
DNS1="210.83.210.155"
TEMP_FILE="ifcfg.temp"

cat $ENFILE | awk -F "=" '{
  if($1=="BOOTPROTO"){
    print $1"=static"
  }
  else if($1=="ONBOOT"){
    print $1"=yes"
  }
  else{
    print $1"="$2
  }
}
' > $TEMP_FILE
echo "IPADDR="$IPADDR >> $TEMP_FILE
echo "NETMASK="$NETMASK >> $TEMP_FILE 
echo "GATEWAY="$GATEWAY >> $TEMP_FILE
echo "DNS1="$DNS1 >> $TEMP_FILE

mv $TEMP_FILE $ENFILE
service network restart
}

# config hosts
function config_hosts(){

echo "10.4.45.210    apm1" >> /etc/hosts
echo "10.4.45.211    apm2" >> /etc/hosts
echo "10.4.45.212    apm3" >> /etc/hosts
echo "10.4.45.213    apm4" >> /etc/hosts
}

# config proxy
function config_proxy(){
echo "# add by user" >> /etc/profile
echo "setterm -blength 0" >> /etc/profile
echo "export http_proxy=http://sunyandong:Ulic2016@dl-proxy.neusoft.com:8080/" >> /etc/profile
echo "export https_proxy=http://sunyandong:Ulic2016@dl-proxy.neusoft.com:8080/" >> /etc/profile
echo "export ftp_proxy=http://sunyandong:Ulic2016@dl-proxy.neusoft.com:8080/" >> /etc/profile

source /etc/profile

#curl "www.baidu.com"
}

function config_repo(){

#cp -r /mnt/usb/mapr /home/

# config repo
WY_REPO=CentOS-163.com.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
cp /mnt/usb/$WY_REPO /etc/yum.repos.d/CentOS-Base.repo
yum clean all
yum makecache
}

# config software

function config_software(){
yum install vim
yum install java-1.8.0-openjdk-devel.x86_64
yum install createrepo

}

# mapr repo
function config_mapr(){
#cp /mnt/usb/mapr/* /home/apm2/mapr
#createrepo /mnt/usb/mapr
MAPR_REPO=CentOS-mapr.repo
cp /mnt/usb/$MAPR_REPO /etc/yum.repos.d/maprtech.repo

#rpm --import http://package.mapr.com/releases/pub/maprgpg.key

yum install mapr-fileserver
yum install mapr-nfs
yum install mapr-nodemanager
yum install mapr-zookeeper
yum install mapr-resourcemanager
#yum install mapr-cldb
}

function config_env(){
bash /opt/mapr/conf/env.sh
}

# main
config_repo
config_software
config_mapr
#config_ip
#config_hosts
#config_proxy

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM