1. 程式人生 > >大資料-04-Hbase入門

大資料-04-Hbase入門

本文主要來自於 http://dblab.xmu.edu.cn/blog/install-hbase/ 謝謝原作者
本指南介紹了HBase,並詳細指引讀者安裝HBase. 前面第二章學習指南已經指導大家安裝Linux作業系統,並安裝配置了Hadoop。相關安裝可以檢視“大資料-01-安裝Hadoop”。

一、安裝並配置HBase

1. HBase安裝

1.1 解壓安裝包hbase-1.1.2-bin.tar.gz至路徑 /usr/local,命令如下:

sudo cp hbase-1.1.2-bin.tar.gz /usr/local
cd /usr/local
sudo tar -zxf hbase-1.1.2-bin.tar.gz 

1.2 將解壓的檔名hbase-1.1.2改為hbase,以方便使用,命令如下:

sudo mv /usr/local/hbase-1.1.2 /usr/local/hbase

1.3 配置環境變數
將hbase下的bin目錄新增到path中,這樣,啟動hbase就無需到/usr/local/hbase目錄下,大大的方便了hbase的使用。教程下面的部分還是切換到了/usr/local/hbase目錄操作,有助於初學者理解執行過程,熟練之後可以不必切換。
編輯~/.bashrc檔案

vim ~/.bashrc

如果沒有引入過PATH請在~/.bashrc檔案尾行新增如下內容, 如果已經引入過PATH請在export PATH這行追加/usr/local/hbase/bin,這裡的“:”是分隔符。

export PATH=$PATH:/usr/local/hbase/bin

編輯完成後,再執行source命令使上述配置在當前終端立即生效,命令如下:

source ~/.bashrc

1.4 新增HBase許可權

cd /usr/local
sudo chown -R hadoop ./hbase       #將hbase下的所有檔案的所有者改為hadoop,hadoop是當前使用者的使用者名稱。

1.5 檢視HBase版本,確定hbase安裝成功,命令如下:

/usr/local/hbase/bin/hbase version

命令執行後,輸出資訊截圖如下:
此處輸入圖片的描述

二、 HBase配置

HBase有三種執行模式,單機模式、偽分散式模式、分散式模式。作為學習,我們重點討論分散式模式。相關安裝可以檢視“

大資料-01-安裝Hadoop”。
以下先決條件很重要,比如沒有配置JAVA_HOME環境變數,就會報錯。
– jdk
– Hadoop( 單機模式不需要,偽分散式模式和分散式模式需要)
– SSH

2.1分佈模式配置

  1. 配置/usr/local/hbase/conf/hbase-env.sh 。配置JAVA環境變數,並新增配置HBASE_MANAGES_ZK為true,用vi命令開啟並編輯hbase-env.sh,命令如下:
vi /usr/local/hbase/conf/hbase-env.sh

配置JAVA環境變數,jdk的安裝目錄預設是 /usr/lib/jvm/java-8-openjdk-amd64
, 則JAVA _HOME =/usr/lib/jvm/java-8-openjdk-amd64
,配置HBASE_MANAGES_ZK為true,表示由hbase自己管理zookeeper,不需要單獨的zookeeper。hbase-env.sh中本來就存在這些變數的配置,大家只需要刪除前面的#並修改配置內容即可(#代表註釋):

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HBASE_CLASSPATH=/usr/local/hbase/conf
export HBASE_MANAGES_ZK=true 
export HBASE_HOME=/usr/local/hbase
export HADOOP_HOME=/usr/local/hadoop
export HBASE_LOG_DIR=/usr/local/hbase/logs

新增完成後儲存退出即可。

  1. 配置/usr/local/hbase/conf/hbase-site.xml
    開啟並編輯hbase-site.xml,命令如下:
vi /usr/local/hbase/conf/hbase-site.xml

