我正在Docker内运行Apache Spark安装。多亏了Docker Compose,我能够设置一个本地集群 - 例如 - 将其中的一部分声明为主设备,将另一部分声明为工作者或从设备。这个Docker Compose实例本地安装在我的计算机上,我在安装过程中定位了相同的本地映像。因此,两个容器都在我的本地系统上成功运行。
由于我不是集群计算的专业人士,我并不十分确定,但我认为Docker Compose可能会在多台计算机上设置集群 - 我认为这就是它的原因。 连接几台计算机以并行化计算会减少计算时间等等......
然而,在同一台本地机器上执行集群是否有用?出于其他原因再进行测试?
答案 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集群进行了一些实验。令人惊讶的是,单个设备上的并行化优势已经为我解决了。因此,在某些情况下,速度有了明显的提高。