詳細な手順の鳳凰のインストールと使用

1はじめに

    HBaseのは便利なシェルスクリプトとJavaのAPIや他の方法を提供して動作のHBaseに、しかし、SQLを介して上のMySQLとなるように動作させることができれば、それは、リレーショナルデータベース操作の開発に慣れているためには、いくつかの学習コストが、そこにありますHBaseの操作は、その後、かなりの程度までのHBaseのコストを削減します。Apacheのフェニックスコンポーネントこの要件を完了するために、「 -私たちは内のSQL戻すフェニックスとして注釈公式 、NOSQLを」 はるかに悪いの公式な説明、フェニックス高性能、ネイティブスキャンHBaseのと比較していないを通じて、および類似のためにコンポーネントは、など、インパラをハイブパフォーマンスを大幅に改善した、詳細、お読みくださいhttps://phoenix.apache.org/performance.htmlを

Apacheのフェニックス公式サイト:https://phoenix.apache.org/
フェニックスは、SQLステートメントをサポートしています。 
https://phoenix.apache.org/language/index.html

フェニックスは、データ型をサポートしています。https://phoenix.apache.org/language/datatypes.html
フェニックスの機能をサポート:https://phoenix.apache.org/language/functions.html

2インストール構成

2.1環境の指示

       HBaseの2台のホストを使用して、ホスト名とIPは、次のとおりです。

       マスター172.18.68.119 

       slave01 172.18.68.88

       すなわちHBaseのHRegionServerとしてマスタノードとしてマスタ、スレーブノードとしてslave01、。

       HBaseのインストール場所:/ホーム/ Hadoopの/ HBaseの

2.2をダウンロード

    http://www.apache.org/dyn/closer.lua/phoenix/ HBaseのバージョンの対応バージョンをダウンロードしてインストールするにはミラーサイトの公式ウェブサイトで提供さを選択します。1.3.1ローカルでの使用なので、apacheの-フェニックス-4.11.0-HBaseの-1.3 / tar.gz形式のパッケージをダウンロードしていること。

 

2.3インストール構成

マスターへ2.3.1アップロードフェニックス

       クラスタ内のツールや他の送信パケットのアップロード、ダウンロードしたtar HBaseのマスターノードを使用してのSecureCRT。

       $ CD /ホーム/ Hadoopの/

       $は、mkdirフェニックス

       $ CDフェニックス

       $ RZ

       $タール-zxvfのapache-フェニックス-4.11.0-HBaseの-1.3-bin.tar.gz

       $ MVのapache-フェニックス-4.11.0-HBaseの-1.3-binに/フェニックス

2.3.2リージョンサーバーにコピーフェニックス・コア-4.11.0-HBaseの-1.3.jar

       フェニックス・コア-4.11.0-HBaseの-1.3.jarすべてのリージョン・サーバーのlibディレクトリにのHBaseのHBaseクラスタに。テスト環境では、マスターとslave01はリージョンサーバーの通りです。

       $ CD /ホーム/ Hadoopの/フェニックス/フェニックス

       マスターにコピー/ Hadoopの/ HBaseの/ libに$のCpフェニックス・コア-4.11.0-HBaseの-1.3.jar /ホーム

       $ Scpの-r [email protected]:/ホーム/ Hadoopの/ HBaseの/ libにコピーしたslave01

2.3.3再起動HBaseの

       $ CD /ホーム/ Hadoopの/ HBaseの/ binに

       $。/ stop-hbase.sh

       $。/ start-hbase.sh

3フェニックスのコマンドラインを使用

3.1コマンドラインを入力します。

       $カドミウム/ホーム/ Hadoopの/フェニックス/フェニックス/ binディレクトリ鳳凰のビンの中へ

       $。/マスターのSqlline.pyマスター1は、飼育係のノードのホスト名です

3.2 SQLスクリプトを実行sqlline.py

       次のように、sqlline.pyコマンドSQLスクリプトファイルを使用することができます。

       $ CD /ホーム/ Hadoopの/フェニックス/フェニックス

       $ビン/ sqlline.py masterexamples / STOCK_SYMBOL.sql

       次のようにSTOCK_SYMBOL.sql文書が読み取ります。

CREATE TABLE IF NOTはSTOCK_SYMBOL(SYMBOL VARCHAR NOT NULL PRIMARY KEY、COMPANY VARCHAR)EXISTS。

UPSERT INTO STOCK_SYMBOLのVALUES( 'CRM'、 'SalesForce.com');

STOCK_SYMBOL SELECT * FROM。

 

 

 

 


