hadoop - 使用 Whirr 启动 EC2 集群

标签 hadoop amazon-ec2 cloudera apache-whirr

我目前正在学习 Jeffery Breen 的教程。当我想用 Whirr 启动 ec2 集群时遇到了一些麻烦。我使用的是 cloudera 演示 vm cdh3u4。

我下载了whirr 0.8.1版本

这是我运行的所有命令:

$ wget http://mirror.switch.ch/mirror/apache/dist/whirr/whirr-0.8.1/whirr-0.8.1.tar.gz
$ tar zxf whirr-0.8.0.tar.gz
$ export PATH="~/whirr-0.8.0/bin:$PATH"

$ export AWS_ACCESS_KEY_ID=MY ACCESS KEY
$ export AWS_SECRET_ACCESS_KEY=MY SECRET ACCESS KEY

$ ssh-keygen -t rsa -P hadoop-ec2

然后我被问到 key 应该保存在哪个文件中,我输入:hadoop-ec2

$ whirr launch-cluster --config hadoop-ec2.properties

...这就是问题所在:没有启动任何实例!我收到以下消息:

Exception in thread "main" org.apache.commons.configuration.ConfigurationException: Cannot locate configuration source hadoop-ec2.properties
        at org.apache.commons.configuration.AbstractFileConfiguration.load(AbstractFileConfiguration.java:249)
        at org.apache.commons.configuration.AbstractFileConfiguration.load(AbstractFileConfiguration.java:229)
        at org.apache.commons.configuration.AbstractFileConfiguration.<init>(AbstractFileConfiguration.java:149)
        at org.apache.commons.configuration.PropertiesConfiguration.<init>(PropertiesConfiguration.java:252)
        at org.apache.whirr.command.AbstractClusterCommand.getClusterSpec(AbstractClusterCommand.java:122)
        at org.apache.whirr.cli.command.LaunchClusterCommand.run(LaunchClusterCommand.java:57)
        at org.apache.whirr.cli.Main.run(Main.java:69)
        at org.apache.whirr.cli.Main.main(Main.java:102)

我接下来做的是将属性文件直接链接到 Jeffrey Breen 在他的教程中发布的文件,然后我得到了以下内容:

[cloudera@localhost ~]$ whirr launch-cluster --config /home/cloudera/TutorialBreen/config/whirr-ec2/hadoop-ec2.properties
Running on provider aws-ec2 using identity ${env:AKIAIXPYW6EBNWSZWMTQ}
Bootstrapping cluster
Configuring template for bootstrap-hadoop-datanode_hadoop-tasktracker
Unable to start the cluster. Terminating all nodes.
org.jclouds.rest.AuthorizationException: POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1 -> HTTP/1.1 401 Unauthorized
        at org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.refineException(ParseAWSErrorFromXmlContent.java:123)
        at org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.handleError(ParseAWSErrorFromXmlContent.java:92)
        at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:69)
        at org.jclouds.http.internal.BaseHttpCommandExecutorService$HttpResponseCallable.shouldContinue(BaseHttpCommandExecutorService.java:197)
        at org.jclouds.http.internal.BaseHttpCommandExecutorService$HttpResponseCallable.call(BaseHttpCommandExecutorService.java:167) . . .

这是朝着正确方向迈出的一步吗?如果是,我必须怎么做才能奏效?

我是一个初学者,所以我非常感谢您的帮助,如果可能的话,请尽可能“清楚”,因为正如我所说的,我是一个初学者。

下一步是运行这个命令:

$ whirr run-script --script install-r+packages.sh --config hadoop-ec2.properties 

我真的希望能在这里找到一些帮助,以便我可以继续学习本教程。

Whirr 配置文件:

whirr.cluster-name=hadoop-ec2

# Change the number of machines in the cluster here
whirr.instance-templates=1 hadoop-namenode+hadoop-jobtracker,5 hadoop-datanode+hadoop-tasktracker
# whirr.instance-templates=1 hadoop-namenode+hadoop-jobtracker,1 hadoop-datanode+hadoop-tasktracker

# Uncomment out these lines to run CDH
# You need cdh3 because of the streaming combiner backport
whirr.hadoop.install-function=install_cdh_hadoop
whirr.hadoop.configure-function=configure_cdh_hadoop
# make sure java is set up correctly, requires Whirr >= 0.7.1
whirr.java.install-function=install_oab_java 

# For EC2 set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables.
whirr.provider=aws-ec2
whirr.identity=${env:DFD...(mycode)..DFDSDF}
whirr.credential=${env:df342.(mycode)..3434324}

# The size of the instance to use. See http://aws.amazon.com/ec2/instance-types/
whirr.hardware-id=m1.large
# whirr.hardware-id=c1.xlarge

# select recent, 64-bit CentOS 5.6 AMI from RightScale
whirr.image-id=us-east-1/ami-49e32320

# here's what Cloudera recommends:
# whirr.image-id=us-east-1/ami-ccb35ea5

# If you choose a different location, make sure whirr.image-id is updated too
whirr.location-id=us-east-1

# You can also specify the spot instance price
# http://aws.amazon.com/ec2/spot-instances/
# whirr.aws-ec2-spot-price=0.109

# By default use the user system SSH keys. Override them here.
# whirr.private-key-file=${sys:user.home}/.ssh/id_rsa
# whirr.public-key-file=${sys:user.home}/.ssh/id_rsa.pub

# Expert: override Hadoop properties by setting properties with the prefix
# hadoop-common, hadoop-hdfs, hadoop-mapreduce to set Common, HDFS, MapReduce
# site properties, respectively. The prefix is removed by Whirr, so that for
# example, setting 
# hadoop-common.fs.trash.interval=1440
# will result in fs.trash.interval being set to 1440 in core-site.xml.

# Expert: specify the version of Hadoop to install.
#whirr.hadoop.version=0.20.2
#whirr.hadoop.tarball.url=http://archive.apache.org/dist/hadoop/core/hadoop-${whirr.hadoop.version}/hadoop-${whirr.hadoop.version}.tar.gz

最佳答案

是删除#

示例在这里:

whirr.private−key−file=${sys:user.home}/.ssh/whirr_id_rsa
whirr.public−key−file=${sys:user.home}/.ssh/whirr_id_rsa.pub

用您的文件名替换 whirr_id_rsa。此处有更多详细信息:

http://www.xmsxmx.com/apache-whirr-create-hadoop-cluster-automatically/

关于hadoop - 使用 Whirr 启动 EC2 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13221083/

相关文章:

linux - mod_wsgi 安装需要 : libpython2. 7.so.1.0()(64 位)

amazon-web-services - 在 EC2 AWS 中使用 UFW 将自己锁定在 SSH 之外

hadoop - 如何在新的Hue 4 Pig Editor中设置参数

hadoop - Hive 无法加载数据-cloudera quickstart VM 5.8

r - Rhadoop-使用RMR的字数统计

hadoop - 无法从配置单元加载数据:-chgrp: 'LONEWOLF\Sudarshan'与组的预期模式不匹配

java - Hadoop 2.7.3中的HTrace

apache-spark - Spark性能问题与Hive

amazon-ec2 - 如何从Boto获得有用的诊断信息?

hadoop - 您可以使用代理通过Kite SDK连接到HDFS吗?