解決Java?API不能遠程訪問HBase的問題
Java API不能遠程訪問HBase
今天我在虛擬機里面安裝了Hbase 1.2.4,說在windows上Java API調(diào)用訪問下玩玩,結(jié)果始終連接不上。
現(xiàn)象是啟動程序后,程序出現(xiàn)卡死的狀態(tài),沒報錯也不停止,大約半分鐘后才打印一堆日志出來,說連接重試了多次也連接不上,截圖如下:
這個問題糾結(jié)了我半天,一查看發(fā)現(xiàn)HBase綁定的是本地IP:127.0.0.1,這當(dāng)然訪問不了
然后我想可以把HBase的綁定在指定IP上,去查Hbase官網(wǎng),卻沒有這樣的配置項
后面百度下,發(fā)現(xiàn)HBase的這個問題要特殊處理
分下面三步走,即可訪問
1、配置Linux的hostname
2、配置Linux的hosts,映射ip的hostname的關(guān)系
3、配置訪問windows的hosts
配置Llinux的hostname和hosts,這樣HBase啟動的時候,就會自動把HBase綁定到Linux域名對應(yīng)的ip上去
配置Linux的hostname
這里配置的hostname要Linux重啟才生效,為了不重啟就生效,我們可以執(zhí)行:hostname master命令,暫時設(shè)置hostname
配置Linux的hosts
映射ip的hostname的關(guān)系
配置完Linux的這兩項,啟動HBase就發(fā)現(xiàn)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")); //創(chuàng)建表時至少加入一個列組 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連接HBase問題
圖1-1
使用Java api連接hbase,出現(xiàn)了圖1-1的錯誤。
一般情況下需要先檢查虛擬中進程是否完整,然后再檢查api中的創(chuàng)建連接部分,看虛擬機IP地址和端口號是否正確,經(jīng)過檢查后,發(fā)現(xiàn)沒有問題。
經(jīng)過查閱資料后,window環(huán)境變量的用戶環(huán)境變量中需要添加HADOOP_USER_NAME的配置,具體配置如圖1-2所示,配置完成后點擊確定,重啟elipese即可解決上述問題。
圖1-2
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Security實現(xiàn)登錄認證實戰(zhàn)教程
這篇文章主要介紹了Spring Security實現(xiàn)登錄認證實戰(zhàn)教程,本文通過示例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧2024-06-06Hadoop集成Spring的使用詳細教程(快速入門大數(shù)據(jù))
這篇文章主要介紹了Hadoop集成Spring的使用詳細教程(快速入門大數(shù)據(jù)),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01Spring Boot應(yīng)用上傳文件時報錯的原因及解決方案
這篇文章主要介紹了Spring Boot應(yīng)用上傳文件時報錯的原因及解決方案,幫助大家更好的理解和學(xué)習(xí)使用spring boot框架,感興趣的朋友可以了解下2021-02-02Spring整合mybatis、springMVC總結(jié)
這篇文章主要為大家詳細介紹了Java整合Mybatis,SpringMVC,文中有詳細的代碼示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2023-05-05Java接收xml格式參數(shù)轉(zhuǎn)為json的方法
文章主要介紹了如何使用JAXB將XML格式的參數(shù)接收并轉(zhuǎn)換為Java實體類,然后將實體類轉(zhuǎn)換為JSON格式,文中提到在實體類中使用`@XmlElement`和`@JsonProperty`注解的重要性,以及如何處理復(fù)雜的XML結(jié)構(gòu)2024-11-11基于Java實現(xiàn)PDF文本旋轉(zhuǎn)傾斜
這篇文章主要介紹了基于Java實現(xiàn)PDF文本旋轉(zhuǎn)傾斜,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05