今天我在虚拟机里面安装了Hbase 1.2.4,说在windows上Java API调用访问下玩玩,结果始终连接不上。

现象是启动程序后,程序出现卡死的状态,没报错也不停止,大约半分钟后才打印一堆日志出来,说连接重试了多次也连接不上,截图如下:

这个问题纠结了我半天,一查看发现HBase绑定的是本地IP:127.0.0.1,这当然访问不了

然后我想可以把HBase的绑定在指定IP上,去查Hbase官网,却没有这样的配置项

后面百度下,发现HBase的这个问题要特殊处理

分下面三步走,即可访问

1、配置Linux的hostname

2、配置Linux的hosts,映射ip的hostname的关系

3、配置访问windows的hosts

配置Llinux的hostname和hosts,这样HBase启动的时候,就会自动把HBase绑定到Linux域名对应的ip上去

配置Linux的hostname

这里配置的hostname要Linux重启才生效,为了不重启就生效,我们可以执行:hostname master命令,暂时设置hostname

配置Linux的hosts

映射ip的hostname的关系

配置完Linux的这两项,启动HBase就发现HBase绑定到了我们想暴露的ip上了

配置访问windows的hosts

路径为:C:\Windows\System32\drivers\etc\hosts

配置完这三项Java API就可以远程访问HBase了,切记最后配置windows的hosts也是必须的

Java代码示例

package priv.tuyou.HBase;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;

/**
* HBase 1.2.4
* @author:涂有
* @date 2017年7月12日 下午2:17:44
*/
public class HBase {

public static Configuration conf;
public static Connection connection;
public static Admin admin;

public static void main(String[] args) throws IOException {

conf = HBaseConfiguration.create();
conf.set("hbase.master", "192.168.142.129:16000");

connection = ConnectionFactory.createConnection(conf);
admin = connection.getAdmin();

HTableDescriptor table = new HTableDescriptor(TableName.valueOf("table1"));
table.addFamily(new HColumnDescriptor("group1")); //创建表时至少加入一个列组

if(admin.tableExists(table.getTableName())){
admin.disableTable(table.getTableName());
admin.deleteTable(table.getTableName());
}
admin.createTable(table);
}

}

POM文件,依赖HBase-client库

<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.hbase/hbase-client -->
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>1.2.4</version>
</dependency>
</dependencies>

Java API不能远程访问linux服务器HBase的问题的更多相关文章

  1. Java实现windows,linux服务器word,excel转为PDF;aspose-words,Documents4j

    Java实现windows,linux服务器word,excel转为PDF:aspose-words,Documents4j 一.通过aspose-words将word,Excel文档转为PDF 1. ...

  2. java项目发布到linux服务器,tomcat正常启动但没加载项目

    问题描述: java项目发布到linux服务器,一切操作正确,linux命令启动tomcat后,查看日志启动tomcat正常,上传的war包已经解压成功,但是tomcat没加载项目. 解决方法: 1. ...

  3. 在windows下远程访问linux服务器

    在网络性能.安全性.可管理性上,Linux有着其他系统无法比拟的强大优势,而服务器对这些方面要求特别高,因此Linux常常被用来做服务器使用.而当我们需要维护linux服务器的时候,就需要远程访问li ...

  4. java通过sftp对linux服务器文件夹进行操作

    本文主要讲sftp对linux服务器的文件和文件夹进行操作,windows server 服务器不支持. package com.lx.ftp; import java.io.File; import ...

  5. 使用frp进行内网穿透,实现ssh远程访问Linux服务器

    搭建一个完整的frp服务链需要: VPS一台(也可以是具有公网IP的实体机) 访问目标设备(就是你最终要访问的设备) 简单的Linux基础(如果基于Linux配置的话) 我这里使用了腾讯云服务器作为服 ...

  6. Windows下通过VNC远程访问Linux服务器,并实现可视化

    前言 最近因部门需要,老大想让我在公司Linux服务器上弄个Oracle,以用作部门测试环境的数据库服务器,经过一番折腾后,成功完成了任务.因公司Linux服务器是无图形界面的,本人接触Linux不多 ...

  7. java程序远程连接Linux服务器

    JSCH或 Ganymed Ganymed: Ganymed SSH-2 for Java是用纯Java实现SSH-2协议的一个包. 可以利用它直接在Java程序中连接SSH服务器.官网地址为 htt ...

  8. Hbase之JAVA API不能远程访问问题解决

    1.配置Linux的hostname2.配置Linux的hosts,映射ip的hostname的关系3.配置访问windows的hosts 参考文档:http://blog.csdn.net/ty49 ...

  9. java API连接虚拟机上的hbase

    今天用本地的eclipse连接虚拟机上的hbase数据库,代码如下: public static void main(String[] args) throws Exception{ Configur ...

随机推荐

  1. openjudge-2的100次方阶乘

    开始进行的第一天 #include <stdio.h> #include <string.h> int main() { int n; scanf("%d" ...

  2. react项目总结

    1.基本框架 1.react+react-router4+redux3.7.2 2.css预编译使用sass 3.数据请求使用axios(原本是使用fetch,结果在ios10下报错) 4.ui组件库 ...

  3. [SHELL]输出目录下所有的可执行文件,批量创建用户

    #!/bin/bash IFS=: for folder in $PATH #PATH变量分隔符为: do echo $folder echo ------------------ for file ...

  4. 【转载】完全版线段树 by notonlysuccess大牛

    原文出处:http://www.notonlysuccess.com/ 今晚上比赛就考到了 排兵布阵啊,难受. [完全版]线段树 很早前写的那篇线段树专辑至今一直是本博客阅读点击量最大的一片文章,当时 ...

  5. Centos配置深度学习开发环境

    目录 1. 安装显卡驱动 2. 安装CUDA\CUDNN 3. 安装TensorFlow-gpu 测试 1. 安装显卡驱动 检测显卡驱动及型号 $ sudo rpm --import https:// ...

  6. LeetCode - 459. Repeated Substring Pattern - O(n)和O(n^2)两种思路 - KMP - (C++) - 解题报告

    题目 题目链接 Given a non-empty string check if it can be constructed by taking a substring of it and appe ...

  7. 应用Response.Write实现带有进度条的多文件上传

    前几天,写过一篇随笔“使用RESPONSE.WRITE实现在页面的生命周期中前后台的交互”.说是交互,实际上也主要是在ASP.NET的页面周期中 从后台利用RESPONSE.WRITE向前台即时的推送 ...

  8. Cortex-M3(NXP LPC 1788) 启动代码

    startup_LPC177x_8x.s启动代码分析. 参考资料: Cortex-M3 (NXP LPC1788)之启动代码分析 ARM启动过程(Cortex-M3 NXP LPC1768为例) ;/ ...

  9. 衡量经济活动的价值:国内生产总值(GDP, Gross Domestic Product)

    定义 GDP是在给定的时期内,经济生产的所有最终产品和服务的市场价值. 由于每一件产品或者服务的交易都会涉及到一个买者和一个卖着,买者支出的每一元钱必然成为卖者收入的每一元钱,因此,GDP既可以看成是 ...

  10. Internet History,Tecchnology and Security

    Internet History Internet Technologe Internet Secure