CentOS-6安裝mesos+marathon+zookeeper

前期準備

關閉SELinux

sudo vi /etc/selinux/config

將SELINUX=enforcing修改爲SELINUX=disabled重啓生效

關閉防火牆

sudo service iptables stop

配置hosts

sudo vi /etc/hosts

/etc/hosts內容:

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.245.227 iot-node1
192.168.245.228 iot-node2
192.168.245.229 iot-node3

安裝java

1)卸載CentOS自帶的OpenJDK

sudo rpm -e --nodeps $(sudo rpm -qa | grep java)

sudo rpm -e --nodeps $(sudo rpm -qa | grep gcj)

sudo rpm -e --nodeps $(sudo rpm -qa | grep jdk)

2)用cd命令進入到jdk-8u181-linux-x64.tar.gz所在目錄,執行以下命令

sudo tar -zxf jdk-8u181-linux-x64.tar.gz -C /opt

sudo mv /opt/jdk1.8.0_181 /opt/java

3)配置環境變量

sudo vi /etc/profile

在/etc/profile的最後加入以下幾行:

JAVA_HOME=/opt/java
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin

4)使環境變量生效

source /etc/profile

5)設置java軟連接

sudo ln -sf /opt/java/bin/java /usr/bin/java

sudo ln -sf /opt/java/bin/javac /usr/bin/javac

sudo ln -sf /opt/java/bin/javaws /usr/bin/javaws

如果/usr/bin目錄已存在java、javaws,刪除/usr/bin目錄下的java、javaws

然後執行上面的命令

離線安裝zookeeper

下載地址

http://mirrors.hust.edu.cn/apache/zookeeper/

安裝包

zookeeper-3.4.13.tar.gz

安裝zookeeper

1)進入到zookeeper-3.4.13.tar.gz所在目錄

執行解壓命令:

sudo tar -zxf zookeeper-3.4.13.tar.gz -C /opt

2)修改文件夾名稱:

sudo mv /opt/zookeeper-3.4.13 /opt/zookeeper

3)創建文件夾:

sudo mkdir /opt/zookeeper/data

sudo mkdir /opt/zookeeper/logs

配置zookeeper

1)每個master節點設置不同的myid值

在/opt/zookeeper/data/myid中寫入一個1到255範圍的數值,需要注意的是,每個節點的myid不要重複。

sudo vi /opt/zookeeper/data/myid

這裏將3個master節點的myid分別設置爲:1,2,3

2)修改配置:

sudo cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg

sudo vi /opt/zookeeper/conf/zoo.cfg

修改dataDir=/var/lib/zookeeper爲dataDir=/opt/zookeeper/data

在配置文件/opt/zookeeper/conf/zoo.cfg中加入下面內容:

server.1= iot-node1:2888:3888
server.2= iot-node2:2888:3888
server.3= iot-node3:2888:3888

注意:iot-node1、iot-node2、iot-node3位主節點主機名

server.後的數字對應myid的內容

3)修改zookeeper日誌路徑

sudo vi /opt/zookeeper/bin/zkEnv.sh

找到以下爲內容:

if [ “x${ZOO_LOG_DIR}” = “x” ]
then
ZOO_LOG_DIR="."
fi

修改爲:

if [ “x${ZOO_LOG_DIR}” = “x” ]
then
ZOO_LOG_DIR="" $ZOOBINDIR/…/logs
fi

註冊zookeeper服務

1)新建一個zookeeper腳本

sudo touch /etc/rc.d/init.d/zookeeper

2)給腳本添加執行權限

sudo chmod +x /etc/rc.d/init.d/zookeeper

3)編輯/etc/rc.d/init.d/zookeeper

