正文
一,前言
上節我們知道Hbase是hadoop體系中的分布式存儲的nosql,他依賴於HDFS進行數據存儲,依賴於Zookeeper進行hmaster的高可用,同時若要對其進行數據分析,可能還用到MapReduce。所以在進行服務安裝的時候,必須要先安裝HDFS,Zookeeper和yarn。若對這些安裝有疑問,請查看前面章節。
二,前期准備
2.1 文件下載和解壓
點擊下載Hbase:當然也可以自己到官網下載相應的版本。鏈接地址:http://archive.apache.org/dist/hbase/
解壓文件如下:
2.2 服務器准備
注意:JDK,Hdoop,zookeeper已經安裝完成,若對這些安裝有疑問,可以查看前面文章。
三,配置文件配置
下面對配置文件進行配置,主要當其中一台配置完畢后,需要將這些配置文件復制到另外兩台。我這里配置的是hd3,配置完畢后,我將整個hbase的安裝目錄復制到了另外兩台服務器。
3.1 hbase_env.sh
主要添加的配置如下:
export JAVA_HOME=/root/apps/jdk1.7.0_67 export HBASE_MANAGES_ZK=false
上述配置是指明運行環境,JDK和是否使用內置的zookeeper這里選擇的是false,因為我們需要使用的是我們自己定義的zookeeper.
實際配置示例:
3.2 hbase_site.xml
主要添加的配置如下:
<configuration> <!-- 指定hbase在HDFS上存儲的路徑 --> <property> <name>hbase.rootdir</name> <value>hdfs://hd1:9000/hbase</value> </property> <!-- 指定hbase是分布式的 --> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!-- 指定zk的地址,多個用“,”分割 --> <property> <name>hbase.zookeeper.quorum</name> <value>hd1:2181,hd2:2181,hd3:2181</value> </property> </configuration>
注意:上述配置是最基本配置,若要對齊配置進行優化設置,可以查看官方文檔。
實際配置示例:
3.3 regionservers
主要添加配置:
hd1
hd2
hd3
上述配置主要是添加需要啟動HRegionServer的主機名。
3.4 將hbase的bin目錄添加到環境變量
添加環境變量如下所示:
3.5 官方配置文件地址
四,Hbase服務啟動
4.1 Hbase啟動
啟動前需要對服務器進行時間同步,否則會報錯:
報錯信息如下:
時間同步:
# 依次執行如下步驟 # 一,安裝ntp服務 yum install ntp # 二,設置服務啟動方式 systemctl enable ntpd # 三,啟動服務 service ntpd restart # 四,將系統時區修改為上海時間 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
然后對其啟動:
-->直接在命令行運行start-hbase.sh [root@hd1 ~]$ start-hbase.sh
然后可以通過JPS進行進程訪問,如下所示:
4.2 Hbase的web頁面訪問
hbase啟動完畢后,可以訪問Hmaster所在服務的主機進行Hbase訪問,如下所示:
五,Hbase的shell簡單使用
5.1 hbase的命令行客戶端
執行如下命令進入Hbase的命令行客戶端:
[root@hd1 ~]$ hbase shell
如下示例:
5.2 hbase的簡單使用
Hbase> list // 查看表 Hbase> status // 查看集群狀態 Hbase> version // 查看集群版本
5.3 hbase的shell的DML
5.3.1 插入數據
hbase(main):011:0> put 't_user_info','001','base_info:username','zhangsan' 0 row(s) in 0.2420 seconds hbase(main):012:0> put 't_user_info','001','base_info:age','18' 0 row(s) in 0.0140 seconds hbase(main):013:0> put 't_user_info','001','base_info:sex','female' 0 row(s) in 0.0070 seconds hbase(main):014:0> put 't_user_info','001','extra_info:career','it' 0 row(s) in 0.0090 seconds hbase(main):015:0> put 't_user_info','002','extra_info:career','actoress' 0 row(s) in 0.0090 seconds hbase(main):016:0> put 't_user_info','002','base_info:username','liuyifei' 0 row(s) in 0.0060 seconds
5.3.2 查看數據
查看方式一:scan 掃描
hbase(main):017:0> scan 't_user_info' ROW COLUMN+CELL 001 column=base_info:age, timestamp=1496567924507, value=18 001 column=base_info:sex, timestamp=1496567934669, value=female 001 column=base_info:username, timestamp=1496567889554, value=zhangsan 001 column=extra_info:career, timestamp=1496567963992, value=it 002 column=base_info:username, timestamp=1496568034187, value=liuyifei 002 column=extra_info:career, timestamp=1496568008631, value=actoress
查看方式二:get單行數據
hbase(main):020:0> get 't_user_info','001' COLUMN CELL base_info:age timestamp=1496568160192, value=19 base_info:sex timestamp=1496567934669, value=female base_info:username timestamp=1496567889554, value=zhangsan extra_info:career timestamp=1496567963992, value=it 4 row(s) in 0.0770 seconds
5.3.3 刪除數據
刪除一個kv數據
hbase(main):021:0> delete 't_user_info','001','base_info:sex' 0 row(s) in 0.0390 seconds
刪除整行
hbase(main):024:0> deleteall 't_user_info','001' 0 row(s) in 0.0090 seconds hbase(main):025:0> get 't_user_info','001' COLUMN CELL 0 row(s) in 0.0110 seconds
刪除整個表
hbase(main):028:0> disable 't_user_info' 0 row(s) in 2.3640 seconds hbase(main):029:0> drop 't_user_info' 0 row(s) in 1.2950 seconds hbase(main):030:0> list TABLE 0 row(s) in 0.0130 seconds => []