Phoenix5.1.3安装

介绍

Phoenix是一个开源的SQL引擎,用于在Apache HBase上查询和管理数据。它提供了一个关系型数据库的接口,使得可以通过标准的SQL查询语言(如SELECT、INSERT、UPDATE、DELETE)来操作HBase中的数据。

Phoenix的目标是提供快速、低延迟的查询性能,并且与HBase紧密集成。它利用HBase的分布式和水平扩展能力,同时提供了SQL的便利性和灵活性。

Phoenix具有以下特点和功能:

  • SQL兼容性:Phoenix支持标准的SQL语法和语义,使得开发人员可以使用熟悉的SQL查询语言进行数据操作。它支持常见的SQL功能,如聚合函数、条件过滤、连接和子查询等。
  • 高性能查询:Phoenix通过将SQL查询转换为HBase的原生查询操作,以及利用HBase的索引和过滤器功能,提供了快速的查询性能。它还支持查询优化和并行查询执行,以最大程序地提高查询效率。
  • 事务支持:Phoenix提供了事务支持,使得可以在HBase上执行原子性、一致性、隔离性和持久性(ACID)的操作。它使用HBase的事务功能来确保数据的一致性和可靠性。
  • 数据模型灵活性:Phoenix支持灵活的数据模型,可以使用表、行和列族来组织数据。它还提供了丰富的数据类型支持、包括数值、字符串、日期、数组和映射等。
  • 客户端工具和驱动程序:Phoenix提供了命令行工具和Java驱动程序,使得可以通过命令行或编程方式与Phoenix进行交互。这使得开发人员可以轻松地使用Phoenix进行数据查询、导入和导出等操作。

总结起来。,Phoenix是一个在Apache HBase上构建的SQL引擎,它提供了SQL查询和管理HBase数据的能力。它的目标是提供高性能、低延迟的查询,并与HBase紧密集成,为开发人员提供方便的数据操作接口。

安装前准备

环境

  • centos 7.x
  • java 1.8.0_201
  • Hadoop 3.3.4
  • Zookeeper 3.7.1
  • HBase 2.4.17
  • Phoenix 5.1.3

安装Phoenix

下载Phoenix

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#下载Phoenix
wget https://dlcdn.apache.org/phoenix/phoenix-5.1.3/phoenix-hbase-2.4.0-5.1.3-bin.tar.gz   --no-check-certificate
#解压至安装目录
tar -zxvf phoenix-hbase-2.4.0-5.1.3-bin.tar.gz -C /home/hadoop/software/


#安装包下主要目录和文件:
bin:包含了Phoenix的可执行脚本,例如Phoenix Query Server(Phoenix的查询服务)的脚本
lib:包含了Phoenix所需的依赖库文件,这些库文件用于支持Phoenix的功能和运行是需求。
phoenix-client-embedded-hbase-2.4.0-5.1.3.jar:Phoenix的客户端库,用于在应用程序中嵌入使用Phoenix的
功能。它提供了与Phoenix进行交互的API和工具。
phoenix-server-hbase-2.4.0-5.1.3.jar:Phoenix的服务器库,用于启动和运行Phoenix Query Server。它包含了
Phoenix的服务端实现和相关的依赖库。
phoenix-pherf-5.1.3.jar:是Phoenix的性能测试工具库,用于进行性能测试和基准测试。
phoenix-server-hbase-2.4.0-5.1.3.jar:是Phoenix的客户端库,用于在应用程序中使用Phoenix的功能。
它提供了与Phoenix尽心高交互的API和工具。
docs:包含了Phoenix的文档,其中包括用户指南、API文档和示例代码等。



#将Phoenix安装目录分配至hadoop用户
chown -R hadoop:hadoop /home/hadoop/software/

配置环境变量

此处按自己的需求来,没有必须在/etc/profile添加 正常在~/.bashrc下添加就行,这里都加上了

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
vim /etc/profile
......
#Phoenix
export PHOENIX_HOME=/home/hadoop/software/phoenix-hbase-2.4.0-5.1.3-bin
export PATH=$PHOENIX_HOME/bin:$PATH


##加载环境环境,测试是否安装成功
source /etc/profile

echo $PHOENIX_HOME
#出现以下内容,说明正常
/home/hadoop/software/phoenix-hbase-2.4.0-5.1.3-bin
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
su - hadoop

vim ~/.bashrc
......
#Phoenix
export PHOENIX_HOME=/home/hadoop/software/phoenix-hbase-2.4.0-5.1.3-bin
export PATH=$PHOENIX_HOME/bin:$PATH


##加载环境环境
source ~/.bashrc

配置Phoenix

拷贝jar包

需要添加到所有的HBase节点

1
2
3
#将对一个jar拷贝到HBase的lib目录下
cp phoenix-server-hbase-2.4.0-5.1.3.jar $HBASE_HOME/lib/
cp phoenix-pherf-5.1.3.jar  $HBASE_HOME/lib/

修改hbase-site.xml

按照个人需求加入以下内容,需要在HBase所有节点都进行修改

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!--Phoenix相关  没有配置Phoenix之前不要添加-->      
    <property>
        <!--配置HBase区域服务器(RegionServer)的Write-Ahead Log(WAL)编解码器-->
        <name>hbase.regionserver.wal.codec</name>
        <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
    </property>
    <property>
        <!--用于启用或禁用Phoenix对命名空间的映射功能。-->
        <name>phoenix.schema.isNamespaceMappingEnabled</name>
        <value>true</value>
    </property>
  <!--以上两个是必须加的-->
    <property>
        <!--是否将Phoenix系统表映射到命名空间。-->
        <name>phoenix.schema.mapSystemTablesToNamespace</name>
        <value>true</value>
	</property>
    <property>
        <!--Phoenix查询的超时时间  设置为3个小时-->
        <name>phoenix.query.timeoutMs</name>
        <value>10800000</value>
    </property>
    <property>
        <!--索引构建器线程的保持时间(keep-alive time)单位毫秒   这里设置20分钟-->
        <name>index.builder.threads.keepalivetime</name>
        <value>1200000</value>
    </property>
    <property>
        <!--索引写入线程的保持时间(keep-alive time)单位毫秒   这里设置20分钟-->
        <name>index.write.threads.keepalivetime</name>
        <value>1200000</value>
    </property>

拷贝hbase-site.xml

1
2
3
4
5
6
7
8
9
#将hbase中的hbase-site.xml拷贝到Phoenix的bin目录下
cp $HBASE_HOME/conf/hbase-site.xml $PHOENIX_HOME/bin/

##或者设置软连接
if [ -f "$PHOENIX_HOME/bin/hbase-site.xml" ]; then
    mv "$PHOENIX_HOME/bin/hbase-site.xml" "$PHOENIX_HOME/bin/hbase-site.xml.bak"
fi

ln -s "$HBASE_HOME/conf/hbase-site.xml" "$PHOENIX_HOME/bin/hbase-site.xml"

启动Phoenix

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
###需要提前启动HBase
$HBASE_HOME/bin/start-hbase.sh


##启动Phoenix,其中localhost:2181修改为你的zookeeper地址
$PHOENIX_HOME/bin/sqlline.py localhost:2181
......
Connected to: Phoenix (version 5.1)
Driver: PhoenixEmbeddedDriver (version 5.1)
Autocommit status: true
Transaction isolation: TRANSACTION_READ_COMMITTED
sqlline version 1.9.0
0: jdbc:phoenix:localhost:2181>

Phoenix常用命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#查看所有表
!table

#查询表数据
select * from SYSTEM.TASK;

#查看表结构
!describe "table_name"

#退出
!quit
Buy me a coffee
支付宝
微信
0%