解決Java?API不能遠(yuǎn)程訪(fǎng)問(wèn)HBase的問(wèn)題
Java API不能遠(yuǎn)程訪(fǎng)問(wèn)HBase
今天我在虛擬機(jī)里面安裝了Hbase 1.2.4,說(shuō)在windows上Java API調(diào)用訪(fǎng)問(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)然訪(fǎng)問(wèn)不了
然后我想可以把HBase的綁定在指定IP上,去查Hbase官網(wǎng),卻沒(méi)有這樣的配置項(xiàng)
后面百度下,發(fā)現(xiàn)HBase的這個(gè)問(wèn)題要特殊處理
分下面三步走,即可訪(fǎng)問(wèn)
1、配置Linux的hostname
2、配置Linux的hosts,映射ip的hostname的關(guān)系
3、配置訪(fǎng)問(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上了
配置訪(fǎng)問(wèn)windows的hosts
路徑為:C:\Windows\System32\drivers\etc\hosts
配置完這三項(xiàng)Java API就可以遠(yuǎn)程訪(fǎng)問(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文件,依賴(lài)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)境變量的用戶(hù)環(huán)境變量中需要添加HADOOP_USER_NAME的配置,具體配置如圖1-2所示,配置完成后點(diǎn)擊確定,重啟elipese即可解決上述問(wèn)題。
圖1-2
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Security實(shí)現(xiàn)登錄認(rèn)證實(shí)戰(zhàn)教程
這篇文章主要介紹了Spring Security實(shí)現(xiàn)登錄認(rèn)證實(shí)戰(zhàn)教程,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-06-06Hadoop集成Spring的使用詳細(xì)教程(快速入門(mén)大數(shù)據(jù))
這篇文章主要介紹了Hadoop集成Spring的使用詳細(xì)教程(快速入門(mén)大數(shù)據(jù)),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01Spring Boot應(yīng)用上傳文件時(shí)報(bào)錯(cuò)的原因及解決方案
這篇文章主要介紹了Spring Boot應(yīng)用上傳文件時(shí)報(bào)錯(cuò)的原因及解決方案,幫助大家更好的理解和學(xué)習(xí)使用spring boot框架,感興趣的朋友可以了解下2021-02-02Spring整合mybatis、springMVC總結(jié)
這篇文章主要為大家詳細(xì)介紹了Java整合Mybatis,SpringMVC,文中有詳細(xì)的代碼示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2023-05-05Java 實(shí)現(xiàn)緩存的三種方式及問(wèn)題匯總
這篇文章主要介紹了Java 實(shí)現(xiàn)緩存的三種方式及問(wèn)題匯總,HashMap實(shí)現(xiàn)緩存,可以實(shí)現(xiàn)簡(jiǎn)單的本地緩存,但是實(shí)際開(kāi)發(fā)中不推薦,我們可以簡(jiǎn)單模擬一下緩存的實(shí)現(xiàn),本文通過(guò)示例代碼介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-03-03Java接收xml格式參數(shù)轉(zhuǎn)為json的方法
文章主要介紹了如何使用JAXB將XML格式的參數(shù)接收并轉(zhuǎn)換為Java實(shí)體類(lèi),然后將實(shí)體類(lèi)轉(zhuǎn)換為JSON格式,文中提到在實(shí)體類(lèi)中使用`@XmlElement`和`@JsonProperty`注解的重要性,以及如何處理復(fù)雜的XML結(jié)構(gòu)2024-11-11基于Java實(shí)現(xiàn)PDF文本旋轉(zhuǎn)傾斜
這篇文章主要介紹了基于Java實(shí)現(xiàn)PDF文本旋轉(zhuǎn)傾斜,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05