spark2.0 on mesos1.0.1

最近接触到大数据,帮同事搭建环境。因都是最新版本,中间参考过好多博客,被坑的不要不要的。现将我的部署总结下,供大家参考。

我准备了10台服务器,做的集群。服务器全是阿里云的ecs,系统版本centos6.5 64位,spark2.0 mesos1.0.1

服务器命名规则M00001,M00002....M00008,其中M00001作为mesos的master节点,其他都是slave节点。

M00001的公钥推到其他slave节点。

1.gcc升级到4.8.2

wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2

利用脚本下载依赖的库
cd gcc-4.8.2 
./contrib/download_prerequisites

创建编译目录
mkdir build

编译安装

cd build

../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

make -j4

make install

yum -y install glibc-devel.i686 glibc-devel

完事后,gcc -v看看是否升级成功。

2.系统内核升级

rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

yum --enablerepo=elrepo-kernel install -y kernel-lt

sed -i 's/default=1/default=0/g' /boot/grub/grub.conf

reboot

重启后uname -a 看看系统内科是否升级到3.0以上。

3.安装其他依赖

wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo

yum groupinstall -y "Development Tools"

yum install -y apache-maven python-devel zlib-devel libcurl-devel openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel subversion-devel apr-util-devel


yum install libcgroup
chkconfig cgconfig on
service cgconfig start

还有java环境这个少不了。我用的1.7的。

4.zookeeper安装

在M00001,M00002,M00003上安装zookeeper服务,保障mesos集群的稳定。

tar xvf zookeeper-3.4.6.tar.gz

修改zookeeper的配置文件。

cp /Application/zookeeper/conf/zoo_sample.cfg /Application/zookeeper/conf/zoo.cfg

vim zoo.cfg

server.1=10.45.17.195:2888:3888
server.2=10.45.234.126:2888:3888
server.3=10.45.229.150:2888:3888

将zookeeper推送的M00002和M00003上。

启动zookeeper

/Application/zookeeper/bin/zkServer.sh start

提示缺少myid,创建/tmp/zookeeper/myid

输入id号,3台服务器的id号要连续。

再次启动zookeeper。

5.安装mesos

官方下载mesos安装包,编译过程比较长。

tar xvf mesos-1.0.1.tar.gz
cd mesos-1.0.1
mkdir build
cd build
../configure
make
make install

相关配置修改:

mesos的配置目录在/usr/local/etc/mesos下

master节点配置如下:

vim masters

master节点的ip

vim slaves

slave节点的ip


mesos-master-env.sh

vim mesos-master-env.sh

export MESOS_zk=zk://10.251.177.219:2181,10.163.122.93:2181,10.251.131.33:2181/mesos
export MESOS_quorum=1
export MESOS_log_dir=/var/log/mesos/master
export MESOS_work_dir=/var/run/mesos/master


mesos-slave-env.sh

vim mesos-slave-env.sh

export MESOS_zk=zk://10.251.177.219:2181,10.163.122.93:2181,10.251.131.33:2181/mesos
export MESOS_log_dir=/var/log/mesos
export MESOS_work_dir=/var/run/mesos
export MESOS_switch_user=false
export MESOS_gc_delay=1days


mesos-agent-env.sh
vim mesos-agent-env.sh


export MESOS_master=10.251.177.219:5050
export MESOS_ip=10.251.177.219
export MESOS_port=5051
export MESOS_log_dir=/var/log/mesos
export MESOS_work_dir=/var/run/mesos
export MESOS_logging_level=INFO
export MESOS_isolation=cgroups

slave节点:

将mesos-master-env.sh,mesos-slave-env.sh,mesos-agent-env.sh配置推送到slave节点。


启动mesos

首先保证zookeeper集群启动运行中。

master节点:


nohup /usr/local/sbin/mesos-master --log_dir=/var/log/mesos/master --work_dir=/var/run/mesos/master --cluster=mesos --zk=zk://10.251.177.219:2181,10.163.122.93:2181,10.251.131.33:2181/mesos --quorum=1  >/dev/null 2>&1 &

nohup /Application/mesos-1.0.1/build/bin/mesos-agent.sh --work_dir=/var/run/mesos/ --master=zk://10.251.177.219:2181,10.163.122.93:2181,10.251.131.33:2181/mesos  >/dev/null 2>&1 &


slave节点:

nohup /usr/local/sbin/mesos-slave --log_dir=/var/log/mesos/master --work_dir=/var/run/mesos/master --master=zk://10.251.177.219:2181,10.163.122.93:2181,10.251.131.33:2181/mesos --gc_delay="1days" --switch_user="false" >/dev/null 2>&1 &

启动完成后,可登陆web页面查看集群状态

mesos部署到此结束。

spark部署:

Spark 服务器2 台,S00001,S00002。S00001最为master节点。

1.依赖环境java和scala

vim /etc/profile

export JAVA_HOME=/usr/local/java/jdk1.7.0_80
export JRE_HOME=/usr/local/java/jdk1.7.0_80/jre
export SPARK_HOME=/Application/spark-2.0.0-bin-hadoop2.7
export SCALA_HOME=/usr/local/scala
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin

2.zookeeper复用前面mesos的

3.spark配置文件

master:

vim  spark-env.sh

export SCALA_HOME=/usr/local/scala
export JAVA_HOME=/usr/local/java/jdk1.7.0_80
export MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.so
export MASTER=mesos://zk://10.251.177.219:2181,10.163.122.93:2181,10.251.131.33:2181:2181/mesos
export SPARK_LOCAL_HOSTNAME=`ifconfig eth0 | awk '/inet addr/{print substr($2,6)}'`
export SPARK_EXECUTOR_URI=http://10.251.130.101/spark-2.0.0-bin-hadoop2.7.tgz
export SPARK_LOCAL_IP='0.0.0.0'


vim slaves

添加节点名称

S0002

slave:

vim  spark-env.sh

export SCALA_HOME=/usr/local/scala
export JAVA_HOME=/usr/local/java/jdk1.7.0_80
export MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.so
export MASTER=mesos://zk://10.251.177.219:2181,10.163.122.93:2181,10.251.131.33:2181/mesos
export SPARK_LOCAL_HOSTNAME=`ifconfig eth0 | awk '/inet addr/{print substr($2,6)}'`
export SPARK_EXECUTOR_URI=http://10.251.130.101/spark-2.0.0-bin-hadoop2.7.tgz (注意这里,我直接把spark的包放在nginx上了,mesos直接从这里调用,后期会放到hdfs,这sprak包里面的配置文件只修改spark-env.sh)
export SPARK_LOCAL_IP='0.0.0.0'

4.spark 启动

master:

/Application/spark-2.0.0-bin-hadoop2.7/sbin/start-all.sh

/Application/spark-2.0.0-bin-hadoop2.7/sbin/start-mesos-dispatcher.sh --master mesos://zk://10.251.177.219:2181,10.163.122.93:2181,10.251.131.33:2181/mesos  >/dev/null 2>&1 &

slave:

nohup /Application/spark-2.0.0-bin-hadoop2.7/sbin/start-mesos-dispatcher.sh --master mesos://zk://10.251.177.219:2181,10.163.122.93:2181,10.251.131.33:2181/mesos  >/dev/null 2>&1 &

我个人理解只要一台spark机器提交任务到mesos集群,mesos的salve节点去nginx上下载spark程序到本地解压运行。可spark的master节点无法提交任务,所以有增了一台saprk节点,来提交任务。

差点忘了,mesos的集群要装scala环境,spark最终跑在mesos的机器上。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值