hbase 偽分布安裝 java_HBase基礎和偽分布式安裝配置

一、HBase(NoSQL)的數據模型

1.1 表(table),是存儲管理數據的。

1.2 行鍵(row key),類似于MySQL中的主鍵,行鍵是HBase表天然自帶的,創建表時不需要指定

1.3 列族(column family),列的集合。

一張表中有多個行健,一個行健讀取出來的是一條記錄,列族和MySQL中的列差不多,但是它是列的集合

HBase中列族是需要在定義表時指定的,列是在插入記錄時動態增加的。

HBase表中的數據存儲在本地磁盤上的時候,每個列族單獨一個作為文件存儲。

528cccd8c672a78b35020498883a0c5a.png

上圖表示HBase中表的一行

和關系型數據庫不同的是

關系型數據庫一行中每一個列的值只能是一個,如:

UserIdUserName

1JChubby

而在NoSql中,一行里面某一個列的值可能是多個的,如上圖,或者:

UserIdUserName

1JChubby

Looky

其中省略了timestamp時間戳這一列,但是在NoSql中讀取這一行數據的出來時,數據應該是和關系型數據庫讀出來的是差不多的

時間戳列起到了標識列數據版本的作用,當沒有指定時間戳的時候默認取的是最新的列數據,具體請參照上圖

1.4 存儲的數據都是字節數組。

二、HBase的物理模型

2.1 HBase是適合海量數據(如20PB)的秒級簡單查詢的數據庫。

2.2 HBase表中的記錄,按照行鍵進行拆分, 拆分成一個個的region。

如:在一個有1W行健的表中,每2K個行健拆分成一個region分別存儲在不同的節點中,每個region記錄著行健的起始位置和最終位置[startkey,endkey]

許多個region存儲在region server(單獨的物理機器)中的。

這樣,對表的操作轉化為對多臺region server的并行查詢。

HBase中有兩種特殊的表,分別是-ROOT和.META

.META中記錄著各個region的起止行健,當.META中的記錄很大時,又會按照相同的規則拆分成不同的region記錄中-ROOT表中

f18a5b08cc1cf561b1e0cf98f015bb55.png

如上圖所示,當要查詢數據時,先找-ROOT表中記錄的region信息,找到對應的.META表中的region,在到實際的節點上的region查詢數據

三、HBase的體系結構

3.1 HBase是主從式結構,HMaster、HRegionServer

四、HBase偽分布安裝

HBase的安裝是是建立在hadoop和zookeeper集群之上的

安裝時確保hadoop和zookeeper集群已安裝成功并啟動

4.1 解壓縮、重命名、設置環境變量

把hbase-0.94.2-security.tar.gz復制到/home/hadoop

解壓hbase-0.94.2-security.tar.gz與重命名

#cd /home/hadoop

#tar -zxvf hbase-0.94.2-security.tar.gz

#mv hbase-0.94.2-security hbase

修改/etc/profile文件。

#vi /etc/profile

增加

export HBASE_HOME=/home/hadoop/hbase

修改

export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HBASE_HOME/bin

保存退出

#source /etc/profile

4.2 修改$HBASE_HOME/conf/hbase-env.sh,修改內容如下:

export JAVA_HOME=/usr/java/jdk1.6.0_45

export HBASE_MANAGES_ZK=true

第一個配置java環境變量

第二個配置在本機器上的HBase可以自己啟動zookeeper和使用

4.2 修改$HBASE_HOME/conf/hbase-site.xml,修改內容如下:

hbase.rootdir

hdfs://master:9000/hbase

hbase.cluster.distributed

true

hbase.zookeeper.quorum

master

dfs.replication

1

hbase.rootdir配置在hdfs文件系統上hbase存儲的路徑

hbase.cluster.distributed配置是否是分布式的

hbase.zookeeper.quorum配置zookeeper在哪個節點上

dfs.replication配置副本個數

