如何在新的Ubuntu实例上安装Hadoop和Pydoop

S A*_*and 4 python ubuntu hadoop amazon-web-services

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

小智 9

另一个解决方案是使用Juju(Ubuntu的服务编排框架).

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

sudo add-apt-repository ppa:juju/stable
sudo apt-get update && sudo apt-get install juju-core
Run Code Online (Sandbox Code Playgroud)

(此处也提供MacOS和Windows的说明)

然后生成配置文件

juju generate-config
Run Code Online (Sandbox Code Playgroud)

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

注意:上述操作只需进行一次.

现在引导

 juju bootstrap amazon
Run Code Online (Sandbox Code Playgroud)

像网站上提供的演示一样部署GUI(可选)

juju deploy --to 0 juju-gui && juju expose juju-gui
Run Code Online (Sandbox Code Playgroud)

您将找到GUI和密码的URL:

juju api-endpoints | cut -f1 -d":"
cat ~/.juju/environments/amazon.jenv | grep pass
Run Code Online (Sandbox Code Playgroud)

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

现在来看看你的Hadoop用例.你有几个选择.

  1. 只需部署1个Hadoop节点即可

    juju deploy --constraints "cpu-cores=2 mem=4G root-disk=20G" hadoop
    
    Run Code Online (Sandbox Code Playgroud)

您可以使用跟踪部署

juju debug-log
Run Code Online (Sandbox Code Playgroud)

并获取有关新实例的信息

juju status
Run Code Online (Sandbox Code Playgroud)

这是部署Hadoop所需的唯一命令(您可以将Juju视为复杂系统的apt的演变)

  1. 使用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
    
    Run Code Online (Sandbox Code Playgroud)
  2. 扩展用法(单独的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
    
    Run Code Online (Sandbox Code Playgroud)

对于Pydoop,您必须像第一个答案一样手动部署它(您可以通过"juju ssh"访问Juju实例),或者您可以编写一个"魅力"(Juju的一种方法来学习如何部署pydoop) ).