我正在尝试从本地Java应用程序连接到正在运行的HBase集群。该代码段可以在下面找到。
fn remove_duplicates(mut list: Option<Box<ListNode>>) -> Option<Box<ListNode>> {
let mut cursor = list.as_mut();
while let Some(c) = cursor {
if let Some(next) = c.next.as_mut() {
if next.val == c.val {
c.next = next.next.take();
cursor = Some(c);
continue;
}
}
cursor = c.next.as_mut();
}
list
}
我的HBase群集已启动并正在运行。我可以通过公共IP访问它: http://master-public-dns.us-east-2.compute.amazonaws.com:16010/master-status
UI很好地显示了。但是,当我尝试从Java应用程序访问它时,出现以下异常:
public static Configuration configuration;
static {
configuration = HBaseConfiguration.create();
configuration.set("hbase.zookeeper.property.clientPort", "2181");
configuration.set("hbase.zookeeper.quorum","slave-public-dns.us-east-2.compute.amazonaws.com");
configuration.set("hbase.master", "master-public-dns.us-east-2.compute.amazonaws.com:9000");
}
public static void main(String... args) throws IOException {
new HbaseTest().connect();
}
private void connect() throws IOException {
try {
HBaseAdmin.available(configuration);
} catch (MasterNotRunningException e) {
System.out.println("HBase is not running." + e.getMessage());
return;
}
}
我确实在我的EC2实例上打开了所有TCP端口。知道我做错了什么配置吗?我几乎没有任何教程可以逐步指导我完成此配置,因此我们将不胜感激。我从哪里获得动物园管理员的法定人数?当我打开HBase UI并从那里获取值时,出现未知的主机异常。我需要打开一些端口转发吗? AWS EMR Hbase和Zookeeper集群分别用于各个节点的默认端口是什么?任何想法如何解决这个问题?