本地同一台计算机Spark集群有哪些优势?

时间:2018-05-21 21:33:33

标签: apache-spark docker

我正在Docker内运行Apache Spark安装。多亏了Docker Compose,我能够设置一个本地集群 - 例如 - 将其中的一部分声明为主设备,将另一部分声明为工作者或从设备。这个Docker Compose实例本地安装在我的计算机上,我在安装过程中定位了相同的本地映像。因此,两个容器都在我的本地系统上成功运行。

由于我不是集群计算的专业人士,我并不十分确定,但我认为Docker Compose可能会在多台计算机上设置集群 - 我认为这就是它的原因。 连接几台计算机以并行化计算会减少计算时间等等......

然而,在同一台本地机器上执行集群是否有用?出于其他原因再进行测试?

3 个答案:

答案 0 :(得分:3)

实际上,做某事的唯一原因是模拟实际的集群以进行测试和开发。虽然before_action :logged_in_user, only: [:edit, :update, :show] before_action :correct_user, only: [:edit, :update, :show] before_action :admin_user, only: :destroy def new @title = 'Register'; @user = User.new; end def create @user = User.new(user_params) if @user.save @user.send_activation_email flash[:info] = "Please check your email to activate your account." redirect_to root_url else render 'new' end end private def user_params params.require(:user).permit(:username, :first_last_name, :email, :password) end # Before filters # Confirms the correct user. def correct_user @user = User.find(params[:id]) redirect_to(root_url) unless current_user?(@user) end # Confirms an admin user. def admin_user redirect_to(root_url) unless current_user.admin? end 模式通常用于此目的,但它实际上并不像真正的集群,并且某些问题可能很难发现。此外,与本地模式不同,它允许您模拟不同的故障情况。

在生产方面,实际上并没有多大用处。支持的集群管理器已经提供了良好的容器化支持,并且实际上知道如何与Spark集成。

答案 1 :(得分:1)

如果您想将火花与容器一起使用,请查看Spark-on-Kubernetes。从2.3.0开始,Spark可以使用Kubernetes作为本机调度程序。 Afaik,目前Pyspark或R绑定不存在,它不能在客户端模式下运行(所以你不能使用交互式shell,也不能使用笔记本电脑),但我希望这些功能在未来版本的Spark和Kubernetes是容器编排的事实标准。

我不建议使用Docker Compose,但我可能会有偏见。

答案 2 :(得分:0)

同时,我考虑了一个小的本地Spark集群进行了一些实验。令人惊讶的是,单个设备上的并行化优势已经为我解决了。因此,在某些情况下,速度有了明显的提高。