注意:hbase.rootdir的主機和端口號與hadoop的配置文件core-site.xml的fs.default.name的主機和端口號一致

4.3 (可選)文件regionservers的內容為master,該文件記錄regionserver的各個節點的主機名,因為是偽分布式安裝,所只寫一個,localhost或者主機名都可以

4.4 啟動hbase,在bin目錄下執行命令start-hbase.sh

******啟動hbase之前,確保hadoop是運行正常的,并且可以寫入文件*******

4.5 驗證是否安裝成功:

(1)執行jps,發現新增加了3個java進程,分別是HMaster、HRegionServer、HQuorumPeer

(2)使用瀏覽器訪問http://master:60010,可以進入和hadoop類似的web管理頁面

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/541434.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/541434.shtml
英文地址,請注明出處:http://en.pswp.cn/news/541434.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java treemap_Java TreeMap firstEntry()方法及示例

java treemapTreeMap類的firstEntry()方法 (TreeMap Class firstEntry() method) firstEntry() method is available in java.util package. firstEntry()方法在java.util包中可用。 firstEntry() method is used to retrieve the key-value pairs linked with the lowest valu…

linux常用網絡命令ping和arping

linux常用網絡命令ping和arping ping 向目標主機發送icmp請求包 常用來測試當前主機與目標主機網絡連接狀況 常見選項 -c 設置發包的個數 -s 設置發的包的塊大小,最大不超過65507 -W 設置接收回應超時時間 -i …

java printwriter實例_PrintWriter做過濾流+FileWriter案例分析

