今天用本地的eclipse连接虚拟机上的hbase数据库,代码如下:
public static void main(String[] args) throws Exception{ Configuration conf = HBaseConfiguration.create(); //conf.set("fs.defaultFS", "hdfs://192.168.252.200:9000/"); //conf.set("hbase.master", "192.168.252.200"); conf.set("hbase.zookeeper.quorum","192.168.252.200:2181,192.168.252.201:2181,192.168.252.202:2181"); conf.set("hbase.zookeeper.property.clientPort", "2181"); @SuppressWarnings({ "resource", "deprecation" }) HBaseAdmin admin = new HBaseAdmin(conf); System.out.println(1); TableName name = TableName.valueOf("nvshen"); HTableDescriptor desc = new HTableDescriptor(name); System.out.println(2); HColumnDescriptor base_info = new HColumnDescriptor("base_info"); HColumnDescriptor extra_info = new HColumnDescriptor("extra_info"); base_info.setMaxVersions(5); extra_info.setMaxVersions(5); System.out.println(3); desc.addFamily(base_info); desc.addFamily(extra_info); System.out.println(4); admin.createTable(desc); System.out.println("创建完成"); }
我虚拟机上用的是自己搭建的zookeeper集群
然后在运行代码时,总是卡在最后的创建上,而且程序也不终止,也不提示任何信息,让人很是头疼,但是过了很长一段时间之后eclipse就会报错了,这要是没有一点耐心根本发现不了会报错,大致错误如下:
xception in thread "main" org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=35, exceptions:Tue Sep 12 11:25:29 CST 2017, RpcRetryingCaller{globalStartTime=1505186727016, pause=100, retries=35}, org.apache.hadoop.hbase.MasterNotRunningException: java.net.UnknownHostException: web2.2ge.cnTue Sep 12 11:25:29 CST 2017, RpcRetryingCaller{globalStartTime=1505186727016, pause=100, retries=35}, org.apache.hadoop.hbase.MasterNotRunningException: java.net.UnknownHostException: web2.2ge.cnTue Sep 12 11:25:29 CST 2017, RpcRetryingCaller{globalStartTime=1505186727016, pause=100, retries=35}, org.apache.hadoop.hbase.MasterNotRunningException: java.net.UnknownHostException: web2.2ge.cnTue Sep 12 11:25:30 CST 2017, RpcRetryingCaller{globalStartTime=1505186727016, pause=100, retries=35}, org.apache.hadoop.hbase.MasterNotRunningException: java.net.UnknownHostException: web2.2ge.cnTue Sep 12 11:25:30 CST 2017, RpcRetryingCaller{globalStartTime=1505186727016, pause=100, retries=35}, org.apache.hadoop.hbase.MasterNotRunningException: java.net.UnknownHostException: web2.2ge.cnat org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:157)
经过百度搜索之后,应该在C:\Windows\System32\drivers\etc\hosts目录下加上虚拟机上的地址映射关系,即虚拟上的 /etc/hosts文件中配置Hadoop时添加的东西,将其复制到本地的C:\Windows\System32\drivers\etc\hosts,然后保存,再次运行就可以执行成功了
在第一次编辑C:\Windows\System32\drivers\etc\hosts文件时会显示权限不够,这时候需要先对该文件进行一些权限的设置,详细内容见一下地址:
https://jingyan.baidu.com/article/624e7459b194f134e8ba5a8e.html
如果有问题,请留言交流