前言
之前發現HBase雖然數據存儲是快了,但是手動在命令行插入數據的時候需要一個個插入,有點累,然後就發現了Phoenix。Phoenix中文翻譯爲鳳凰, 其最早是Salesforce的一個開源項目,後來成爲Apache基金的頂級項目。本文是在【教程】【環境搭建】大數據僞分佈式搭建Hadoop(Win10+ECS+putty+FileZilla)【教程】【環境搭建】大數據僞分佈式搭建HBase(Win10+ECS+putty+FileZilla)這兩篇博客的基礎環境上繼搭建的。
解壓縮Phoenix安裝文件
1.下載
這裏選用的HBase的版本是4.10.0,因爲之前我安裝的是1.1.5的HBase。這是官網的下載界面,記得要和HBase版本對應。bin是二進制文件,解壓可以直接用,src是源文件,需要自行編譯。官網下載傳送:https://phoenix.apache.org/download.html
我的版本:apache-phoenix-4.10.0-HBase-1.1-bin.tar.gz
2.解壓縮
我下載的是bin文件,已經放入Downloads文件夾下。這裏就直接解壓了,最好還是自己換個文件夾保存。
(1)進入用戶的下載目錄
cd ~/Downloads
(2)解壓到當前文件夾下
tar -zxvf apache-phoenix-4.14.0-HBase-1.2-bin.tar.gz
安裝並啓動Phoenix
1.拷貝jar到Hbase的lib目錄下
(1)進入上面已經解壓好的文件夾下
cd ~/Downloads/apache-phoenix-4.10.0-HBase-1.1-bin
(2)列出所有文件
ls
框內的文件就是我們需要拷貝的:
(3)拷貝文件到HBase的lib目錄下
cp phoenix-4.10.0-HBase-1.1-server.jar /usr/local/hbase/lib
2.啓動Hadoop(如果已經啓動Hadoop請跳過此步驟)
(1)進入/usr/local/hadoop
cd /usr/local/hadoop
(2)啓動Hadoop
./sbin/start-dfs.sh
(3)查看是否啓動成功
jps
如果顯示以下類似的進程信息,則表明啓動成功:
992 Jps
647 DataNode
873 SecondaryNameNode
494 NameNode
3.啓動HBase
(1)進入/usr/local/hbase
cd /usr/local/hbase
(2)啓動HBase
./bin/start-hbase.sh
(3)查看是否啓動成功
jps
如果顯示一以下類似的進程信息,則表明啓動成功:
2579 HMaster
2708 HRegionServer
647 DataNode
3016 Jps
873 SecondaryNameNode
494 NameNode
2510 HQuorumPeer
4.進入Phoenix控制檯
(1)回到直接的解壓目錄
cd ~/Downloads/apache-phoenix-4.10.0-HBase-1.1-bin/
(2)進入控制檯
./bin/sqlline.py
會顯示以下信息:
基本安裝就到這裏了,下面是一些簡單操作的演示。
簡單操作演示
1.顯示所有表
語句:
/hbase> !tables
輸出:
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----------------+---------------+-+
| TABLE_CAT | TABLE_SCHEM | TABLE_NAME | TABLE_TYPE | REMARKS | TYPE_NAME | SELF_REFERENCING_COL_NAME | REF_GENERATION | INDEX_STATE | IMMUTABLE_ROWS | SALT_BUCKETS | |
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----------------+---------------+-+
| | SYSTEM | CATALOG | SYSTEM TABLE | | | | | | false | null | |
| | SYSTEM | FUNCTION | SYSTEM TABLE | | | | | | false | null | |
| | SYSTEM | SEQUENCE | SYSTEM TABLE | | | | | | false | null | |
| | SYSTEM | STATS | SYSTEM TABLE | | | | | | false | null | |
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----------------+---------------+-+
2.創建新表並顯示
語句:
/hbase> !sql
. . . > create table test1 (mykey integer not null primary key, mycolumn varchar);
輸出:
No rows affected (1.307 seconds)
2.插入數據
語句:
/hbase> upsert into test1 values (1,'Hello World!');
輸出:
1 row affected (0.037 seconds)
這裏可以看出通過Phoenix可以用SQL對一行多個值進行插入,加上二級索引比之前方便多了。
3.查詢表
語句:
/hbase> select * from test1;
結果:
+--------+---------------+
| MYKEY | MYCOLUMN |
+--------+---------------+
| 1 | Hello World! |
+--------+---------------+
1 row selected (0.05 seconds)
4.刪除記錄
語句:
/hbase> delete from test1 where mykey = 1;
結果:
1 row affected (0.017 seconds)
查詢表:
+--------+-----------+
| MYKEY | MYCOLUMN |
+--------+-----------+
+--------+-----------+
No rows selected (0.037 seconds)
5.退出
語句:
/hbase> ! quit
輸出:
Closing: org.apache.phoenix.jdbc.PhoenixConnection
後記
作爲NoSQL的HBase加上了二級索引的SQL,所以可以稱爲HSQL嗎,總之嘗試一下這些奇怪的東西也是挺有趣的。
參考文章
1.Hbase之使用Phoenix連接
2.淺談Phoenix在HBase中的應用
3.Phoenix的shell簡單操作