Spark随谈(二)—— 安装攻略

简介:

本来安装这件事情,不用单独开一篇谈的。但是Spark的安装实在是一件点蛋疼的事情,这和Spark的语言和框架两者有颇大的关系。

Spark是Scala语言写的,所以要先安装Java和Scala,而底层的调度框架是Mesos,Mesos是C++写的,所以又对机器的glibc和gcc环境有一定的要求。装好了Mesos和Spark,还要把2者衔接起来,版本要选择正确,这几个步骤,中间任何一步错了都Spark都不能以集群方式正常运行,所以Spark的安装,还是颇有点周折的,在这里把完整的过程记录下来,包括mesos 0.9的安装过程,希望后来者尽量不需要掉坑里。

本攻略基于版本是Spark 0.5 和Mesos 0.9,服务器是Redhat Enterprise 6.1 32位,其它服务器的命令可能会稍微有所区别

  1. 安装Spark
  2. 安装Mesos
  3. 启动Mesos
  4. 启动Spark On Mesos
  5. 集群部署
    1、安装Spark

1.1 安装Java

推荐版本是JDK1.6.0 u18,具体下载安装过程就不说了,最后一定要设定JAVA_HOME,这个是后面步骤,尤其是mesos安装必须

 

1.2 安装Scala

 

1.3 安装Spark

 
至此,Spark的基本安装已经完毕,可以尝试用本地模式运行
 
看到正确的Pi结果,表示Spark安装第一步完成,本地模式运行OK ## **2、安装Mesos** Mesos 0.9安装,必须具备下列条件: glibc 2.9(必须2.9以上) gcc-c++ 4.1 python 2.6 python-devel cppunit-devel libtool Redhat 6上述条件基本上已经具备了,Redhat 5的话,glibc有可能低于2.5,必须升级,才能完成mesos的编译安装,否则就别折腾了,洗洗睡吧 :)
 
祈祷吧,一切顺利的话,mesos就会被安装到/usr/local/mesos下,最后关键一步,设置MESOS_HOME
 

3、启动Mesos

手工模式启动:

3.1 启动Master

cd /usr/local/mesos
(sbin/mesos-master –log_dir=/usr/local/mesos/logs & ) &

出现下面的提示Master就成功

Starting Mesos master
Master started on :5050
Master ID: 

Elected as master!
Loading webui script at ‘/usr/local/new_mesos/share/mesos/webui/master/webui.py’
Bottle server starting up (using WSGIRefServer())…
Listening on http://0.0.0.0:8080/
Use Ctrl-C to quit.

3.2 启动Slave

(sbin/mesos-slave -m 127.0.0.1:5050 –log_dir=/home/andy/mesos/logs –work_dir=/home/andy/mesos/works & ) &

使用–resources=”mem:20240;cpus:10”参数,可以根据具体的机器情况,指定分配的资源

Starting Mesos slave
Slave started on :42584
Slave resources: cpus=16; mem=23123
New master detected at master@
:5050
Registered with master; given slave ID *
Loading webui script at ‘/usr/local/new_mesos/share/mesos/webui/slave/webui.py’
Bottle server starting up (using WSGIRefServer())…
Listening on http://0.0.0.0:8081/
Use Ctrl-C to quit.

4、启动Spark On Mesos

好了,终于来到最关键的一步了,在Mesos上运行Spark,要把Spark和Mesos连接到一起了。Spark是披着Scala外衣的Java,Mesos是C++,他们的通道,不可避免的就是JNI

配置的关键是Spark的配置文件,Spark带了样例文件conf/spark-env.sh.template,并有详细的解释,根据我们之前的安装路径,参考该文件,配置如下:

 

#新版本的配置项,直接指定libmesso.so的位置,该so和spark目录下的mesos-0.9.0.jar必须一致,是spark和mesos沟通的关键
export MESOS_NATIVE_LIBRARY=/usr/local/mesos/lib/libmesos.so

#旧版本的配置项,其它的so,目前看来不需要了
export SPARK_LIBRARY_PATH=/usr/local/mesos/lib

#自定义的程序jar包,可以放在该目录下
export SPARK_CLASSPATH=…

#保持与系统的SCALA_HOME一致
export SCALA_HOME=/usr/share/scala

#必须小于或者等于Slave中的mem,Slave resources: cpus=16; mem=23123

#本地模式下,运行大任务也需要修改该参数,默认是512m,很小
export SPARK_MEM=10g
好了,一切就绪之后,尝试运行下面的命令:

 

如果你再次成功的看到Pi值,恭喜,Spark的安装又成功了一步

参考资料

  1. Running Spark on Mesos · mesos/spark Wiki · GitHub
  2. Mesos安装详解(RedHat 6.1) - lisperl - 博客园
  3. MESOS–安装,配置,启动
本文来源于"阿里中间件团队播客",原文发表时间"  2012-06-13 "
相关文章
|
1月前
|
分布式计算 Hadoop 大数据
安装Spark
安装Spark
34 0
|
5月前
|
分布式计算 Linux Spark
179 Spark集群安装
179 Spark集群安装
36 0
|
4月前
|
消息中间件 分布式计算 大数据
【大数据技术Hadoop+Spark】Flume、Kafka的简介及安装(图文解释 超详细)
【大数据技术Hadoop+Spark】Flume、Kafka的简介及安装(图文解释 超详细)
68 0
|
分布式计算 资源调度 Hadoop
十二、Spark的安装与部署详情(Local模式,Standalone模式,Spank on YARN模式)
十二、Spark的安装与部署详情(Local模式,Standalone模式,Spank on YARN模式)
十二、Spark的安装与部署详情(Local模式,Standalone模式,Spank on YARN模式)
|
2天前
|
分布式计算 Hadoop Scala
Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)
【4月更文挑战第13天】Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)
5 0
|
1月前
|
分布式计算 Spark
Spark【Spark学习大纲】简介+生态+RDD+安装+使用(xmind分享)
【2月更文挑战第14天】Spark【Spark学习大纲】简介+生态+RDD+安装+使用(xmind分享)
31 1
|
4月前
|
分布式计算 资源调度 Java
Hadoop学习笔记(HDP)-Part.17 安装Spark2
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
41 0
Hadoop学习笔记(HDP)-Part.17 安装Spark2
|
5月前
|
分布式计算 Java Apache
window环境下安装spark
window环境下安装spark
129 0
|
8月前
|
分布式计算 Hadoop Linux
基于Linux的Spark安装与环境配置
基于Linux的Spark安装与环境配置
452 0
|
10月前
|
JSON 分布式计算 大数据
【大数据学习篇5】 Spark安装实验
【大数据学习篇5】 Spark安装实验
110 0