Amazon ec2 亚马逊云上的Hadoop

Amazon ec2 亚马逊云上的Hadoop,amazon-ec2,hadoop,mapreduce,amazon,amazon-ami,Amazon Ec2,Hadoop,Mapreduce,Amazon,Amazon Ami,我正试图在Amazon云上运行一些hadoop MapReduce作业,但我正在努力成功创建集群。我已经下载了ec2文件,有我的证书和密钥对文件,但我相信是AMI给我带来了麻烦。如果我试图运行一个包含主节点和n个从节点的集群,我将使用标准兼容的AMI启动n+1实例,然后在终端中运行代码“hadoop-ec2启动集群名称n”。主节点成功了,但是当从节点开始启动时,我得到一个错误,说“缺少参数-h(AMI缺少)”,我不完全确定如何进行 另外,我的一些作业将需要更改hadoops参数设置(特别是map

我正试图在Amazon云上运行一些hadoop MapReduce作业,但我正在努力成功创建集群。我已经下载了ec2文件,有我的证书和密钥对文件,但我相信是AMI给我带来了麻烦。如果我试图运行一个包含主节点和n个从节点的集群,我将使用标准兼容的AMI启动n+1实例,然后在终端中运行代码“hadoop-ec2启动集群名称n”。主节点成功了,但是当从节点开始启动时,我得到一个错误,说“缺少参数-h(AMI缺少)”,我不完全确定如何进行

另外,我的一些作业将需要更改hadoops参数设置(特别是mapred-site.xml配置文件),是否可以更改此文件,如果可以,如何访问它?hadoop是否已经安装在amazon机器上,并且可以访问和更改此文件

谢谢你试过了吗?这是一个简单的API,可根据需要提供指定大小的Hadoop集群

这比手动创建自己的集群更容易

但是一旦作业流在默认情况下完成,它就会关闭集群,留下S3上的输出。如果你只需要做一些咀嚼,这可能是一种方法

如果您需要永久存储HDFS内容(例如,如果您在Hadoop上运行HBase),您实际上可能需要在EC2上拥有自己的集群。在这种情况下,您可能会发现Cloudera发布的Hadoop for Amazon EC2非常有用

可以使用EC2引导操作更改将启动的节点上的Hadoop配置:

Q:如何为我的作业流配置Hadoop设置?

弹性MapReduce默认Hadoop配置适用于大多数工作负载。但是,根据作业流的特定内存和处理要求,可能需要调整这些设置。例如,如果作业流任务是内存密集型的,则可以选择每个核心使用较少的任务,并减少作业跟踪器堆大小。对于这种情况,可以使用预定义的引导操作在启动时配置作业流。有关配置详细信息和使用说明,请参阅《开发人员指南》中的配置内存密集型引导操作。另外一个预定义的引导操作可用,允许您根据自己选择的任何值自定义集群设置。有关使用说明,请参阅《开发人员指南》中的

关于您启动集群的方式,请澄清:

如果我试图运行一个包含主节点和n个从节点的集群,我将使用标准兼容的AMI启动n+1实例,然后在终端中运行代码“hadoop-ec2启动集群名称n”。主节点成功了,但是当从节点开始启动时,我得到一个错误,说“缺少参数-h(AMI缺少)”,我不完全确定如何进行


你到底是怎么开始的?你到底在用什么AMI?

首先,我在用我能找到的任何AMI。我在终端上运行了一段代码,比如“ec2描述图像-亚马逊”,并选择了任何AMI可以工作的代码;然后使用“ec2运行实例amixxxxxx-n 5-k密钥对”启动具有此AMI的实例,最后尝试启动具有“hadoop-ec2启动集群名称4”的集群(这适用于具有4个从节点的集群)。老实说,我对云非常陌生,对自己正在做的事情一无所知。我希望更改的参数是hadoop的作业参数,例如io.sort.mb(用于在map和reduce阶段之间排序的缓冲内存量)等等。。。它们是通过更改存储在hadoop文件夹中的文件(mapred site.xml)来控制的。@Jonathan Viccary好的,我知道了,您正在使用hadoop的src/contrib/ec2/bin中的“hadoop-ec2”脚本。如果您想以这种方式启动hadoop群集。。。我查看了脚本,发现它会自动启动实例—您不必手动调用ec2运行实例。但您必须对其进行配置:实际上hadoop-ec2在某个bucket中搜索合适的映像。您必须设置HADOOP_VERSION和S3_BUCKET变量来指定映像。