Phoenix-4.14-cdh5.14.2與hbase-1.2.0-cdh5.14.2集成測試


Phoenix介紹:
 針對hbase開發的第三方插件,目前已貢獻給Apache,頂級項目  
  Phoenix是構建在HBase上的一個SQL層
  可以使用類似於操作mysql的標准sql語句,作為hbase客戶端JDBC的驅動對hbase中的數據進行低延遲的訪問
  內部實現為將sql查詢語句編譯成hbase內部的一系列scan操做
  因為hive關聯hbase查詢底層為MapReduce,為Phoenix底層查詢為hbase的API,故查詢速度比hive集成快
   hbase-》hive-》hql-》MapReduce查詢等-》速度慢
   hbase-》Phoenix-》sql-》hbase Scan查詢(JDBC結果集)-》速度快

 

官網下載 http://phoenix.apache.org/download.html

1、上傳解壓
   $ tar zxf apache-phoenix-4.14.0-cdh5.14.2-bin.tar.gz
   $ mv apache-phoenix-4.14.0-cdh5.14.2-bin  phoenix-4.14.0-cdh5.14.2 (可不修改)
  2、將phoenix安裝目錄下的phoenix-4.14.0-cdh5.14.2-server.jar拷貝到hbase的lib目錄下
   $ cp phoenix-4.14.0-cdh5.14.2/phoenix-4.14.0-cdh5.14.2-server.jar hbase-1.2.0-cdh5.14.2/lib/
  3、將phoenix安裝目錄下的phoenix-core-4.14.0-cdh5.14.2.jar 拷貝到hbase的lib目錄下(如果是phoenix 3.x版本的安裝除了phoenix-[version]-server.jar需要復制外,同時phoenix-core-[version].jar 也需要復制,但是我們安裝的是phoenix 4.x所以phoenix-core-[version].jar 的jar包就不需要復制了
   $ cp phoenix-4.14.0-cdh5.14.2/phoenix-core-4.14.0-cdh5.14.2.jar hbase-1.2.0-cdh5.14.2/lib/
  4、將hbase/conf目錄下hbase-site文件覆蓋放入phoenix的bin目錄下
      $ cp hbase-1.2.0-cdh5.14.2/conf/hbase-site.xml phoenix-4.14.0-cdh5.14.2/bin/
  5、重啟hbase進程 
  6、啟動phoenix客戶端交互命令
    $ bin/sqlline.py zkip:2181
  第一次啟動時間相對較長要進行初始化操作創建一些表
  如果報argparse錯誤:$ sudo yum -y install python-argparse

集成測試:
-》show databases 或 show tables 不支持的,並不與mysql中操作完全一樣
-》!help  查看內置命令
-》!tables 查看hbase中與phoenix建立好映射的表
-》通過phoenix客戶端創建表
create table user_ph(
id varchar primary key,
name varchar,
password varchar
);

phoenix查看表有沒有:


-》hbase shell中通過list查看


 注意:phoenix中的表名和字段名不加雙引號則默認都為大寫
 加上雙引號則區分大小寫
 phoenix和RDBMS中一樣,有數據類型
-》hbase shell中通過 desc 'USER_PH'
 表列簇默認名稱是0,NAME => '0'
-》重新創建,並指定列簇:列 
drop table user_ph;
create table "user_ph"(
"id" varchar primary key,
"info"."name" varchar,
"info"."password" varchar
);

-》添加數據:
 updata+insert結合命令--》upsert,插入數據時表名和列名因為都是小寫的所以要加雙引號, 值為字符串時只能用單引號引起否則報錯,phoenix中創建表時的主鍵列會默認為hbase表中的rowkey
upsert into "user_ph"("id","info"."name","info"."password") values('001','admin','admin');
upsert into "user_ph"("id","info"."name","info"."password") values('002','admin','admin');
upsert into "user_ph"("id","info"."name","info"."password") values('003','admin','admin');

-》查詢數據:
select * from "user_ph";


scan  "user_ph" 
 
-》刪除數據:
delete from "user_ph" where "id"='002';

-》在phoenix中的client界面中進行的crud(增刪改查)操作與RDBMS的操作大都相同
 
-》退出phonix客戶端命令行
!quit


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM