记一次spring cloud连接远程hbase趟过的坑

硬件环境:mac pro

软件环境:docker上运行的hbase,idea,本地hadoop

现象:spring cloud连接docker上运行的远程hbase总是出现Caused by: java.net.ConnectException: Connection refused,猜想应该是网络不够通畅导致的。

坑1:本地telnet hbase主机ip 端口,正常。

坑2:检查本地hosts映射关系,正常。

坑3:检查hbase服务端 ip映射关系,无,添加,依旧报错。

坑4:修改代码连接方式,去掉connection方式,报错。

坑5:查资料hbase版本由1.3.0更换为2.1.2,依旧报错,但更明确指出Connection refused: hbase-docker/10.41.14.25:16020,得知端口号对应与预期不一致,遂修改hbase主机增加16020端口映射关系,成功。

 

感想:相同的错误原因却不同,查找各种资料会增加排除问题的方法,具体问题还是要具体对待,此次趟坑对于才研究hbase的小白来说真的是太难了,不过还是感谢各博主分享的自己的解决思路。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Spring Cloud中访问HBase,你可以使用HBase的Java API或者Spring Data Hadoop。下面我将介绍两种方法。 1. 使用HBase的Java API: 首先,你需要在你的项目中添加HBase的依赖。在Maven项目中,你可以在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>VERSION_NUMBER</version> </dependency> ``` 然后,你可以使用HBase的Java API编写代码来访问HBase。你可以创建HBase连接,并使用Table接口来执行操作。以下是一个简单的示例: ```java // 创建HBase连接 Configuration config = HBaseConfiguration.create(); Connection connection = ConnectionFactory.createConnection(config); // 获取表对象 Table table = connection.getTable(TableName.valueOf("your_table_name")); // 执行操作,例如获取某一行数据 Get get = new Get(Bytes.toBytes("your_row_key")); Result result = table.get(get); // 处理结果 byte[] value = result.getValue(Bytes.toBytes("your_column_family"), Bytes.toBytes("your_column_qualifier")); System.out.println(Bytes.toString(value)); // 关闭连接 table.close(); connection.close(); ``` 2. 使用Spring Data Hadoop: Spring Data Hadoop是Spring框架的一个模块,它提供了与Hadoop生态系统集成的功能。你可以使用Spring Data Hadoop来访问HBase。 首先,你需要在你的项目中添加Spring Data Hadoop的依赖。在Maven项目中,你可以在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-hadoop</artifactId> <version>VERSION_NUMBER</version> </dependency> ``` 接下来,你可以使用Spring Data Hadoop的HbaseTemplate来执行HBase操作。以下是一个简单的示例: ```java @Autowired private HbaseTemplate hbaseTemplate; public void getDataFromHBase() { String tableName = "your_table_name"; String rowKey = "your_row_key"; String columnFamily = "your_column_family"; String columnQualifier = "your_column_qualifier"; byte[] value = hbaseTemplate.get(tableName, rowKey, columnFamily, columnQualifier); System.out.println(Bytes.toString(value)); } ``` 无论你选择使用HBase的Java API还是Spring Data Hadoop,都需要确保你的应用程序能够访问HBase集群,并且具有正确的权限配置。另外,还需要根据你的具体需求进行适当的调整和优化。希望这些信息对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值