一般大數據的工具包都是tar包,直接下載下來,然后進行解壓縮,修改配置文件,最后執行對應的sh文件。
1.phoenix
phoenix:JAVA語言編寫,查詢引擎會將SQL查詢語句轉化成一個或多個HBase Scanner,且並行執行生成標准的JDBC結果集。phoenix使用標准JDBC API代替HBase客戶端API來創建表、插入數據和查詢HBase數據。我可以理解為phoenix是HBASE的一個框架,通過使用標准的SQL語句來操作HBASE。
phoenix語法:https://phoenix.apache.org/language/index.html
phoenix函數:https://phoenix.apache.org/language/functions.html
phoenix支持的數據類型:https://phoenix.apache.org/language/datatypes.html
phoenix參考語句:
UPSERT INTO TEST VALUES('foo','bar',3); UPSERT INTO TEST(NAME,ID) VALUES('foo',123); UPSERT INTO TEST(ID, COUNTER) VALUES(123, 0) ON DUPLICATE KEY UPDATE COUNTER = COUNTER + 1; UPSERT INTO TEST(ID, MY_COL) VALUES(123, 0) ON DUPLICATE KEY IGNORE; SELECT * FROM TEST LIMIT 1000; SELECT * FROM TEST LIMIT 1000 OFFSET 100; SELECT full_name FROM SALES_PERSON WHERE ranking >= 5.0 UNION ALL SELECT reviewer_name FROM CUSTOMER_REVIEW WHERE score >= 8.0
2.HBASE
HBASE是一個高可靠、高性能、面向列、可伸縮的分布式存儲系統,與HDFS一樣都是分布式存儲系統,而且HBASE還是利用HADOOP HDFS作為文件存儲系統,利用ZK作為協同服務。之所以有HBASE的存在,目的是彌補HDFS只能存儲和MP不能進行實時計算的問題。
比如HBASE的操作:
- 下載hbase包:hbase-0.95-SNAPSHOT.tar.gz
- 執行hbase壓縮后的包:./bin/start-hbase.sh
- 執行hbase shell文件:./bin/hbase shell
create 'test', 'cf' list 'test' put 'test', 'row1', 'cf:a', 'value1' put 'test', 'row2', 'cf:b', 'value2' put 'test', 'row3', 'cf:c', 'value3' put 'test', 'row4', 'cf:d', 'value4' scan 'test' get 'test', 'row1' disable 'test' enable 'test'
HBASE中文:http://abloz.com/hbase/book.html#datamodel
HBASE官網:http://hbase.apache.org/1.4/book.html
3.HIVE
Hive:提供了一系列的工具,可以用來進行數據提取轉化加載(ETL),Hive定義了簡單的類SQL查詢語言,稱為QL,它允許熟悉SQL的用戶查詢數據。本質上講,Hive是一個SQL解析引擎,有一套映射工具metastore,可以把SQL轉換為MapReduce中的job,可以把SQL中的表、字段轉換為HDFS中的文件(夾)以及文件中的列,存放在derby、mysql中。我所理解的HIVE的這樣一個功能就實現了把放在hadoop下的數據與關系型數據展示上聯系起來了。
HIVE更詳細的資料:https://www.cnblogs.com/wendyw/p/11389971.html
4.HBASE、HIVE、phoenix三者之間的關系
5.python之三方庫HappyBase
通過python的三方庫happyBase,可以對hbase進行連接使用。
happybase三方庫參考文檔:https://happybase.readthedocs.io/en/latest/user.html