在CDH5.14.2中安装Phoenix与使用

标签(空格分隔): 大数据平台构建


  • 一:安装及配置Phoenix
  • 二:Phoenix的基本操作
  • 三:使用Phoenix bulkload数据到HBase
  • 四:使用Phoenix从HBase中导出数据到HDFS

一:安装及配置Phoenix

1.0:phoienx 的介绍

Phoenix中文翻译为凤凰, 其最早是Salesforce的一个开源项目,Salesforce背景是一个搞ERP的,ERP软件一个很大的特点就是数据库操作,所以能搞出一个数据库中间件也是很正常的。而后,Phoenix成为Apache基金的顶级项目。

Phoenix具体是什么呢,其本质是用Java写的基于JDBC API操作HBase的开源SQL引擎

1.1: 下载CDH 需要parcel包

下载地址:
  http://archive.cloudera.com/cloudera-labs/phoenix/parcels/latest/

  CLABS_PHOENIX-4.7.0-1.clabs_phoenix1.3.0.p0.000-el7.parcel

  CLABS_PHOENIX-4.7.0-1.clabs_phoenix1.3.0.p0.000-el7.parcel.sha1

  manifest.json

在CDH5.14.2中安装Phoenix与使用_第1张图片

1.2 配置httpd的服务

yum install -y httpd* 

service httpd start 

chkconfig httpd on 
mkdir -p /var/www/html/phoenix
mv CLABS_PHOENIX-4.7.0-1.clabs_phoenix1.3.0.p0.000-el7.parcel* /var/www/html/phoenix/

mv manifest.json /var/www/html/phoenix/

cd /var/www/html/phoenix/

mv CLABS_PHOENIX-4.7.0-1.clabs_phoenix1.3.0.p0.000-el7.parcel.sha1 CLABS_PHOENIX-4.7.0-1.clabs_phoenix1.3.0.p0.000-el7.parcel.sha

在CDH5.14.2中安装Phoenix与使用_第2张图片

在CDH5.14.2中安装Phoenix与使用_第3张图片

在CDH5.14.2中安装Phoenix与使用_第4张图片

在CDH5.14.2中安装Phoenix与使用_第5张图片

1.3 在CDH5.14.2 上面 配置 phoenix

在CDH5.14.2中安装Phoenix与使用_第6张图片

在CDH5.14.2中安装Phoenix与使用_第7张图片

在CDH5.14.2中安装Phoenix与使用_第8张图片

在CDH5.14.2中安装Phoenix与使用_第9张图片

在CDH5.14.2中安装Phoenix与使用_第10张图片

在CDH5.14.2中安装Phoenix与使用_第11张图片

在CDH5.14.2中安装Phoenix与使用_第12张图片


1.4 HBase服务需要部署客户端配置以及重启

在CDH5.14.2中安装Phoenix与使用_第13张图片

在CDH5.14.2中安装Phoenix与使用_第14张图片

在CDH5.14.2中安装Phoenix与使用_第15张图片

在CDH5.14.2中安装Phoenix与使用_第16张图片

在CDH5.14.2中安装Phoenix与使用_第17张图片

1.5 phoeinx的连接操作

cd /opt/cloudera/parcels/CLABS_PHOENIX/bin

在CDH5.14.2中安装Phoenix与使用_第18张图片

使用Phoenix登录HBase
./phoenix-sqlline.py

在CDH5.14.2中安装Phoenix与使用_第19张图片

需要指定Zookeeper

./phoenix-sqlline.py node-01.flyfish:2181:/hbase

!table 

在CDH5.14.2中安装Phoenix与使用_第20张图片

image_1cfkpbnuj15lisf712p51ps1agg9q.png-120.3kB

二:Phoenix的基本操作

2.1 使用phoinex创建表

create table hbase_test
(
s1 varchar not null primary key,
s2 varchar,
s3 varchar,
s4 varchar
);

在CDH5.14.2中安装Phoenix与使用_第21张图片

hbase 的接口登录

hbase shell