在啟動HBase前需要設定屬性hbase.rootdir,用於指定HBase資料的儲存位置,因為如果不設定的話,hbase.rootdir預設為/tmp/hbase-${user.name},這意味著每次重啟系統都會丟失資料。此處設定為HBase安裝目錄下的hbase-tmp資料夾即(/usr/local/hbase/hbase-tmp),新增配置如下:

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://Master:9000/hbase</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.master</name>
        <value>Master:60000</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>Master,Slave1</value>
    </property>
</configuration>
  1. 配置regionservers
vim /usr/local/hbase/conf/regionservers

修改內容為

Master
Slave1

  1. 複製hbase到從節點中
    scp -r /usr/local/hbase Slave1:/usr/local/

  2. 接下來測試執行。首先切換目錄至HBase安裝目錄/usr/local/hbase;再啟動HBase。命令如下:
cd /usr/local/hbase
bin/start-hbase.sh

啟動後,master上程序和slave程序列表

Slave1伺服器上的結果如下:

注意!!!

因為hbase依賴於hadoop,因此啟動和停止都是需要按照順序進行

如果安裝了獨立的zookeeper
啟動順序: hadoop-> zookeeper-> hbase
停止順序:hbase-> zookeeper-> hadoop

使用自帶的zookeeper
啟動順序: hadoop-> hbase
停止順序:hbase-> hadoop

三、程式設計實踐

1. 利用Shell命令

1.1 HBase中建立表

HBase中用create命令建立表,具體如下:

cd /usr/local/hbase
bin/hbase shell

在hbase shell中執行下面語句,[如果有hbase>打頭的語句,都表示在hbase shell中執行]:

hbase> create 'student','Sname','Ssex','Sage','Sdept','course'

命令執行成功,返回如下:

0 row(s) in 1.4720 seconds
=> Hbase::Table - student

此時,即建立了一個“student”表,屬性有:Sname,Ssex,Sage,Sdept,course。因為HBase的表中會有一個系統預設的屬性作為行鍵,無需自行建立,預設為put命令操作中表名後第一個資料。建立完“student”表後,可通過describe命令檢視“student”表的基本資訊。命令執行截圖如下:
此處輸入圖片的描述

1.2 HBase資料庫基本操作

本小節主要介紹HBase的增、刪、改、查操作。在新增資料時,HBase會自動為新增的資料新增一個時間戳,故在需要修改資料時,只需直接新增資料,HBase即會生成一個新的版本,從而完成“改”操作,舊的版本依舊保留,系統會定時回收垃圾資料,只留下最新的幾個版本,儲存的版本數可以在建立表的時候指定。

  • 新增資料
    HBase中用put命令新增資料,注意:一次只能為一個表的一行資料的一個列,也就是一個單元格新增一個數據,所以直接用shell命令插入資料效率很低,在實際應用中,一般都是利用程式設計操作資料。
    當執行命令:put ‘student’,’95001’,’Sname’,’LiYing’時,即為student表添加了學號為95001,名字為LiYing的一行資料,其行鍵為95001。
hbase> put 'student','95001','Sname','LiYing'

命令執行截圖如下,即為student表添加了學號為95001,名字為LiYing的一行資料,其行鍵為95001。
此處輸入圖片的描述
命令執行截圖如下,即為95001行下的course列族的math列添加了一個數據。

hbase>  put 'student','95001','course:math','80'

查詢資料結果如下:

  • 刪除資料
    在HBase中用delete以及deleteall命令進行刪除資料操作,它們的區別是:1. delete用於刪除一個數據,是put的反向操作;2. deleteall操作用於刪除一行資料。
  1. delete 命令
hbase> delete 'student','95001','Sname'

命令執行截圖如下, 即刪除了student表中95001行下的Sname列的所有資料。查詢資料結果如下:

  1. deleteall命令
hbase>deleteall 'student','95001'

查詢資料結果如下:

scan命令用於檢視某個表的全部資料

hbase> scan 'student'
  1. 刪除表
    刪除表有兩步,第一步先讓該表不可用,第二步刪除表。
hbase>disable 'student'  
hbase>drop 'student'

1.3 查詢表歷史資料

查詢錶的歷史版本,需要兩步。
1、在建立表的時候,指定儲存的版本數(假設指定為5)

