我看到的大多数安装说明都很详细。我们是否可以执行一组类似脚本的命令,以在Amazon EC2的Ubuntu实例上设置Hadoop和Pydoop?

最佳答案

另一个解决方案是使用Juju(Ubuntu的服务流程框架)。

首先在您的标准计算机上安装Juju客户端:

sudo add-apt-repository ppa:juju/stable
sudo apt-get update && sudo apt-get install juju-core

(有关MacOS和Windows的说明,也可以通过here获得)

然后生成一个配置文件
juju generate-config

并使用您首选的云凭据(AWS,Azure,GCE ...)对其进行修改。基于m3.medium的命名,我假设您使用AWS,因此请遵循these instructions

注意:以上操作仅需执行一次。

现在引导
 juju bootstrap amazon

部署GUI(可选),如网站上的演示一样
juju deploy --to 0 juju-gui && juju expose juju-gui

您将通过以下方式找到GUI的URL和密码:
juju api-endpoints | cut -f1 -d":"
cat ~/.juju/environments/amazon.jenv | grep pass

请注意,上述步骤是任何Juju部署的初步步骤,可以在您每次旋转环境时重复使用。

现在是Hadoop的用例。您有几种选择。
  • 只需部署Hadoop的1个节点
    juju deploy --constraints "cpu-cores=2 mem=4G root-disk=20G" hadoop
    

  • 您可以通过以下方式跟踪部署
    juju debug-log
    

    并获得有关新实例的信息
    juju status
    

    这是部署Hadoop所需的唯一命令(您可以将Juju视为适用于复杂系统的演变)
  • 使用HDFS和MapReduce部署3个节点的集群
    juju deploy hadoop hadoop-master
    juju deploy hadoop hadoop-slavecluster
    juju add-unit -n 2 hadoop-slavecluster
    juju add-relation hadoop-master:namenode hadoop-slavecluster:datanode
    juju add-relation hadoop-master:resourcemanager hadoop-slavecluster:nodemanager
    
  • 扩展使用量(单独的HDFS和MapReduce,实验中)
    juju deploy hadoop hdfs-namenode
    juju deploy hadoop hdfs-datacluster
    juju add-unit -n 2 hdfs-datacluster
    juju add-relation hdfs-namenode:namenode hdfs-datacluster:datanode
    juju deploy hadoop mapred-resourcemanager
    juju deploy hadoop mapred-taskcluster
    juju add-unit -n 2 mapred-taskcluster
    juju add-relation mapred-resourcemanager:mapred-namenode hdfs-namenode:namenode
    juju add-relation mapred-taskcluster:mapred-namenode hdfs-namenode:namenode
    juju add-relation mapred-resourcemanager:resourcemanager mapred-taskcluster:nodemanager
    

  • 对于Pydoop,您必须像在第一个答案中一样手动部署它(您可以通过“juju ssh”访问Juju实例),也可以编写一个“charm”(Juju一种学习如何部署pydoop的方法) )。

    09-11 11:40