3.3 psql.py SQLスクリプトを実行します

      CSVデータファイルはbinディレクトリにpsql.pyスクリプトによってロードすることができ、次のように、鳳凰が含まれているか、SQLスクリプトを実行します。

      $ CD /ホーム/ Hadoopの/フェニックス/フェニックス

      $bin/psql.py master ../examples/WEB_STAT.sql ../examples/WEB_STAT.csv ../examples/WEB_STAT_QUERIES.sql

      其中WEB_STAT.sql、WEB_STAT.csv、WEB_STAT_ QUERIES.sql是phoenix提供的samples下的文件,文件内容如下:

WEB_STAT.sql 为创建表的sql脚本文件

CREATE TABLE IF NOT EXISTS WEB_STAT (

     HOST CHAR(2) NOT NULL,

     DOMAIN VARCHAR NOT NULL,

     FEATURE VARCHAR NOT NULL,

     DATE DATE NOT NULL,

     USAGE.CORE BIGINT,

     USAGE.DB BIGINT,

     STATS.ACTIVE_VISITOR INTEGER

     CONSTRAINT PK PRIMARY KEY (HOST, DOMAIN, FEATURE, DATE)

);

 

     DATE DATE NOT NULL,

     USAGE.CORE BIGINT,

     USAGE.DB BIGINT,

     STATS.ACTIVE_VISITOR INTEGER

     CONSTRAINT PK PRIMARY KEY (HOST, DOMAIN, FEATURE, DATE)

);

 

 

 

 

 

 

 

 

 


WEB_STAT.csv 为数据文件

NA,Salesforce.com,Login,2013-01-01 01:01:01,35,42,10

EU,Salesforce.com,Reports,2013-01-02 12:02:01,25,11,2

EU,Salesforce.com,Reports,2013-01-02 14:32:01,125,131,42

NA,Apple.com,Login,2013-01-01 01:01:01,35,22,40

NA,Salesforce.com,Dashboard,2013-01-03 11:01:01,88,66,44

NA,Salesforce.com,Login,2013-01-04 06:01:21,3,52,1

EU,Apple.com,Mac,2013-01-01 01:01:01,35,22,34

NA,Salesforce.com,Login,2013-01-04 11:01:11,23,56,45

EU,Salesforce.com,Reports,2013-01-05 03:11:12,75,22,3

EU,Salesforce.com,Dashboard,2013-01-06 05:04:05,12,22,43

                                                 ...


 

 

 

 

 

 

 

 


 

WEB_STAT_ QUERIES.sql为查询脚本文件

SELECT DOMAIN, AVG(CORE) Average_CPU_Usage, AVG(DB) Average_DB_Usage

FROM WEB_STAT

GROUP BY DOMAIN

ORDER BY DOMAIN DESC;

 

-- Sum, Min and Max CPU usage by Salesforce grouped by day

SELECT TRUNC(DATE,'DAY') DAY, SUM(CORE) TOTAL_CPU_Usage, MIN(CORE) MIN_CPU_Usage, MAX(CORE) MAX_CPU_Usage

FROM WEB_STAT

WHERE DOMAIN LIKE 'Salesforce%'

GROUP BY TRUNC(DATE,'DAY');

 

-- list host and total active users when core CPU usage is 10X greater than DB usage

SELECT HOST, SUM(ACTIVE_VISITOR) TOTAL_ACTIVE_VISITORS

FROM WEB_STAT

WHERE DB > (CORE * 10)

GROUP BY HOST;

 

3.4     phoenix表操作

3.4.1     创建表

CREATE TABLE IF NOT EXISTS us_population (

stateCHAR(2) NOT NULL,

cityVARCHAR NOT NULL,

populationBIGINT

CONSTRAINTmy_pk PRIMARY KEY (state, city));

      在phoenix中,默认情况下,表名等会自动转换为大写,若要小写,使用双引号,如"us_population"。

3.4.2     显示所有表

       !table或

       !tables

3.4.3     插入记录

      upsert into us_population values('NY','NewYork',8143197);

3.4.4     查询记录

      select * from us_population ;

       select * from us_population wherestate='NY';

3.4.5     删除记录

       delete from us_population wherestate='NY';

3.4.6     删除表

       drop table us_population;

3.4.7     退出命令行

      !quit

      具体语法参照官网

https://phoenix.apache.org/language/index.html#upsert_select

3.5     phoenix表映射

      默认情况下,直接在hbase中创建的表,通过phoenix是查看不到的,如图1和图2,US_POPULATION是在phoenix中直接创建的,而test是在hbase中直接创建的,默认情况下,在phoenix中是查看不到test的。


