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