您是否尝试过Amazon Elastic MapReduce?这是一个简单的 API,可以按需启动指定大小的 Hadoop 集群。
这比手动创建自己的集群更容易。
但是一旦作业流程默认完成,它就会关闭集群,在 S3 上留下输出。如果你需要做的只是做一些碾压,这可能是要走的路。
如果您需要永久存储 HDFS 内容(例如,如果您在 Hadoop 之上运行 HBase),您实际上可能需要在 EC2 上拥有自己的集群。在这种情况下,您可能会发现 Cloudera 为 Amazon EC2 分发的 Hadoop 很有用。
可以使用EC2 Bootstrap Actions更改将要启动的节点上的 Hadoop 配置:
问:如何为我的工作流程配置 Hadoop 设置?
Elastic MapReduce 默认 Hadoop 配置适用于大多数工作负载。但是,根据您的作业流程的特定内存和处理要求,调整这些设置可能是合适的。例如,如果您的作业流任务是内存密集型的,您可以选择每个核心使用更少的任务并减少您的作业跟踪器堆大小。对于这种情况,预定义的引导操作可用于在启动时配置您的作业流程。有关配置详细信息和使用说明,请参阅开发人员指南中的配置内存密集型引导操作。提供了一个额外的预定义引导操作,允许您将集群设置自定义为您选择的任何值。请参阅配置 Hadoop 引导操作在开发人员指南中获取使用说明。
关于您启动集群的方式,请澄清:
如果我尝试运行具有一个主节点和 n 个从节点的集群,我会使用标准兼容的 AMI 启动 n+1 个实例,然后在终端中运行代码“hadoop-ec2 启动集群名称 n”。主节点成功,但是当从节点开始启动时出现错误,说“缺少参数 -h(AMI 丢失)”,我不完全确定如何进行。
你究竟是如何尝试启动它的?您使用的究竟是什么 AMI?