设为首页 收藏本站
查看: 1551|回复: 0

[经验分享] Spark随谈(二)—— 安装攻略

[复制链接]

尚未签到

发表于 2019-1-30 13:42:41 | 显示全部楼层 |阅读模式
  本来安装这件事情,不用单独开一篇谈的。但是Spark的安装实在是一件点蛋疼的事情,这和Spark的语言和框架两者有颇大的关系。
  Spark是Scala语言写的,所以要先安装Java和Scala,而底层的调度框架是Mesos,Mesos是C++写的,所以又对机器的glibc和gcc环境有一定的要求。装好了Mesos和Spark,还要把2者衔接起来,版本要选择正确,这几个步骤,中间任何一步错了都Spark都不能以集群方式正常运行,所以Spark的安装,还是颇有点周折的,在这里把完整的过程记录下来,包括mesos0.9的安装过程,希望后来者尽量不需要掉坑里。
  本攻略基于版本是Spark0.5和Mesos0.9,服务器是RedhatEnterprise6.132位,其它服务器的命令可能会稍微有所区别

  •   安装Spark
  •   安装Mesos
  •   启动Mesos
  •   启动SparkOnMesos
  •   集群部署
  1、安装Spark
1.1安装Java
  推荐版本是JDK1.6.0u18,具体下载安装过程就不说了,最后一定要设定JAVA_HOME,这个是后面步骤,尤其是mesos安装必须
export JAVA_HOME=/usr/java/jdk
export PATH=$JAVA_HOME/bin:$PATH  1.2安装Scala
wget http://www.scala-lang.org/downloads/distrib/files/scala-2.9.2.tgz
tar xvf scala-2.9.2.tgz
mkdir /usr/share/scala
cp -r scala-2.9.2/* /usr/share/scala
export SCALA_HOME=/usr/share/scala
export PATH=$PATH:$SCALA_HOME/bin/  1.3安装Spark
wget -O mesos-spark-v0.5.0-0.tar.gz https://github.com/mesos/spark/tarball/v0.5.0
tar -xzvf mesos-spark-v0.5.0-0.tar.gz
mv mesos-spark-0472cf8 spark
cd spark
sbt/sbt compile  至此,Spark的基本安装已经完毕,可以尝试用本地模式运行
./run spark.examples.SparkPi local  看到正确的Pi结果,表示Spark安装第一步完成,本地模式运行OK
2、安装Mesos
  Mesos0.9安装,必须具备下列条件:
glibc2.9(必须2.9以上)
gcc-c++4.1
python2.6
python-devel
cppunit-devel
libtool
  Redhat6上述条件基本上已经具备了,Redhat5的话,glibc有可能低于2.5,必须升级,才能完成mesos的编译安装,否则就别折腾了,洗洗睡吧:)
wget http://people.apache.org/~benh/mesos-0.9.0-incubating-RC3/mesos-0.9.0-incubating.tar.gz
tar zxvf mesos-0.9.0-incubating.tar.gz
cd mesos-0.9.0
mkdir build
cd build
../configure --with-python-headers=/usr/include/python2.6 --with-java-home=$JAVA_HOME --with-java-headers=$JAVA_HOME/include --with-webui --with-included-zookeeper --prefix=/usr/local/mesos
make
make install  祈祷吧,一切顺利的话,mesos就会被安装到/usr/local/mesos下,最后关键一步,设置MESOS_HOME
export MESOS_HOME=/usr/local/mesos3、启动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-m127.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、启动SparkOnMesos
  好了,终于来到最关键的一步了,在Mesos上运行Spark,要把Spark和Mesos连接到一起了。Spark是披着Scala外衣的Java,Mesos是C++,他们的通道,不可避免的就是JNI
  配置的关键是Spark的配置文件,Spark带了样例文件conf/spark-env.sh.template,并有详细的解释,根据我们之前的安装路径,参考该文件,配置如下:
#保持与系统的MESOS_HOME一致
export MESOS_HOME=/usr/local/mesos/
#新版本的配置项,直接指定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  好了,一切就绪之后,尝试运行下面的命令:
cd spark
./run spark.examples.SparkPi 127.0.0.1:5050
(注意,和以前的mesos版本不一样,不需要打master@127.0.0.1:5050,否则mesos会报错的)  如果你再次成功的看到Pi值,恭喜,Spark的安装又成功了一步
参考资料

  •   RunningSparkonMesos·mesos/sparkWiki·GitHub
  •   Mesos安装详解(RedHat6.1)–lisperl–博客园
  •   MESOS–安装,配置,启动




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-669677-1-1.html 上篇帖子: spark1.3.0集成kafka的新办法 下篇帖子: 大数据分布式平台Hadoop2.7.7 + Spark2.2.2搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表