图1 phoenix命令行中查看所有表


图2 hbase命令行中查看所有表

      如果需要在phoenix中操作直接在hbase中创建的表,则需要在phoenix中进行表的映射。映射方式有两种:视图映射和表映射。

      hbase 中test的表结构如下,两个列簇name、company.

Rowkey

name

company

empid

firstname

lastname

name

address




3.5.1   hbase命令行中创建表

       $ cd /home/hadoop/hbase/bin

       $ ./hbase shell 进入hbase命令行

       create 'test','name','company' 创建表,如下图

     

      下面的视图映射和表映射均基于该表。

3.5.2    视图映射

    Phoenix创建的视图是只读的,所以只能用来做查询,无法通过视图对源数据进行修改等操作。而且相比于直接创建映射表,视图的查询效率会低,原因是:创建映射表的时候,Phoenix会在表中创建一些空的键值对,这些空键值对的存在可以用来提高查询效率。

       1)创建视图

create view"test"(empid varchar primarykey,"name"."firstname" varchar,"name"."lastname"varchar,"company"."name"     varchar,"company"."address"varchar);

       2)删除视图

       drop view "test";

3.5.3   表映射

  使用Apache Phoenix创建对HBase的表映射,有两种方法:

    1) 当HBase中已经存在表时,可以以类似创建视图的方式创建关联表,只需要将create view改为create table即可。

    2)当HBase中不存在表时,可以直接使用create table指令创建需要的表,并且在创建指令中可以根据需要对HBase表结构进行显示的说明。

    第1)种情况下,如在之前的基础上已经存在了test表,则表映射的语句如下:

create table "test"(empid varchar primarykey,"name"."firstname"varchar,"name"."lastname"varchar,"company"."name" varchar,"company"."address"varchar);

     第2)种情况下,直接使用与第1)种情况一样的create table语句进行创建即可,这样系统将会自动在Phoenix和HBase中创建person_infomation的表,并会根据指令内的参数对表结构进行初始化。

    使用create table创建的关联表,如果对表进行了修改,源数据也会改变,同时如果关联表被删除,源表也会被删除。但是视图就不会,如果删除视图,源数据不会发生改变。

4    SQuirrel使用

   如果希望通过客户端以图形化的界面操作Phoenix的话,可以下载并安装SQuirrel。

    SQuirrel SQL Client是一个用Java写的数据库客户端,可以通过一个统一的用户界面来操作MySQL 、PostgreSQL 、MSSQL、 Oracle等任何支持JDBC访问的数据库。使用起来非常方便。

    SQuirrel下载页面:http://squirrel-sql.sourceforge.net/#installation

    SQuirrel的安装步骤(参考https://phoenix.apache.org/installation.html):

    1)移除SQuirrel的lib文件夹下的phoenix-[oldversion]-client.jar(如果有的话),然后拷贝phoenix-[newversion]-client.jar到SQuirrel的lib文件夹下,phoenix-[newversion]-client.jar须与欲连接的hbase的lib下的phoenix版本一致。

    2)windows下,运行squirrel-sql.bat启动SQuirrel,在启动界面下,切换到Drivers选项卡,点击+号添加新的驱动。

    3)在添加驱动对话框中,设置name为Phoenix,设置Example URL为 jdbc:phoenix:localhost,其中的localhost为hbase使用的Zookeeper主机名。

    4)设置Class Name文本框的内容为 “org.apache.phoenix.jdbc.PhoenixDriver”, 如图4.1,然后点击“OK”关闭。

    5)切换到Aliases选项卡,点击+新建一个alias。

    6)在对话框中,name:任何名称,Driver:选择phoenix,username、password可省略,或者填任意值均可。

    7)URL的内容为:jdbc:phoenix: zookeeperquorum server,例如,要连接本机的hbase,URL为:jdbc:phoenix:localhost,如图4.2。

    8)点击Test,在新对话框中选择connect,如果一切设置正确的话,应该连接成功,然后点击OK关闭对话框。

    9)双击新建的phoenix alias,点击connect,然后就可以通过phoenix的sql语句操作hbase了,如图4.3。


图4.1 新建Driver


图4.2 新建Alias


图 4.3 建立连接



为防止原文丢失找不到,特转载自:https://blog.csdn.net/zlj_blog/article/details/76173844

发布了66 篇原创文章 · 获赞 8 · 访问量 13万+

おすすめ

転載: blog.csdn.net/qq_37889636/article/details/80255844