0

我想在亚马逊实例上使用 whirr 启动一个实例。但是当我尝试使用标准化的 whirr 命令启动一个集群时,它在我的 hadoop 集群名称之后的某个目录名称中搜索为不存在的“myclutster”。有人可以帮忙吗没有这个?

kaustubh@hdv-Kaustubh:~/Downloads$ whirr launch-cluster --config whirrprop.properties
无法启动集群。终止所有节点。
java.lang.IllegalArgumentException:java.lang.NullPointerException:找不到动作处理程序
    在 org.apache.whirr.actions.ScriptBasedClusterAction.safeGetActionHandler(ScriptBasedClusterAction.java:245)
    在 org.apache.whirr.actions.ScriptBasedClusterAction.execute(ScriptBasedClusterAction.java:100)
    在 org.apache.whirr.ClusterController.launchCluster(ClusterController.java:106)
    在 org.apache.whirr.cli.command.LaunchClusterCommand.run(LaunchClusterCommand.java:63)
    在 org.apache.whirr.cli.Main.run(Main.java:64)
    在 org.apache.whirr.cli.Main.main(Main.java:97)
原因:java.lang.NullPointerException:找不到动作处理程序
    在 com.google.common.base.Preconditions.checkNotNull(Preconditions.java:204)
    在 org.apache.whirr.HandlerMapFactory$ReturnHandlerByRoleOrPrefix.apply(HandlerMapFactory.java:66)
    在 org.apache.whirr.HandlerMapFactory$ReturnHandlerByRoleOrPrefix.apply(HandlerMapFactory.java:45)
    在 com.google.common.collect.ComputingConcurrentHashMap$ComputingValueReference.compute(ComputingConcurrentHashMap.java:355)
    在 com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.compute(ComputingConcurrentHashMap.java:184)
    在 com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.getOrCompute(ComputingConcurrentHashMap.java:153)
    在 com.google.common.collect.ComputingConcurrentHashMap.getOrCompute(ComputingConcurrentHashMap.java:69)
    在 com.google.common.collect.ComputingConcurrentHashMap$ComputingMapAdapter.get(ComputingConcurrentHashMap.java:393)
    在 org.apache.whirr.actions.ScriptBasedClusterAction.safeGetActionHandler(ScriptBasedClusterAction.java:238)
    ... 5 更多
无法加载集群状态,假设它没有正在运行的节点。
java.io.FileNotFoundException: /home/kaustubh/.whirr/mycluster/instances (没有这样的文件或目录)
    在 java.io.FileInputStream.open(本机方法)
    在 java.io.FileInputStream.(FileInputStream.java:120)
    在 com.google.common.io.Files$1.getInput(Files.java:100)
    在 com.google.common.io.Files$1.getInput(Files.java:97)
    在 com.google.common.io.CharStreams$2.getInput(CharStreams.java:91)
    在 com.google.common.io.CharStreams$2.getInput(CharStreams.java:88)
    在 com.google.common.io.CharStreams.readLines(CharStreams.java:306)
    在 com.google.common.io.Files.readLines(Files.java:580)
    在 org.apache.whirr.state.FileClusterStateStore.load(FileClusterStateStore.java:54)
    在 org.apache.whirr.state.ClusterStateStore.tryLoadOrEmpty(ClusterStateStore.java:58)
    在 org.apache.whirr.ClusterController.destroyCluster(ClusterController.java:143)
    在 org.apache.whirr.ClusterController.launchCluster(ClusterController.java:118)
    在 org.apache.whirr.cli.command.LaunchClusterCommand.run(LaunchClusterCommand.java:63)
    在 org.apache.whirr.cli.Main.run(Main.java:64)
    在 org.apache.whirr.cli.Main.main(Main.java:97)
java.lang.NullPointerException:找不到动作处理程序
用法:whirr 启动集群 [选项]

选项 说明                            
------ ----------                            
--aws-ec2-spot-price Spot 实例价格(特定于 aws-ec2  
                                          选项)                              
--blobstore-cache-container 要使用的容器的名称   
                                          用于缓存本地文件。如果不      
                                          指定 Whirr 将创建一个随机
                                          一个并在末尾删除它  
                                          会议。                             
