我想在亚马逊实例上使用 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 是否自动 集群时终止所有节点 由于某种原因启动失败。 - 版本