我在centos虚拟机上安装了HBase独立服务器,我的客户端在Windows桌面上。我可以远程连接到HBase独立服务器而无需在Windows上安装HBase吗?如果是,则以下是以下文件
172.16.108.1 CentOS60-64#由NetworkManager添加 127.0.0.1 localhost.localdomain localhost 172.29.36.32 localhost.localdomain localhost
172.29.36.32 534CentOS64-0
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///root/Desktop/HBase/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/root/Desktop/HBase/zookeeper</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>62181</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>172.29.36.32</value>
</property>
</configuration>
本地主机 172.29.36.32
Configuration config = HBaseConfiguration.create();
config.set("hbase.zookeeper.quorum", "172.29.36.32");
config.set("hbase.zookeeper.property.clientPort", "62181");
// Creating Admin
HBaseAdmin admin = new HBaseAdmin(config);
// Creating Table Descriptor
HTableDescriptor describe =admin.getTableDescriptor(org.apache.hadoop.hbase.TableName.valueOf("emp"));
// Fetching all column families
Set<byte[]> ColumnFamily = describe.getFamiliesKeys();
// Listing Out the all column families
System.out.println(ColumnFamily.size());
Iterator<byte[]> it=ColumnFamily.iterator();
while(it.hasNext())
{
System.out.println(Bytes.toString(it.next()));
}
---当我试图运行上面的代码时,它需要太长的时间来运行并引发错误....未知主机:localhost.localdomain
---我能够连接到以下网址: - http://172.29.36.32:60010/master-status PS: - 如果有人可以帮助我,我将感激不尽
答案 0 :(得分:1)
答案很晚但我希望它可以帮助某人。 您的案例中的问题可能是/ etc / hosts文件。我认为你应该删除以下行:
172.29.36.32 localhost.localdomain localhost
此外,如果要连接到远程HBase群集 - 请确保将所有群集主机名和ip添加到本地主机文件(Linux或C上的/ etc / hosts) :Windows上的\ Windows \ System32 \ drivers \ etc \ hosts),如下所示:
172.16.108.1 CentOS60-64
172.29.36.32 534CentOS64-0
显然,当尝试连接到HBase时,Zookeper使用主机名而不是ip,当与Java远程连接时,它可能是个问题。
希望它有所帮助!
答案 1 :(得分:0)
也许你应该修改你的<div class= "carousel-item">
文件。举个例子。
[您的IP可以远程访问] [您的域将被远程服务器使用]
获得
[你的ip与最后一行相同] [你的主机名可以通过命令/etc/hosts
]
并且hostname
和domain
不应出现在映射其他IP地址的其他行上。
之后,客户端将使用hostname
访问您的hbase服务器。您可以在日志中获取该信息。
您可以通过以下代码进行检查。
domain