package com.mstf.ui;import java.io.*;public class TestWriter{public static void main(String args[]){//PrintWriter做過濾流FileWriter//doFilter1();//2、PrintWriter做過濾流OutputStreamWriter//doFilter2();//3、PrintWriter可以作為節點流//doNode();//4、PrintWrit…

treemap比較器_Java TreeMap比較器()方法與示例

treemap比較器TreeMap類的compare()方法 (TreeMap Class comparator() method) comparator() method is available in java.util package. 比較器()方法在java.util包中可用。 comparator() method is used to return the key element in this TreeMap based on the Comparator…

洛谷P1204 [USACO1.2]擠牛奶Milking Cows 前綴和

這題數據比較水 暴搜都能夠過去 1 #include <cstdio>2 #include <cmath>3 #include <cstdlib>4 #include <algorithm>5 #include <string>6 #include <iostream>7 #include <iomanip>8 #include <cstring>9 using namespace s…

java script創建對象_JavaScript七種非常經典的創建對象方式

JavaScript創建對象的方式有很多&#xff0c;通過Object構造函數或對象字面量的方式也可以創建單個對象&#xff0c;顯然這兩種方式會產生大量的重復代碼&#xff0c;并不適合量產。接下來介紹七種非常經典的創建對象的方式&#xff0c;他們也各有優缺點。一、工廠模式可以無數…

java 方法 示例_Java掃描儀具有示例的NextNextInt()方法

java 方法 示例掃描器類的hasNextInt()方法 (Scanner Class hasNextInt() method) Syntax: 句法&#xff1a; public boolean hasNextInt();public boolean hasNextInt(int rad);hasNextInt() method is available in java.util package. hasNextInt()方法在java.util包中可用…

axis2開發webservice之編寫Axis2模塊(Module)

axis2中的模塊化開發。能夠讓開發者自由的加入自己所需的模塊。提高開發效率&#xff0c;減少開發的難度。 Axis2能夠通過模塊&#xff08;Module&#xff09;進行擴展。Axis2模塊至少須要有兩個類&#xff0c;這兩個類分別實現了Module和Handler接口。開發和使用一個Axis2模塊…

java 看書瀏覽器官_JAVA讀取文件流,設置瀏覽器下載或直接預覽操作

最近項目需要在瀏覽器中通過url預覽圖片。但發現瀏覽器始終默認下載&#xff0c;而不是預覽。研究了一下&#xff0c;發現了問題&#xff1a;// 設置response的header&#xff0c;注意這句&#xff0c;如果開啟&#xff0c;默認瀏覽器會進行下載操作&#xff0c;如果注釋掉&…

Java PriorityQueue poll()方法與示例

PriorityQueue類poll()方法 (PriorityQueue Class poll() method) poll() method is available in java.util package. poll()方法在java.util包中可用。 poll() method is used to return the first element with removing an element from this PriorityQueue. poll()方法用于…

scrapy抓取淘寶女郎

scrapy抓取淘寶女郎 準備工作 首先在淘寶女郎的首頁這里查看&#xff0c;當然想要爬取更多的話&#xff0c;當然這里要查看翻頁的url,不過這操蛋的地方就是這里的翻頁是使用javascript加載的&#xff0c;這個就有點尷尬了&#xff0c;找了好久沒有找到&#xff0c;這里如果有朋…

map在Java集合_java集合之Map

MapMap用于保存具有映射關系的數據。Map中key不允許重復&#xff0c;value可以重復&#xff0c;key和value之間存在單向一對一關系HashMap和Hashtable區別1 Hashtable線程安全、HashMap線程不安全&#xff0c;所以HashMap性能高一點2 Hashtable不允許用null做key和value&#x…

Java OutputStream close()方法與示例

OutputStream類close()方法 (OutputStream Class close() method) close() method is available in java.io package. close()方法在java.io包中可用。 close() method is used to close this OutputStream stream and free all system resources linked with this stream and …

怎樣在fastboot 里面加入新的命令

fastboot 是android 默認的一種debug 方法。它的優點是在進入linux kernel 之前就可以操作。默認fastboot 支持的命令&#xff1a; usage: fastboot [ <option> ] <command>commands: update <filename> reflash device …

java編寫字符串連接程序注釋_Java 注解自動化處理對應關系實現注釋代碼化

public class EsQuery { private static int DEFAULT_SIZE 100; private final Map termFilter;private final Map rangeFilter;private final Map matchFilter;private int size;private String orderBy null;private String order null; // query 查詢語法, 是否需要 filtere…

getlanguage_Java語言環境getLanguage()方法與示例

getlanguage區域設置類getLanguage()方法 (Locale Class getLanguage() method) getLanguage() method is available in java.util package. getLanguage()方法在java.util包中可用。 getLanguage() method is used to retrieve this Locale language code and the language co…

[轉]Anaconda

安裝 Anaconda Anaconda 可用于 Windows、Mac OS X 和 Linux。可以在 https://www.continuum.io/down... 上找到安裝程序和安裝說明。 如果計算機上已經安裝了 Python&#xff0c;這不會有任何影響。實際上&#xff0c;腳本和程序使用的默認 Python 是 Anaconda 附帶的 Python。…

win10 iot core java_Windows 10 IoT Core 正式版初體驗

今天收到Windows 10 IoT Core Team郵件&#xff0c;Windows 10 IoT Core正式發布。以下記錄了今天在Raspberry Pi 2上的體驗過程&#xff1a;準備工作一臺運行著正版Windows 10且版本不小于10240的個人PCVisual Studio 2015 版本不小于14.0.23107.0 D14Rel Install Visual Stud…

filterwriter_Java FilterWriter flush()方法與示例

filterwriterFilterWriter類flush()方法 (FilterWriter Class flush() method) flush() method is available in java.io package. flush()方法在java.io包中可用。 flush() method is used to flush out the string from this FilterWriter stream. flush()方法用于從此Filter…

VUE2 第五天學習--過渡效果

閱讀目錄 1.理解VUE---過渡效果回到頂部1.理解VUE---過渡效果 1. 過渡的-css-類名會有4個(css) 類名在 enter/leave 在過渡中切換。1. v-enter: 進入過渡的開始狀態。在元素被插入時生效&#xff0c;在下一個幀移除。2. v-enter-active: 進入過渡的結束狀態。在元素被插入時生效…