sudo vi /etc/rc.d/init.d/zookeeper
/etc/rc.d/init.d/zookeeper內容:
#!/bin/bash
#chkconfig:2345 20 90
#description:zookeeper
#processname:zookeeper
export JAVA_HOME=/opt/java
case $1 in
start) sudo /opt/zookeeper/bin/zkServer.sh start;;
stop) sudo /opt/zookeeper/bin/zkServer.sh stop;;
status) sudo /opt/zookeeper/bin/zkServer.sh status;;
restart) sudo /opt/zookeeper/bin/zkServer.sh restart;;
*) echo “require start|stop|status|restart” ;;
esac

啓動/停止/查看zookeeper

sudo service zookeeper start

sudo service zookeeper stop

sudo service zookeeper status

設置zookeeper開機自啓

sudo chkconfig zookeeper on

查看開機自啓服務

sudo chkconfig --list

離線安裝mesos

下載地址

https://open.mesosphere.com/downloads/mesos/

安裝包

mesos-1.6.1-2.0.1.el6.x86_64.rpm

依賴包

apr-util-1.3.9-3.el6_0.1.x86_64.rpm
apr-util-1.3.9-3.el6_0.1.x86_64.rpm
cyrus-sasl-md5-2.1.23-15.el6_6.2.x86_64.rpm
gnutls-2.12.23-22.el6.x86_64.rpm
libevent-1.4.13-4.el6.x86_64.rpm
libevent-devel-1.4.13-4.el6.x86_64.rpm
libevent-doc-1.4.13-4.el6.noarch.rpm
libevent-headers-1.4.13-4.el6.noarch.rpm
libproxy-0.3.0-10.el6.x86_64.rpm
libproxy-bin-0.3.0-10.el6.x86_64.rpm
libproxy-python-0.3.0-10.el6.x86_64.rpm
neon-0.29.3-3.el6_4.x86_64.rpm
pakchois-0.4-3.2.el6.x86_64.rpm
perl-URI-1.40-2.el6.noarch.rpm
subversion-1.6.11-15.el6_7.x86_64.rpm

安裝mesos

進入到mesos安裝包和依賴包所在目錄執行命令:

sudo rpm -ivh *.rpm

配置mesos-master

1)每個master節點的/etc/mesos/zk配置文件中設置zk的地址

sudo vi /etc/mesos/zk

/etc/mesos/zk內容:

zk:// iot-node1:2181, iot-node2:2181, iot-node3:2181/mesos

2)/etc/mesos-master/quorum中設置quorum值

sudo vi /etc/mesos-master/quorum

這個值要大於master數/2,這裏master數爲3,則要設爲2

3)配置ip、hostname、port

sudo vi /etc/mesos-master/ip

/etc/mesos-master/ip內容爲當前宿主機IP

sudo vi /etc/mesos-master/hostname

/etc/mesos-master/ hostname也配置當前宿主機IP

注意:hostname如果配置主機名,web ui會出現不停地彈出對話框,“Failed to connect to 192.168.245.227:5050",進行重新連接

也可以修改/etc/default/mesos-master

sudo vi /etc/default/mesos-master

顯示內容:

PORT=5050

ZK=`cat /etc/mesos/zk`

配置mesos-slave

1)每個master節點的/etc/mesos/zk配置文件中設置zk的地址

sudo vi /etc/mesos/zk

/etc/mesos/zk內容:

zk:// iot-node1:2181, iot-node2:2181, iot-node3:2181/mesos

3)配置ip、hostname

sudo vi /etc/mesos-slave/ip

/etc/mesos- slave/ip內容爲當前宿主機IP

sudo vi /etc/mesos- slave/hostname

/etc/mesos- slave/hostname也配置當前宿主機IP

注意:hostname如果配置主機名,web ui會出現不停地彈出對話框,“Failed to connect to 192.168.245.227:5050",進行重新連接

4)修改mesos容器端口範圍

mesos默認容器端口範圍是31000 - 32000

sudo vi /etc/mesos-slave/resources

/etc/mesos-slave/resources內容:

ports(*):[1024-65534]

也可以在mesos-slave啓動命令後加上:

–resources=ports(*):[1024-65534]

