解決Java?API不能遠(yuǎn)程訪問(wèn)HBase的問(wèn)題
Java API不能遠(yuǎn)程訪問(wèn)HBase
今天我在虛擬機(jī)里面安裝了Hbase 1.2.4,說(shuō)在windows上Java API調(diào)用訪問(wèn)下玩玩,結(jié)果始終連接不上。
現(xiàn)象是啟動(dòng)程序后,程序出現(xiàn)卡死的狀態(tài),沒(méi)報(bào)錯(cuò)也不停止,大約半分鐘后才打印一堆日志出來(lái),說(shuō)連接重試了多次也連接不上,截圖如下:

這個(gè)問(wèn)題糾結(jié)了我半天,一查看發(fā)現(xiàn)HBase綁定的是本地IP:127.0.0.1,這當(dāng)然訪問(wèn)不了

然后我想可以把HBase的綁定在指定IP上,去查Hbase官網(wǎng),卻沒(méi)有這樣的配置項(xiàng)
后面百度下,發(fā)現(xiàn)HBase的這個(gè)問(wèn)題要特殊處理
分下面三步走,即可訪問(wèn)
1、配置Linux的hostname
2、配置Linux的hosts,映射ip的hostname的關(guān)系
3、配置訪問(wèn)windows的hosts
配置Llinux的hostname和hosts,這樣HBase啟動(dòng)的時(shí)候,就會(huì)自動(dòng)把HBase綁定到Linux域名對(duì)應(yīng)的ip上去
配置Linux的hostname

這里配置的hostname要Linux重啟才生效,為了不重啟就生效,我們可以執(zhí)行:hostname master命令,暫時(shí)設(shè)置hostname
配置Linux的hosts
映射ip的hostname的關(guān)系

配置完Linux的這兩項(xiàng),啟動(dòng)HBase就發(fā)現(xiàn)HBase綁定到了我們想暴露的ip上了

配置訪問(wèn)windows的hosts
路徑為:C:\Windows\System32\drivers\etc\hosts

配置完這三項(xiàng)Java API就可以遠(yuǎn)程訪問(wèn)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")); //創(chuàng)建表時(shí)至少加入一個(gè)列組
if(admin.tableExists(table.getTableName())){
admin.disableTable(table.getTableName());
admin.deleteTable(table.getTableName());
}
admin.createTable(table);
}
}POM文件,依賴HBase-client庫(kù)
<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連接HBase問(wèn)題

圖1-1
使用Java api連接hbase,出現(xiàn)了圖1-1的錯(cuò)誤。
一般情況下需要先檢查虛擬中進(jìn)程是否完整,然后再檢查api中的創(chuàng)建連接部分,看虛擬機(jī)IP地址和端口號(hào)是否正確,經(jīng)過(guò)檢查后,發(fā)現(xiàn)沒(méi)有問(wèn)題。
經(jīng)過(guò)查閱資料后,window環(huán)境變量的用戶環(huán)境變量中需要添加HADOOP_USER_NAME的配置,具體配置如圖1-2所示,配置完成后點(diǎn)擊確定,重啟elipese即可解決上述問(wèn)題。

圖1-2
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Boot中進(jìn)行 文件上傳和 文件下載功能實(shí)現(xiàn)
開(kāi)發(fā)Wb應(yīng)用時(shí),文件上傳是很常見(jiàn)的一個(gè)需求,瀏覽器 通過(guò) 表單形式 將 文件 以 流的形式傳遞 給 服務(wù)器,服務(wù)器再對(duì)上傳的數(shù)據(jù)解析處理,下面將通過(guò)一個(gè)案例講解使用 SpringBoot 實(shí)現(xiàn) 文件上傳,感興趣的朋友一起看看吧2024-07-07
JAVA代碼調(diào)用ffmpeg程序進(jìn)行視頻轉(zhuǎn)碼和推流方式
本文介紹了如何通過(guò)Java代碼調(diào)用FFmpeg進(jìn)行多媒體視頻處理,包括兩種方式:使用第三方封裝的jar包和使用ProcessBuilder類創(chuàng)建進(jìn)程,兩種方式各有優(yōu)缺點(diǎn),選擇時(shí)需根據(jù)具體需求和場(chǎng)景2025-02-02
帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之隊(duì)列
這篇文章主要為大家介紹了Java數(shù)據(jù)結(jié)構(gòu)和算法之隊(duì)列,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-01-01
mybatis-flex實(shí)現(xiàn)多數(shù)據(jù)源操作
MyBaits-Flex內(nèi)置了功能完善的多數(shù)據(jù)源支持,本文主要介紹了mybatis-flex實(shí)現(xiàn)多數(shù)據(jù)源操作,具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06
SpringSecurity導(dǎo)致SpringBoot跨域失效的問(wèn)題解決
本文主要介紹了SpringSecurity導(dǎo)致SpringBoot跨域失效的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
純Java代碼實(shí)現(xiàn)流星劃過(guò)天空
本文給大家介紹純java代碼實(shí)現(xiàn)流星劃過(guò)天空,包括流星個(gè)數(shù),流星飛行的速度,色階,流星大小相關(guān)變量設(shè)置。對(duì)java流星劃過(guò)天空特效代碼感興趣的朋友可以參考下本文2015-10-10
使用jpa的實(shí)體對(duì)象轉(zhuǎn)json符串時(shí)懶加載的問(wèn)題及解決
這篇文章主要介紹了使用jpa的實(shí)體對(duì)象轉(zhuǎn)json符串時(shí)懶加載的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02