--blobstore-credential Blob 存储凭据              
--blobstore-identity Blob 存储标识                
--blobstore-location-id Blob 存储位置 ID             
--blobstore-provider Blob 存储提供程序。例如 aws-s3,  
                                          cloudfiles-我们,cloudfiles-英国         
--client-cidrs 以逗号分隔的 CIDR 块列表。
                                          例如 208.128.0.0/11,108.128.0.0/11   
--cluster-name 要操作的集群的名称。
                                          例如hadoopcluster。                  
--cluster-user Whirr 将使用的用户名   
                                          在所有集群实例上创建。
                                          您必须使用此用户登录   
                                          到节点。                            
--config 注意 Whirr 属性指定   
                                          在这个文件中应该都有一个      
                                          呼呼。字首。                       
--credential 云凭证。                  
--firewall-rules 逗号分隔的端口列表         
                                          数字。例如 8080,8181              
--firewall-rules-role 逗号分隔的端口列表         
                                          数字。例如 8080,8181。代替     
                                          带有实际角色名称的“角色”      
--hardware-id 使用的硬件类型    
                                          实例。这必须兼容    
                                          带有图像 ID。                   
--hardware-min-ram 实例内存的最小量。
                                          例如 1024                            
--identity 云身份。                    
--image-id 要用于的图像的 ID         
                                          实例。如果未指定,则   
                                          选择 vanilla Linux 映像。       
--instance-templates 要为其启动的实例数  
                                          每组角色。例如 1 hadoop-    
                                          名称节点+hadoop-jobtracker,10       
                                          hadoop-datanode+hadoop-tasktracker   
--instance-templates-max-percent- 成功启动的百分比
  每组角色的失败实例。E.  
                                          G。100 hadoop-namenode+hadoop-       
                                          jobtracker,60 hadoop-datanode+hadoop-
                                          tasktracker 表示所有实例
                                          角色 hadoop-namenode 和 hadoop-
                                          jobtracker 必须成功    
                                          启动,并且 60% 的实例必须
                                          成功启动每个   
                                          角色 hadoop-datanode 和 hadoop-
                                          任务跟踪器。                         
--instance-templates-minimum-number-of- 成功的最小数量      
  实例为每组启动实例    
                                          角色。例如 1 hadoop-namenode+hadoop-
                                          jobtracker,6 hadoop-datanode+hadoop-
                                          tasktracker 表示 1 个实例    
                                          角色 hadoop-namenode 和 hadoop-
                                          jobtracker 必须成功    
                                          已启动,并且必须有 6 个实例   
                                          成功地开始了每个   
                                          角色 hadoop-datanode 和 hadoop-    
                                          任务跟踪器。                         
--location-id 启动实例的位置。   
                                          如果未指定,则任意   
                                          将选择位置。             
--login-user 覆盖使用的默认登录用户   
                                          引导呼呼。例如 ubuntu 或   
                                          我的用户:我的通行证。                       
--max-startup-retries 重试次数       
                                          不足成功启动    
                                          实例。默认值为 1。       
--private-key-file RSA 私钥的文件名    
                                          用于连接实例。        
--provider 云提供商的名称。例如   
                                          aws-ec2,cloudservers-英国             
--public-key-file 公钥文件名
                                          连接到实例。                
--run-url-base 形成运行 url 的基本 URL      
                                          从。将其更改为托管您自己的   
                                          一组启动脚本。               
--service-name (可选) 服务的名称  
                                          利用。例如hadoop。                    
--state-store 什么样的存储用于状态    
                                          (本地、blob 或无)。默认为   
                                          当地的。                               
--state-store-blob 状态存储的 Blob 名称。有效的     
                                          仅适用于 blob 状态存储。       
                                          默认为whirr-     
--state-store-container 存储状态的容器。有效的  
                                          仅适用于 blob 状态存储。       
--terminate-all-on-launch-failure 是否自动        
                                 集群时终止所有节点     
                                          由于某种原因启动失败。        
- 版本   
4

1 回答 1

1

没有这样的东西叫做hadoop-jobtracer(注意缺少的 k)

这是 Hadoop 集群所需要的:

whirr.instance-templates=1 hadoop-namenode+hadoop-jobtracker, 1 hadoop-datanode+hadooptasktracker
whirr.hardware-id=m1.small # or larger - t1.micro is not a good choice

还要确保检查 recipes/hadoop-ec2.properties 以获取更多示例。

于 2012-03-13T15:10:48.740 回答