一、NoSQL的簡介和常見的NoSQL
1) 什麼是NoSQL數據庫?(*) 什麼是關係型數據庫? 基於關係模型提出的一種數據庫
(*) NoSQL數據庫: 最大特點: 保存數據 key ---> value
跟關係型數據庫最大的區別:NoSQL不支持事務
(*) 常見的NoSQL數據庫:
(1) HBase:基於Hadoop之上的NoSQL。 HBase表 ---> HDFS的目錄
基於HBase的MapReduce程序
面向列
(2) Redis: 基於內存 ---> 提高性能。 Redis的前身是: MemCached(不支持持久化)
(3) MongoDB: 它是一個文檔型(BSON)的數據庫,BSON就是JSON的二進制.
舉例: 需求: 設置表結構,來保存電影的信息(MongoDB支持對象中包含N層對象,而關係型數據庫需要以主從表方式存儲數據)
(4) Cassandra: 跟HBase類似,面向列,它不需要基於Hadoop之上。
二、HBase的體系結構和表結構
三、搭建HBase的環境: 3種模式
1) 本地模式 (1臺機器就可以,不需要Hadoop(HDFS)的支持,他是保存在本地)特點:不需要Hadoop (HDFS)
安裝步驟:
(1) 解壓:
#tar -zxvf hbase-0.96.2-hadoop2-bin.tar.gz -C ~/training/
(2) 設置環境變量:
#vi ~/.bash_profile
HBASE_HOME=/root/training/hbase-0.96.2-hadoop2-bin
export HBASE_HOME
PATH=$HBASE_HOME/bin:$PATH
export PATH
(3) 配置:
#vi /root/training/hbase-0.96.2-hadoop2/conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///root/training/hbase-0.96.2-hadoop2/data</value>
</property>
</configuration>
(4) 啓動:
#source ~/.bash_profile
#./start-hbase.sh
進入HBASE SHELL管理臺
#hbase shell
可以創建表試試了:
create 'student','info','grade'
put 'student','stu001','info:name','tom'
put 'student','stu001','info:chinese','80'
scan 'student'
2) 僞分佈式模式 (1臺機器就可以,一定需要Hadoop的支持)