spark+mesos安装运行

之前配置了spark的standalone模式,直接按照官方的文档没有遇到错误。后来在mesos安装了spark,安装模式记录如下:

先说下环境,之前在suse上安装没有成功,报错包括java类找不到(实际上jar包能找到这个类,没找到原因。);还有个错误是java虚拟机运行的时候段错误(SIGSEGV)。后来换了centos安装成功的。

环境:

CentOS6.4

jdk1.7.0_55

spark0.9.1(自动安装scala2.10)

mesos 0.18.0

 

1.      安装jdk

(http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html)

官网下载和系统相应的jdk包,我将java的安装目录放在了/usr/local/java下,创建该目录,并将下载的jdk包解压到该目录下,并且解压出来的目录重命名为jdk。如图:


最后修改环境变量,修改文件/etc/profile,

         注释掉exportPATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL这一行,并在这一行之后加入java的环境变量

export JAVA_HOME=/usr/local/java/jdk

export PATH=$JAVA_HOME/bin:$PATH

exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar

如图:


之后执行source /etc/profile 命令,使新的环境变量生效即可

之后可以执行java –version,若显示出java的版本号,则java安装成功。

2.      安装mesos(参考http://mesos.apache.org/gettingstarted/

a.wget http://www.apache.org/dist/mesos/0.18.0/mesos-0.18.0.tar.gz使用wget命令下载源码包,或者到官网下载源码,http://mesos.apache.org/downloads/下载mesos源码

 

b.mesos是用C++编写的,新安装的centos系统,执行yum groupinstall "Development Tools" 命令,安装编译环境

 

c.安装一些需要的包yum install python-devel zlib-devel libcurl-devel cyrus-sasl-devel

 

d.解压下载的压缩包,进入目录,创建编译目录(mkdir build),进入build目录(cd build)e. 执行../configure 进行配置

f. 执行 make 编译

g. 执行make install安装

 

经过上面7步,mesos成功安装,下面是mesos的启动,只需要执行相应的脚本即可

我使用了三台机器:192.168.1.55(master),192.168.1.56(slave),192.168.1.77(slave)

启动master:在编译的目录(build)下,有一个bin目录,执行脚本./bin/mesos-master.sh –ip=192.168.1.55

启动slave:在相应机器的相同路径下,执行脚本./bin/mesos-slave.sh –master=192.168.1.55:5050

 

如果连接成功,那么就安装成功了,可以在web上输入192.168.1.55:5050,观察整个mesos的状态。

 当slave启动连接时遇到了一个错误,在master中显示该slave节点不停的注册,解决方法是在slave节点上修改hosts文件,将本机的hostname和ip对应的写入,例如本机的ip是192.168.1.77,主机名为node77,则在hosts文件中加入一行

192.168.1.77 node77

此外需要注意把防火墙关掉

问题解决。

 

3.      安装spark(参考http://spark.apache.org/docs/latest/index.html 和

http://spark.apache.org/docs/latest/running-on-mesos.html)

http://spark.apache.org/downloads.html下载spark源码

 

解压源码包,这里需要注意一个问题,如果需要使用HDFS,必须修改project目录下的SparkBuild.scala中的HDFS中的版本,因为不同版本的HDFS的接口不一样,修改了之后,就执行sbt/sbt assembly进行编译了。自己没有使用HDFS所以就使用的默认的1.0.4版本,值得一提的是,本人使用2.2.0编译的时候,后来执行的时候存在刚开始说的SIGSEGV错误。没有解决。(只需要在一台机器上编译即可,本人是在192.168.1.55上编译的)

执行了sbt/sbt assembly后,可以先执行下例子,看是否编译成功。./bin/run-example org.apache.spark.examples.SparkPi local  如果成功生成了Pi的值,就说明成功了。

 

下面需要把编译成功的库分发到slave机器上

执行./make-distribution.sh 生成dist目录

重命名dist目录并打包  mv dist spark-0.9.1    tar czf spark-0.9.1.tar.gz spark-0.9.1

然后将压缩包复制到两个slave中,解压到和master相同的目录结构下

 

修改master中/conf/spark-env.sh文件

添加如下几行

exportMESOS_NATIVE_LIBRARY=/usr/local/lib/libmesos.so

exportSPARK_EXECUTOR_URI=/home/yushiyao/spark

export MASTER=mesos://192.168.1.55:5050

第一行设定mesos的库文件路径

第二行设定分发到slave上spark库的路径

最后一行设定任务到的默认的master

 

最后执行./bin/run-example org.apache.spark.examples.SparkPi mesos://192.168.1.55:5050如果执行成功,显示出Pi的值,就说明整个系统编译执行成功了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值