在ec2中设置和管理apache spark集群
cgcloud-spark的Python项目详细描述
spark的cgcloud插件允许您设置一个完全配置的apache 无论节点数量多少,在ec2中的spark集群只需几分钟。当 apache spark已经提供了一个名为spark-ec2的脚本,它允许您 在ec2中构建集群,cgcloud spark与 以下方式:
- 不包括超光速粒子或纱线
- 设置时间不随节点数线性缩放。设置100 节点群集所需的时间与设置10节点群集所需的时间(2-3分钟,相当于 与使用spark-ec2的45分钟相反。这是通过烘烤所有 将所需软件放入单个AMI中。所有从节点同时启动 在几分钟内自动加入集群。
- 与使用spark-ec2不同,集群可以通过ec2停止和启动 API或EC2控制台,不涉及CGCloud。
- Spark服务(master和worker)以非特权用户而不是根用户的身份运行 和SPARK-EC2一样。hdfs服务(namenode、datanode和 第二个名称节点)。
- 当实例启动时,spark和hadoop服务将自动启动 向上,通过一个常规的init脚本。
- 只需从ami启动新实例,就可以轻松地添加节点。 它们将自动加入集群。HDF可能需要重新平衡 之后。
- 您可以通过子类化 Sparkmaster和Sparkslave类。
- cgcloud spark使用负责维护列表的cgcloud代理 每个节点上的授权密钥对。
- cgcloud spark基于官方ubuntu trusty 14.04lts,而不是 亚马逊Linux AMI。
先决条件
cgcloud-spark包要求cgcloud-core包和 它的prerequisites存在。
安装
在粘贴任何命令之前阅读整个部分,并确保 先决条件已安装。建议将此插件安装到 为cgcloud创建的virtualenv:
source ~/cgcloud/bin/activate pip install cgcloud-spark
如果得到DistributionNotFound: No distributions matching the version for cgcloud-spark,请尝试运行pip install --precgcloud-spark。
继续之前,请确保configurecgcloud-core。
配置
通过添加以下行修改.profile或.bash_profile:
export CGCLOUD_PLUGINS="cgcloud.spark:$CGCLOUD_PLUGINS"
登录和退出(或者,在OSX上,启动一个新的终端选项卡/窗口)。
运行以下命令验证安装:
cgcloud list-roles
输出应该包含spark-box角色。
用法
创建一个t2.micro框作为集群的模板 节点:
cgcloud create -IT spark-box
I选项在框完全设置并获取图像(ami)后停止它。 是的。T选项在此之后终止框。
现在,通过从ami启动主设备和从设备来创建集群:
cgcloud create-cluster spark -s 2 -t m3.large
这将使用m3.large实例类型启动一个主服务器和两个从服务器。
ssh进入主服务器:
cgcloud ssh spark-master
…或第一个从机:
cgcloud ssh -o 0 spark-slave
…或第二个从机:
cgcloud ssh -o 1 spark-slave