hbase>create 'teacher',{NAME=>'username',VERSIONS=>5}

2、插入資料然後更新資料,使其產生歷史版本資料,注意:這裡插入資料和更新資料都是用put命令

hbase> put 'teacher','91001','username','Mary'
hbase> put 'teacher','91001','username','Mary1'
hbase> put 'teacher','91001','username','Mary2'
hbase> put 'teacher','91001','username','Mary3'
hbase> put 'teacher','91001','username','Mary4'  
hbase> put 'teacher','91001','username','Mary5'

3、查詢時,指定查詢的歷史版本數。預設會查詢出最新的資料。(有效取值為1到5)

hbase>get 'teacher','91001',{COLUMN=>'username',VERSIONS=>5}

此處輸入圖片的描述

相關推薦

資料-04-Hbase入門

本文主要來自於 http://dblab.xmu.edu.cn/blog/install-hbase/ 謝謝原作者 本指南介紹了HBase,並詳細指引讀者安裝HBase. 前面第二章學習指南已經指導大家安裝Linux作業系統,並安裝配置了Hadoop。相關安裝可以檢視“大資料-01-安裝Hadoop”。 一、

資料學習——HBase 入門

HBase 學習環境 shiyanlou 《HBase介紹、安裝與應用案例》 - CentOS6.6 64位 - JDK 1.7.0_55 64位 - Hadoop 1.1.2 Hbase 介紹 HBase ——Hadoop Databa

大數據-04-Hbase入門

用戶 我們 property tar.gz 運行 JD www 配置 分隔 本指南介紹了HBase,並詳細指引讀者安裝HBase. 前面第二章學習指南已經指導大家安裝Linux操作系統,並安裝配置了Hadoop。相關安裝可以查看“大數據-01-安裝Hadoop”。 一、安裝

資料(一)——概念入門

最近在B站上看一套44集的大資料教程——經典Hadoop分散式系統基礎架構。想通過對Hadoop的學習,跳到大資料領域當中。作為大資料的開篇,主要是做一些大資料掃盲,並且重點介紹Hadoop需要學些什麼。 1.何為大資料 IBM提出大資料具有5V特點:Volume(大量)、Velocit

資料是什麼?0基礎資料怎麼進行入門學習?

0基礎我們該怎麼進行大資料入門學習呢?帶你們一起來學習。 一、大資料是什麼? 大資料,big data,《大資料》一書對大資料這麼定義,大資料是指不能用隨機分析法(抽樣調查)這樣捷徑,而採用所有資料進行分析處理。 這句話至少傳遞兩種資訊:。 1、大資料是海量的資料 2、大資料處理

資料環境---hbase的安裝

   前面已經搭建好了zookeeper主機叢集,hadoop叢集。   現子看來,zookeeper貌似提供了一種簡便的方法來解決hadoop叢集的問題,比如免密登陸,時間同步等。 但是二者都是分散式架構解決方案,所以應該不存在耦合關係! 

資料學習 ------ Scala入門

1.1 為什麼要學Scala語言[1]  1.優雅:這是框架設計師第一個要考慮的問題,框架的使用者是應用開發程式設計師,API是否優雅直接影響使用者體驗。 Martin OrderSke (scala發人) Epel瑞士科技大學 Javac是Matin編寫的

資料ZooKeeper快速入門

課程介紹 ZooKeeper是一個分散式的,開放原始碼的分散式應用程式協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要元件。它是一個為分散式應用提供一致性服務的軟體,提供的功能包括:配置維護、域名服務、分散式同步、組服務等。  ZooKeepe

資料Hadoop快速入門

Hadoop是一個由Apache基金會所開發的分散式系統基礎架構。 使用者可以在不瞭解分散式底層細節的情況下,開發分散式程式。充分利用叢集的威力進行高速運算和儲存。  Hadoop實現了一個分散式檔案系統(Hadoop Distributed File System),簡稱HDFS

資料架構師入門學習

