spark-on-mesos

来源:互联网 发布:xquartz for mac 编辑:程序博客网 时间:2024/05/19 04:03

参考网址:https://spark.apache.org/docs/latest/running-on-mesos.html
https://mesos-cn.gitbooks.io/mesos-cn/content/OverView/spark-on-mesos.html
http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html#put
http://mesos.apache.org/documentation/latest/configuration/agent/
https://spark.apache.org/docs/latest/configuration.html

节点 mesos 角色 hdfs 角色 spark 角色 192.168.122.131 master.mesos hdfs namenode、secondarynode spark driver 、spark-shell 192.168.122.132 slave1.mesos hdfs datanode 192.168.122.133 slave2.mesos hdfs datanode

1、安装meos

安装mesos请参考官方网站或者我的一篇博客http://blog.csdn.net/wenwenxiong/article/details/78352181

2、安装hdfs

下载hadoop二进制包,修改配置文件core-site.xml 、hdfs-site.xml、mapred-site.xml、yarn-site.xml。最主要配置core-site.xml 、hdfs-site.xml。修改hadoop-env.sh中的JAVA _HOME变量。
配置的修改参考https://github.com/krejcmat/hadoop-docker/tree/master/hadoop-master/files/hadoop
各节点配置环境变量HADOOP_HOME、JAVA_HOME、PATH

#for javaexport JAVA_HOME=/root/jdk1.8.0_65export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:.export PATH=$JAVA_HOME/bin:$PATH#for mavenexport PATH=/root/apache-maven-3.5.0/bin:$PATH#for hadoopexport HADOOP_HOME=/root/hadoop-2.7.2export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

各节点运行下面命令启动 hdfs

hadoop-daemon.sh start namenodehadoop-daemon.sh start secondarynamenodehadoop-daemon.sh start datanode

3、上传spark二进制包到hdfs

在master.mesos节点上

hadoop fs -mkdir /sparkbinfilehadoop fs -put spark-2.2.0-bin-hadoop2.7.tgz /sparkbinfile/

注意,上传的spark-2.2.0-bin-hadoop2.7.tgz要在conf/spark-env.sh中配置JAVA_HOME环境变量,否则运行spark-shell时会报JAVA_HOME not set 错误。

4、配置spark使用mesos调度

在master.mesos节点上
vim spark-2.2.0-bin-hadoop2.7/conf/spark-env.sh

export MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.soexport MASTER=mesos://master.mesos:5050export SPARK_LOCAL_IP=192.168.122.131export SPARK_LOCAL_HOSTNAME=master.mesosexport JAVA_HOME=/root/jdk1.8.0_65export SPARK_EXECUTOR_URI=hdfs://master.mesos:9000/sparkbinfile/spark-2.2.0-bin-hadoop2.7.tgz

5、配置mesos-salve使用hadoop 命令

cat /etc/mesos-slave/hadoop_home /root/hadoop-2.7.2

注意,/root/hadoop-2.7.2/etc/hadoop/hadoop-env.sh要设置正确的JAVA_HOME环境变量,否则mesos-slave使用hadoop命令从hdfs中拉取spark二进制文件会报java command not find错误。

6、启动spark-shell

spark-2.2.0-bin-hadoop2.7/bin/spark-shell
saprk-shell启动后会注册Spark shell到mesos的frameworks中,并且预先激活几个Spark shell 0/1 mesos Active Tasks。只要spark-shell一直运行中,mesos中Spark shell frameworks得到的资源则不会减少(即使在spark shell中没有运行任务),停止saprk-shell后,Spark shell 0/1 mesos Active Tasks会成为完成状态,Spark shell mesos frameworks会成为Completed Frameworks,并且释放它所占用的资源(cpu,内存,存储很少占用)。

spark-mesos
spark-mesos

mesos-spark-tasks
mesos-spark-tasks

mesos-spark-frameworks
mesos-spark-frameworks

mesos-spark-agents
mesos-spark-agents

spark-jobs
spark-jobs

spark-executes
spark-executes

spark-env
spark-env

原创粉丝点击