我看到的大多数设置说明都很冗长。是否有一组类似脚本的命令,我们只需执行这些命令即可在 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 用例。您有多种选择。
只需部署1个Hadoop节点
juju deploy --constraints "cpu-cores=2 mem=4G root-disk=20G" hadoop
您可以使用
跟踪部署juju debug-log
并获取有关新实例的信息
juju status
这是部署 Hadoop 所需的唯一命令(您可以将 Juju 视为复杂系统的 apt 的演变)
使用 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)。
关于python - 如何在新的 Ubuntu 实例上安装 Hadoop 和 Pydoop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29588595/