經常有初學者在部落格和QQ問我,自己想往大資料方向發展,該學哪些技術,學習路線是什麼樣的,覺得大資料很火,就業很好,薪資很高。如果自己很迷茫,為了這些原因想往大資料方向發展,也可以,那麼我就想問一下,你的專業是什麼,對於計算機/軟體,你的興趣是什麼?是計算機專業,對作業系統、硬體、網路、伺服器感興趣

看完這些乾貨帖,資料產品從入門到精通

摘要: 看完這些乾貨帖,瞭解大資料產品應用場景 歡迎來到“MVP教你玩轉阿里雲”系列教程,在這裡,你將看到各行各業數字化轉型的一線實踐,學到資深開發者的經驗結晶。 你將以雲端計算領域的技術領袖為師,加速瞭解阿里雲技術產品和各行業數字化轉型的場景。 點選關注,在真實業務場景裡,加快技術成長,看懂數字中

資料平臺hbase,phoenix,spark搭建和研發問題和解決方式彙總

#Q Caused by: java.lang.NoSuchMethodError: org.apache.hadoop.tracing.SpanReceiverHost.get $A <hadoop.version>2.7.3</hadoop.version>

學習筆記:從0開始學習資料-7.hbase java程式設計hello world

上節搭建了hbase啟動環境,本節搭建hbase程式設計環境 1. 準備測試資料,建立表student #hbase shell create 'student','info','address' put 'student','1','info:age','20' put 'studen

學習筆記:從0開始學習資料-6.hbase安裝

環境:centos7 jdk1.8.0  hadoop2.6.0已安裝好了,單機偽分散式 1.下載hbase安裝檔案 wget http://archive-primary.cloudera.com/cdh5/cdh/5/hbase-1.2.0-cdh5.16.0.tar.gz

資料HBase命令列操作

1、課程簡介 本文章先會介紹HBase命令列,接著會介紹java程式碼對hbase中的表進行增刪改查。 本文章中所有命令均在CentOS-6.4-x86_64,hadoop-2.5.2,jdk1.8.0_152,zookeeper-3.4.11,hbase-1.2.6中執行通過,為減少linux許

資料學習初級入門教程(一) —— Hadoop 2.x 的安裝、啟動和測試

大資料最基礎的就是資料的儲存和計算,而 Hadoop 就是為儲存和計算而生,是最基礎的大資料處理工具。這篇簡單寫寫 Hadoop 2.x 的安裝,啟動和測試。 一、準備環境 大資料環境的部署,一般都是叢集,機器數量為奇數,這裡以 5 臺機器為例,作業系統為 CentOS 6.9_x64;

[資料專案]-HBase+SpringBoot實戰分散式檔案儲存

2018最新最全大資料技術、專案視訊。整套視訊,非那種淘寶雜七雜八網上能免費找到拼湊的亂八七糟的幾年前的不成體系浪費咱們寶貴時間的垃圾,詳細內容如下,需要的聯絡QQ:3164282908(加Q註明部落格園)。 視訊高清不加密,需要加QQ。 更有海量大資料技術視訊、大資料專案視訊,機器學習深度學習技術視訊、

資料hbase(一) --- HBase介紹,特性,安裝部署,shell命令,client端與hbase的互動過程,程式設計API訪問hbase實現百萬寫入

一、HBase介紹 ---------------------------------------------- 1.基於hadoop的資料庫,具有分散式,可伸縮的大型資料儲存 2.用於對資料的隨機訪問,實時讀寫 3.巨大的表,十億行*百萬列

資料hbase(四) --- rowkey設計原則模擬通話日誌,BloomFilter,phonix環境部署,hive-hbase整合

一、rowkey設計 -- 模擬通話日誌 -------------------------------------------------- 1.建表 $hbase> create 'ns1:calllogs' , 'f1' 2.編寫

資料儲存---HBase介紹(上)

本次主要介紹三部分: HBase簡介 HBase整體架構 HBase安裝和啟動 Hbase基本操作 HBase簡介 hbase是bigtable的開源java版本,是建立在hdfs之上。 提供高可靠性、高效能、列儲存、可伸縮、實時讀寫nosql的資料庫系統