在CDH5.14.2中安装Phoenix与使用_第22张图片

image_1cfkqcq467j65ar5rn1982uafbe.png-164.4kB

upsert into hbase_test values('1','testname','testname1','testname2');

upsert into hbase_test values('2','tom','jack','harry');

在CDH5.14.2中安装Phoenix与使用_第23张图片

在CDH5.14.2中安装Phoenix与使用_第24张图片

删除:
delete from hbase_test where s1='1'; (删除是按rowkey)

在CDH5.14.2中安装Phoenix与使用_第25张图片

在CDH5.14.2中安装Phoenix与使用_第26张图片

upsert into hbase_test values('1','hadoop','hive','zookeeper');

upsert into hbase_test values('2','oozie','hue','spark');

在CDH5.14.2中安装Phoenix与使用_第27张图片

更新数据测试,注意Phoenix中没有update语法,用upsert代替。插入多条数据需要执行多条upsert语句,没办法将所有的数据都写到一个“values”后面。

upsert into hbase_test values('1','zhangyy','hive','zookeeper');

在CDH5.14.2中安装Phoenix与使用_第28张图片

在CDH5.14.2中安装Phoenix与使用_第29张图片

三:使用Phoenix bulkload数据到HBase

3.1 准备测试文件

准备 导入的 测试文件
ls -ld ithbase.csv

head -n 1 ithbase.csv

image_1cfkrrlhcjm0o6c1etvhp11iek2n.png-94.3kB

上传到hdfs 
su - hdfs

hdfs dfs -mkdir /flyfish

hdfs dfs -put ithbase.csv /flyfish

hdfs dfs -ls /flyfish

在CDH5.14.2中安装Phoenix与使用_第30张图片

3.2 通过Phoenix创建表

create table ithbase
(
i_item_sk varchar not null primary key,
i_item_id varchar,
i_rec_start_varchar varchar,
i_rec_end_date varchar
);

在CDH5.14.2中安装Phoenix与使用_第31张图片

执行bulkload命令导入数据

HADOOP_CLASSPATH=/opt/cloudera/parcels/CDH/lib/hbase/hbase-protocol-1.2.0-cdh5.12.1.jar:/opt/cloudera/parcels/CDH/lib/hbase/conf hadoop jar /opt/cloudera/parcels/CLABS_PHOENIX/lib/phoenix/phoenix-4.7.0-clabs-phoenix1.3.0-client.jar org.apache.phoenix.mapreduce.CsvBulkLoadTool -t ithbase -i /flyfish/ithbase.csv

在CDH5.14.2中安装Phoenix与使用_第32张图片

在CDH5.14.2中安装Phoenix与使用_第33张图片

在CDH5.14.2中安装Phoenix与使用_第34张图片

在CDH5.14.2中安装Phoenix与使用_第35张图片

select * from ithbase 

在CDH5.14.2中安装Phoenix与使用_第36张图片

在CDH5.14.2中安装Phoenix与使用_第37张图片

四:使用Phoenix从HBase中导出数据到HDFS

cat export.pig 
----
REGISTER /opt/cloudera/parcels/CLABS_PHOENIX/lib/phoenix/phoenix-4.7.0-clabs-phoenix1.3.0-client.jar;
rows = load 'hbase://query/SELECT * FROM ITHBASE' USING org.apache.phoenix.pig.PhoenixHBaseLoader('node-01.flyfish:2181');
STORE rows INTO 'flyfish1' USING PigStorage(',');
----
执行pig 

pig -x mapreduce export.pig

在CDH5.14.2中安装Phoenix与使用_第38张图片

在CDH5.14.2中安装Phoenix与使用_第39张图片

在CDH5.14.2中安装Phoenix与使用_第40张图片

在CDH5.14.2中安装Phoenix与使用_第41张图片

在hdfs 上面查看文件
hdfs dfs -ls /user/hdfs/flyfish1
hdfs dfs -cat /user/hdfs/flyfish1/part-m-00000

在CDH5.14.2中安装Phoenix与使用_第42张图片