集群规范:apachespark在mesos之上,有5个vm和hdfs作为存储。
spark-env.sh公司
export SPARK_LOCAL_IP=192.168.xx.xxx #to set the IP address Spark binds to on this node
enter code here`export MESOS_NATIVE_JAVA_LIBRARY="/home/xyz/tools/mesos-1.0.0/build/src/.libs/libmesos-1.0.0.so" #to point to your libmesos.so if you use Mesos
export SPARK_EXECUTOR_URI="hdfs://vm8:9000/spark-2.0.0-bin-hadoop2.7.tgz"
HADOOP_CONF_DIR="/usr/local/tools/hadoop" #To point Spark towards Hadoop configuration files
spark-defaults.conf格式
spark.executor.uri hdfs://vm8:9000/spark-2.0.0-bin-hadoop2.7.tgz
spark.driver.host 192.168.xx.xxx
spark.rpc netty
spark.rpc.numRetries 5
spark.ui.port 48888
spark.driver.port 48889
spark.port.maxRetries 32
我做了一些在集群模式下提交word count scala应用程序的实验,我发现它只有在从提交的vm中找到驱动程序(包含main方法)时才能成功执行。据我所知,资源调度(vms)是由mesos处理的。例如,如果我从vm12提交我的应用程序,同时如果mesos也调度vm12来执行应用程序,那么它将成功执行。相反,如果mesos调度程序决定分配vm15,它将失败。我检查了mesos ui的stderr中的日志,发现错误。。
16/09/27 11:15:49错误sparkcontext:初始化sparkcontext时出错。
此外,我试图寻找配置方面的Spark在下面的链接[http://spark.apache.org/docs/latest/configuration.html][1] 我试图设置rpc,因为它似乎有必要保持驱动程序靠近局域网中的工作节点。但无法获得更多的见解。
我还尝试在hdfs中上传代码(应用程序),并从hdfs提交应用程序jar文件。
根据以下链接中的文档连接apachespark和mesos时http://spark.apache.org/docs/latest/running-on-mesos.html 我还尝试在其他vm中配置spark-defaults.conf和spark-env.sh,以检查它是否至少从2个vm成功运行。那也没有锻炼。
我是不是缺少概念上的清晰。?那么,我如何才能使我的应用程序成功运行,而不考虑我提交的虚拟机?
暂无答案!
目前还没有任何答案,快来回答吧!