天天看點

HBase配置及使用

1.Why

1.1.為什麼要學習hbase

Web架構圖

Model2

HBase配置及使用
  • 開發的順序:從下到上
  • 讀别人代碼的時候是從上到下
  • 總結(共性)

所有的項目,資料都存儲到了資料庫中 資料庫隻認sql語句(crud)

使用者會在網頁上進行:點選,輕按兩下,右擊,滑動此效果;會被jsp(Servlet)(java)翻譯成sql語句,發送給資料庫

Cud:是對資料庫進行更改操作,R:對資料庫進行查詢操作;一張的crud:最常用的是R(查詢);而每一次發送查詢,都會發送一條sql語句;資料庫見到sql語句就會執行;同樣的查詢會發送多條sql語句;如果發現sql語句執行的結果是一樣的,直接隻查詢一次資料庫;把查詢的資料放到一個地兒(記憶體);下次查詢的時候直接查詢記憶體,這樣會超級快;對于資料庫來說減輕了壓力;如果資料庫裡面的記錄發生了修改,請順手把緩存也更新一次3
  • 緩存的條件

表裡面的記錄超級多;

表裡面的記錄不經常修改

命中率:得經常通路

  • 緩存的分類:

Jvm的集合:map;缺點:jvm(tomcat)要是重新開機了咋辦

早期的Memcache:它是一個獨立的軟體,使用的時候當成map使用;缺點:電腦重新開機咋辦

Redis:把資料放到記憶體中,會定時的把資料放到磁盤中; Web項目映射到大資料項目中

  • Web項目映射到大資料項目中
web項目 大資料
磁盤 Hdfs
Db hive
緩存(Redis) Hbase

2.介紹

官網:http://hbase.apache.org/

  • 谷歌的三篇論文

Gfs===>hadoop的hdfs

Mapreduce—>hadoop的mapReduce

bigTable—>Hbase

HBase配置及使用

下載下傳:http://hbase.apache.org/downloads.html

HBase配置及使用

上圖解析:

Bin:可執行檔案

Conf:配置檔案

Docs:幫助文檔

Hbase-webapps:web界面

Lib:jar包

README.txt:幫助文檔

3.配置單機版本

  • 将下載下傳好的HBase壓縮包拉到虛拟機上

    #解壓目錄

    tar -xzvf hbase-2.2.2-bin.tar.gz

    #重新命名

    mv hbase-2.2.2/ hbase

    #删除docs目錄

    rm -rf docs/(此目錄是幫助文檔,可删可不删)

  • 修改hbase下的 conf hbase-env.sh配置檔案

    配置JAVE_HOME路徑

    HBase配置及使用
    如何檢視java安裝的目錄?
    HBase配置及使用
    - 修改hbase下的 conf hbase-site.xml配置檔案
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<property>
		<name>hbase.rootdir</name>
		<!--
			file://表示的是本地目錄
			hdfs://表示的是hdfs的目錄;
			hdfs://namenode.example.org:8020/hbase
		 -->
		<value>file:///data/hbase/data</value>
	</property>
	<property>
		<name>hbase.zookeeper.property.dataDir</name>
		<!-- zookeeper的目錄:data目錄 -->
		<value>/data/hbase/zookeeper_data</value>
	</property>
	<property>
		<name>hbase.unsafe.stream.capability.enforce</name>
		<value>false</value>
		<description>
			檢查相容性,如果設定為false,資料有可能丢失(這是一個警告)
		  Controls whether HBase will check for stream capabilities (hflush/hsync).

		  Disable this if you intend to run on LocalFileSystem, denoted by a rootdir
		  with the 'file://' scheme, but be mindful of the NOTE below.

		  WARNING: Setting this to false blinds you to potential data loss and
		  inconsistent system state in the event of process and/or node failures. If
		  HBase is complaining of an inability to use hsync or hflush it's most
		  likely not a false positive.
		</description>
	</property>
</configuration>
           
  • 啟動hbase
bin/start-hbase.sh
           

如果啟動報錯,去檢視日志

HBase配置及使用

網頁通路 :http://主機名:16010

HBase配置及使用
  • 停止
bin/stop-hbase.sh
           
  • 啟動用戶端
bin/hbase shell
           
  • 幫助文檔
  • 檢視所有的指令 :Help
    HBase配置及使用

    檢視指定指令的用法

    help ‘create_namespace’

    ![在這裡插入圖檔描述](https://img-blog.csdnimg.cn/20191213201404439.png

建立一張表

create ‘表名’,’列族’(column family)

建立指定namespace目錄下面的表;所有的表名左邊要加上namespace,如果不加,預設是default

HBase配置及使用

建立namespace

HBase配置及使用

檢視表結構

list 表名

HBase配置及使用

插入資料

put 表名,鍵(主鍵),列的名字,值

put ‘test’,‘01’,‘cf:name’,‘zhangsan’

put ‘test’,‘01’,‘cf:age’,‘18’

HBase配置及使用

查詢

查詢所有記錄

scan 表名

HBase配置及使用

根據主鍵查詢

查詢所有記錄(這裡相當于mysql裡的 select * from test where id = 01;)

HBase配置及使用

删除表(删除表一定要先停用表,不然無法删除)

停用表:disable 表名

drop ‘表名’

HBase配置及使用

退出用戶端:quit, exit

資料庫mysql Hbase
資料庫 Namespace
記錄 記錄
列族下面才有列

繼續閱讀