HBase的安裝配置和使用Java連線
Hadoop叢集搭建可參考:http://blog.csdn.net/yanhang0610/article/details/51896545
1 系統環境
系統:CentOS 7.0。
版本:JDK 1.8.0_91,Hadoop 2.7.3,Zookeeper 3.4.9,Hbase 1.2.5。
參考:https://wenku.baidu.com/view/b2bd94946bd97f192379e941.html
2 安裝
2.1 下載
下載合適版本的Hbase:
http://apache.mirror.gtcomm.net/hbase
hbase版本需與hadoop版本、jdk版本匹配,參考:
http://hbase.apache.org/book.html#configuration
2.2 安裝
解壓即完成安裝,並移動到合適位置。
2.3 設定環境變數
# vi /etc/profile.d/hbase.sh
export HBASE_HOME=/root/bigdata/hbase-1.2.5
# chmod 755 /etc/profile.d/hbase.sh
# . /etc/profile
2.4 配置檔案
參考:http://www.cnblogs.com/nexiyi/p/hbase_config_94.html
https://wenku.baidu.com/view/7110c790be23482fb5da4c97.html?pn=1
2.4.1 配置regionservers
snn
dn01
dn02
2.4.2 配置hbase-env.sh
# export HAVA_HOME=/usr/java/jdk1.8.0_91
export HBASE_MANAGES_ZK=false #禁用hbase管理zk,使用自己安裝的zk
2.4.3 配置hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://nn:9000/hbase</value>
</property>
<property>
<name>hbase.master</name>
<value>hdfs:nn:60000</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!--zookeeper節點,hbase-env.sh裡的HBASE_MANAGES_ZK=true時有效 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>nn,dn01,dn02</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/root/bigdata/zookeeper-3.4.9/dataDir</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/root/bigdata/hbase-1.2.5/tmpDir</value>
</property>
<!-- web ui-->
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
</configuration>
2.4.4 配置backup-masters
為了增加Hbase叢集的可用性,可以為hbase增加多個backup master。當master掛掉後,backup master可以自動接管整個hbase的叢集。
配置backup master的方式是在hbase的conf下增加檔案:backup-masters,在該檔案裡面增加backup master的機器列表,每臺機器一條記錄。
2.5 安全配置
3 執行
在$HBASE_HOME/bin下,執行:
# ./start-hbase.sh
啟動成功後可以訪問WEB管理頁面,如:
關閉:
# ./stop-hbase.sh
4 連線
4.1 Hbase Shell
在$HBASE_HOME/bin下,執行:
# ./hbase shell
4.2 Hbase客戶端工具
4.3 Java連線
4.3.1 環境配置
在本地hosts檔案(如C:\Windows\System32\drivers\etc\hosts)里加上HBase叢集上的hosts配置。
匯入Hbase安裝包下的lib資料夾裡的所有jar包到classpath,可做成user library。
4.3.2 示例程式碼
package hbase.demo;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.util.Bytes;
public class Demo {
public static void main(String[] args) {
String tableName = "member";
try {
Configuration configuration = HBaseConfiguration.create();
configuration.set("hbase.zookeeper.property.clientPort","2181"); // zookeeper客戶端訪問埠
configuration.set("hbase.zookeeper.quorum","192.168.1.213"); // HBase叢集伺服器地址(任一臺)
HBaseAdmin admin = newHBaseAdmin(configuration);
System.out.println(admin.tableExists(tableName));
// 讀取表資料
HTable table = newHTable(configuration,tableName);
Scan scan = new Scan();
ResultScanner rs =table.getScanner(scan);
for (Result result :rs) {
for (Cell cell : result.listCells()) {
String key = Bytes.toString(CellUtil.cloneQualifier(cell));
String value = Bytes.toString(CellUtil.cloneValue(cell));
System.out.println(key +"=> " + value);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
執行結果:
true
city => hangzhou
contry => china
province => zhejiang
age => 24
birthday => 1987-06-17
company => alibaba
city => jieyang
contry => china
province => guangdong
town => xianqiao
birthday => 1987-4-17
company => alibaba
favorite => movie
5 常見問題
5.1 Java連線Hbase叢集報超時錯誤
報錯:java.io.IOException: Failed to get result within timeout,timeout=60000ms
原因:開發環境本地未配置hosts。
解決:在本地hosts檔案(如C:\Windows\System32\drivers\etc\hosts)里加上HBase叢集上的hosts配置即可。
相關文章
- Hbase單機部署 java連線HbaseJava
- hbase 2.0.2安裝配置
- 安裝配置PGBouncer連線池
- Linux環境HBase安裝配置Linux
- docker 安裝redis 以及配置連線DockerRedis
- Java安裝和環境配置Java
- Linux系統中KafKa安裝和使用方法 java客戶端連線kafkaLinuxKafkaJava客戶端
- Java開發環境的安裝和配置Java開發環境
- Hadoop叢集中Hbase的介紹、安裝、使用Hadoop
- linux安裝redis和遠端連線LinuxRedis
- Hbase的安裝與部署
- git安裝及配置教程 windows windows上git的安裝和使用GitWindows
- 長連線和短連線的使用
- OSWatcher的安裝、配置、使用
- Nginx的安裝配置使用Nginx
- Flutter的安裝和配置Flutter
- Barrier 的安裝和配置
- java本地連線遠端Hbase可是返回zookeeper的地址是localhostJavalocalhost
- Hbase單機版的安裝
- MySQL下載安裝配置及JDBC連線資料庫MySqlJDBC資料庫
- 最新最全mysql8.0.15安裝配置及連線Navicat教程MySql
- RHEL7/CentOS7線上和離線安裝GitLab配置使用實踐CentOSGitlab
- 連線zk 報錯連線不上hbase jdbcJDBC
- linux下mysql安裝、授權、建立使用者、連線navicat、連線entityLinuxMySql
- Linux下安裝java及配置(yum安裝)LinuxJava
- macOS Java安裝與配置MacJava
- 安裝和配置sendmailAI
- Linux 使用Yum安裝Go和配置環境LinuxGo
- [JAVA] JAVA 8 環境安裝配置Java
- VNC,Linux系統下如何安裝和連線VNC!VNCLinux
- Manjaro Liunx 安裝到使用 2 安裝後的配置JAR
- 【ubuntu】使用二進位制安裝包安裝node和npm並配置UbuntuNPM
- Nginx的安裝和多域名配置Nginx
- MySQL的下載、安裝和配置MySql
- Elasticsearch 的安裝和簡單配置Elasticsearch
- JAVA之長連線、短連線和心跳包Java
- 如何在 Linux 中安裝、配置和使用 Fish Shell?Linux
- 11. Oracle for Linux安裝和配置——11.2. Linux安裝和配置——11.2.2.Linux安裝(1)OracleLinux
- 11. Oracle for Linux安裝和配置——11.2. Linux安裝和配置——11.2.2.Linux安裝(2)OracleLinux