注意:mesos- slave可與marathon、mesos-master安裝在同一個宿主機

其他

1)幾個配置啓動參數的目錄:

/etc/mesos-master/
/etc/mesos-slave/
/etc/marathon/conf/

在這些目錄分別用來配置mesos-master,mesos-slave,marathon的啓動參數。以參數名爲文件名,參數值爲文件內容即可。

2)Failed to perform recovery: Incompatible agent info detected.問題解決

sudo rm -rf /var/log/mesos/*

sudo rm -rf /var/lib/mesos/meta/slaves/*

重啓mesos-slave

3)上面三條命令可重複執行,知道ui上不在報Failed to perform recovery:

Incompatible agent info detected.問題

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

離線安裝marathon

下載地址

http://mesosphere.github.io/marathon/

安裝包

marathon-1.6.322.tgz

安裝marathon

1)進入到marathon-1.6.322.tgz所在目錄

執行解壓命令:

sudo tar -zxf marathon-1.6.322.tgz -C /opt

2)修改文件夾名稱:

sudo mv /opt/marathon-1.6.322-2bf46b341 /opt/marathon

配置marathon

1)創建文件夾

sudo mkdir /opt/marathon/logs

sudo mkdir /etc/marathon

2)配置zookeeper地址

sudo vi /etc/marathon/zk

/etc/marathon/zk內容:

zk://iot-node1:2181,iot-node2:2181,iot-node3:2181/marathon

3)配置mesos用戶

sudo vi /etc/marathon/mesos_user

/etc/marathon/mesos_user內容:

hadoop

4)編輯啓動腳本

sudo vi /opt/marathon/bin/marathon-server

/opt/marathon/bin/marathon-server內容:

MARATHON_MASTER=`cat /etc/mesos/zk`
MARATHON_ZK=`cat /etc/marathon/zk`
MARATHON_MESOS_USER=`cat /etc/marathon/mesos_user`

nohup /usr/sbin/marathon --master $MARATHON_MASTER --zk $MARATHON_ZK
–mesos_user $MARATHON_MESOS_USER > /opt/marathon/logs/marathon.out 2>&1
&

註冊marathon服務

1)新建一個marathon腳本

sudo touch /etc/rc.d/init.d/marathon

2)給腳本添加執行權限

sudo chmod +x /etc/rc.d/init.d/marathon

3)編輯/etc/rc.d/init.d/marathon

sudo vi /etc/rc.d/init.d/marathon

/etc/rc.d/init.d/marathon內容:

#!/bin/bash
#chkconfig:2345 20 90
#description:marathon
#processname:marathon
#start marathon
start() {
pid=$(ps -ef | grep marathon | grep mesosphere | grep -v grep | awk ‘{print
$2}’)
if [ “$pid” == “” ]; then
sudo /opt/marathon/bin/marathon-server
fi
pid=$(ps -ef | grep marathon | grep mesosphere | grep -v grep | awk ‘{print
$2}’)
echo “marathon (pid “$pid”) is started”
}
#stop marathon
stop(){
pid=$(ps -ef | grep marathon | grep mesosphere | grep -v grep | awk ‘{print
$2}’)
if [ “$pid” != “” ]; then
sudo kill -9 $pid
fi
echo “marathon (pid “$pid”) is stopped”
}
#look status
status(){
pid=$(ps -ef | grep marathon | grep mesosphere | grep -v grep | awk ‘{print
$2}’)
if [ “$pid” != “” ]; then
echo “marathon (pid “$pid”) is running”
else
echo “marathon is not running”
fi
}
#restart marathon
restart(){
stop
start
}
case $1 in
start) start ;;
stop) stop ;;
status) status ;;
restart) restart ;;
*) echo “require start|stop|status|restart” ;;
esac

啓動/停止/查看marathon

sudo service marathon start

sudo service marathon stop

sudo service marathon status

設置marathon開機自啓

sudo chkconfig marathon on

查看開機自啓服務

sudo chkconfig --list

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章