文章目录提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
- 前言
- 一、Phoenix是什么?
- 二、使用步骤
- 1.环境准备
- 2.集群规划
- 2.Phoenix安装
- 3.Phoenix Shell 表操作
- 总结
前言
提示:这里可以添加本文要记录的大概内容:
HBase 不支持 SQL 语法,使用非常不便,所以诞生丁 Phoenix。 Phoenix 是通过一个嵌人的 JDBC驱动存储在HBase 中的数据的查询。Phoenix 可以让开发者在 HBase数据集上使用 SQL 查询。
一、Phoenix是什么?Phoenix:JAVA语言编写,查询引擎会将SQL查询语句转化成一个或多个HBase Scanner,且并行执行生成标准的JDBC结果集。phoenix使用标准JDBC API代替HBase客户端API来创建表、插入数据和查询HBase数据。我可以理解为phoenix是HBASE的一个框架,通过使用标准的SQL语句来操作HBASE。
Phoenix特点:
1)容易集成:如Spark,Hive,Flume和Map Reduce;
2)操作简单:DML命令以及通过DDL命令创建和操作表和版本化增量更改;
3)支持HBase二级索引创建。
具体可看官方:http://phoenix.apache.org/
| 说明 | 软件 |
|---|---|
| 操作系统 | Windows 10 |
| 虚拟机 | VMware 15.5 |
| Linux系统 | Centos 7 64位 |
| Zookeeper | zookeeper-3.4.10 |
| Hadoop | hadoop-3.3.1 |
| HBase | Hbase2.4.4 |
| Hive | Hive3.1.2 |
| Kafka | kafka_2.12-3.0.0 |
| Spark | spark-3.1.3 |
| Scala | scala-2.12.10 |
| 开发工具 | IntelliJ IDEA 2020.1 |
| Phoenix | phoenix-hbase-2.4-5.1.2 |
| IP | HostName | Software | Process |
|---|---|---|---|
| 192.168.74.88 | hadoop01 | hadoop,zookeeper,hbase,hive,mysql,kafka,spark,scala | DataNode,NodeManager,QuorumPeerMain,JournalNode,NameNode,DFSZKFailoverController,ResourceManager,HMaster,HRegionServer,RunJar,RunJar,kafka,Master,Worker |
| 192.168.74.89 | hadoop02 | hadoop,zookeeper,kafka,spark,scala | DataNode,NodeManager,QuorumPeerMain,JournalNode,NameNode,DFSZKFailoverController,HRegionServer,kafka,Worker |
| 192.168.74.90 | hadoop03 | hadoop,zookeeper,hbase,hvie,kafka,spark,scala | DataNode,NodeManager,QuorumPeerMain,JournalNode,ResourceManager,HMaster,HRegionServer,RunJar,kafka,Master,Worker |
代码如下(示例):
hadoop01 hbase hadoop02 hadoop03 hbase phoenix-hbase-2.4-5.1.2-bin.tar.gz su hadoop cd /data/phoenix tar -zxvf phoenix-hbase-2.4-5.1.2-bin.tar.gz 1、# 重命名一下文件夹 mv phoenix-hbase-2.4-5.1.2-bin app 2、# 将phoenix-server-hbase-2.4-5.1.2.jar文件拷贝到HBase的lib目录下 cd /data/phoenix/app cp phoenix-server-hbase-2.4-5.1.2.jar /data/hbase/app/lib/ 3、# 系统环境变量 》ok-------------------------------------- vim ~/.bashrc gedit ~/.bashrc export PHOENIX_HOME=/data/phoenix/app export PHOENIX_CLASSPATH=$PHOENIX_HOME export PATH=$PATH:$PHOENIX_HOME/bin export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib" source ~/.bashrc -------------------------------------------- 4、#软连接hbase-site.xml ## 进入bin目录 cd /data/phoenix/app/bin/ ##软连接hbase-site.xml文件 ln -sf /data/hbase/app/conf/hbase-site.xml 5、#将文件同步到其他主机上 scp -r/data/phoenix/app/lib/phoenix-server-hbase-2.4-5.1.2.jar hadoop@hadoop02:/data/phoenix/app/lib scp -r /data/phoenix/app hadoop@hadoop02:/data/phoenix scp -r /data/phoenix/app hadoop@hadoop03:/data/phoenix scp -r /data/phoenix/app/lib/phoenix-server-hbase-2.4-5.1.2.jar hadoop@hadoop03:/data/phoenix/app/lib 6、# 重启HBase stop-hbase.sh start-hbase.sh 7、# 连接phoenix /data/phoenix/app/bin/sqlline.py hadoop01,hadoop02,hadoop03:2181 # 输入!tables查看是否安装成功3.Phoenix Shell 表操作
(1)显示所有表
!table 或 !tables
(2)创建表
CREATE TABLE IF NOT EXISTS us_population (
state CHAr(2) NOT NULL,
city VARCHAR NOT NULL,
population BIGINT
CONSTRAINT my_pk PRIMARY KEY (state, city));
(3)插入数据
upsert into us_population values(‘NY’,‘NewYork’,8143197);
upsert into us_population values(‘BJ’,‘BeiJing’,8143198);
(4)查询记录
select * from us_population;
select * from us_population where population=8143197;
(4)删除记录
delete from us_population where population=8143197;
(5)删除表
drop table us_population;
记录点点滴滴



