phoenix5.3.1整合hbase2.6.6

phoenix5.3.1整合hbase2.6.6

创建软件目录

bash 复制代码
mkdir -p ~/opt
cd ~/opt/

下载软件

bash 复制代码
wget -P ~/opt https://downloads.apache.org/phoenix/phoenix-5.3.1/phoenix-hbase-2.6-5.3.1-bin.tar.gz

解压 hbase

bash 复制代码
tar -zxvf ~/opt/phoenix-hbase-2.6-5.3.1-bin.tar.gz -C ~/opt

修改 hbase 目录名称

bash 复制代码
mv ~/opt/phoenix-hbase-2.6-5.3.1-bin ~/opt/phoenix

配置环境变量

bash 复制代码
vim ~/.profile
bash 复制代码
export PHOENIX_HOME=$HOME/opt/phoenix
export PATH=$PATH:$PHOENIX_HOME/bin

完整

bash 复制代码
export NODE_HOME=$HOME/opt/node-v24

export JAVA_HOME=$HOME/opt/jdk-25

export MAVEN_HOME=$HOME/opt/maven

export SCALA_HOME=$HOME/opt/scala-2

export ZOOKEEPER_HOME=$HOME/opt/zookeeper-3

export HDFS_NAMENODE_USER=lhz
export HDFS_SECONDARYNAMENODE_USER=lhz
export HDFS_DATANODE_USER=lhz
export HDFS_ZKFC_USER=lhz
export HDFS_JOURNALNODE_USER=lhz
export HADOOP_SHELL_EXECNAME=lhz

export YARN_RESOURCEMANAGER_USER=lhz
export YARN_NODEMANAGER_USER=lhz

export HADOOP_HOME=$HOME/opt/hadoop-3
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native

export HIVE_HOME=/home/lhz/opt/hive-4
export HCATALOG_HOME=/home/lhz/opt/hive-4/hcatalog

export HBASE_HOME=$HOME/opt/hbase-2

export PHOENIX_HOME=$HOME/opt/phoenix

export PATH=$PATH:$NODE_HOME/bin:$JAVA_HOME/bin:$MAVEN_HOME/bin:$SCALA_HOME/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$HCATALOG_HOME/bin:$HCATALOG_HOME/sbin:$HBASE_HOME/bin:$PHOENIX_HOME/bin

使环境变量生效

bash 复制代码
source ~/.profile

删除帮助文档

bash 复制代码
rm -rf $PHOENIX_HOME/docs

复制jar文件到hbase/lib目录

bash 复制代码
scp $PHOENIX_HOME/phoenix-server-hbase-2.6-5.3.1.jar lhz@lihaozhe01:$HBASE_HOME/lib
scp $PHOENIX_HOME/phoenix-server-hbase-2.6-5.3.1.jar lhz@lihaozhe02:$HBASE_HOME/lib
scp $PHOENIX_HOME/phoenix-server-hbase-2.6-5.3.1.jar lhz@lihaozhe03::$HBASE_HOME/lib

分发 phoenix

bash 复制代码
scp -r ~/opt/phoenix lhz@lihaozhe02:~/opt
scp -r ~/opt/phoenix lhz@lihaozhe03:~/opt

修改 hbase 修改配置文件

注意:Phoenix 咱不支持 JDK25 故而降低 hbase配置JDK版本为17

JDK17

bash 复制代码
# 1. 下载 JDK 17
wget -P /home/lhz/opt/ https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz

# 2. 解压
tar -xzf /home/lhz/opt/jdk-17_linux-x64_bin.tar.gz -C /home/lhz/opt/
mv /home/lhz/optjdk-17.0.19 /home/lhz/optjdk-17

# 3. 修改 hbase-env.sh
export JAVA_HOME=/home/lhz/opt/jdk-17

# 4. 重启 HBase
stop-hbase.sh && start-hbase.sh

hbase 环境变量

bash 复制代码
vim hbase-env.sh
bash 复制代码
export JAVA_HOME=/home/lhz/opt/jdk-17
export HBASE_CLASSPATH=/home/lhz/opt/hadoop-3/etc/hadoop
export HBASE_MANAGES_ZK=false
export HBASE_HEAPSIZE=1G
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true

hbase 配置文件

bash 复制代码
vim hbase-site.xml
xml 复制代码
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <!-- HBase数据存储目录,mycluster是根据hdfs-site.xml的dfs.nameservices的value进行配置 -->
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://lihaozhe/hbase</value>
  </property>
  <!-- HBase Master端口 -->
  <property>
    <name>hbase.master</name>
    <value>8020</value>
  </property>
  <!-- zookeeper集群地址 -->
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>lihaozhe01:2181,lihaozhe02:2181,lihaozhe03:2181</value>
  </property>
  <!-- 是否开启分布式部署,true表示分布式模式,false表示单机模式 -->
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <!-- 是否启用HDFS流能力检查,设置为false可以避免因流能力检查导致的启动异常 -->
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
  <!-- 是否启用Phoenix Schema与HBase Namespace映射,开启后Phoenix的schema对应HBase的namespace -->
  <property>
    <name>phoenix.schema.isNamespaceMappingEnabled</name>
    <value>true</value>
  </property>
  <!-- 是否将Phoenix系统表映射到HBase Namespace,需配合phoenix.schema.isNamespaceMappingEnabled使用 -->
  <property>
    <name>phoenix.schema.mapSystemTablesToNamespace</name>
    <value>true</value>
  </property>
  <!-- HBase WAL编码器,使用IndexedWALEditCodec以支持Phoenix的二级索引 -->
  <property>
    <name>hbase.regionserver.wal.codec</name>
    <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
  </property>
</configuration>

分发配置文件到其它节点

bash 复制代码
scp -r $HBASE_HOME/conf lhz@lihaozhe02:$HBASE_HOME
scp -r $HBASE_HOME/conf lhz@lihaozhe03:$HBASE_HOME

重启HBase

bash 复制代码
stop-hbase.sh
start-hbase.sh

连接Phoenix

bash 复制代码
sqlline.py lihaozhe01,lihaozhe02,lihaozhe03

注意:会出现如下报错信息

bash 复制代码
/usr/bin/env: 'python': No such file or directory
bash 复制代码
whereis python3
bash 复制代码
# 这里是 whereis python3 的 提示信息
python3: /usr/bin/python3
bash 复制代码
sudo ln /usr/bin/python3 /usr/bin/python
bash 复制代码
# 再次连接
sqlline.py lihaozhe01,lihaozhe02,lihaozhe03

显示所有数据库

sql 复制代码
show schemas;

显示所有表

使用 !table 或者 !tables

sql 复制代码
show tables;

创建数据库

phoenix中没有database,有的是schema,相当于mysql中的数据库

sql 复制代码
create schema "lihaozhe";
sql 复制代码
use "lihaozhe";

创建表

https://phoenix.apache.org/columnencoding.html

unsigned_long

sql 复制代码
create table "tb_user"(
 "user_id" varchar primary key,
 "name" varchar,
 "gender" varchar, 
 "home_address" varchar, 
 "company_address" varchar
);
sql 复制代码
create table "tb_emp"(
 "emp_id" varchar primary key,
 "info"."name" varchar,
 "info"."gender" varchar, 
 "logistics"."home_address" varchar, 
 "logistics"."company_address" varchar
) COLUMN_ENCODED_BYTES = 0;

插入数据

sql 复制代码
upsert into "tb_user" values ('1001','lhz','1','jilin','shanxi');
sql 复制代码
upsert into "tb_emp" values ('1001','lhz','1','jilin','shanxi');

显示表

sql 复制代码
show tables;

删除表

sql 复制代码
drop table "tb_user";

表关联

准备

在 hbase 上创建表并插入数据

bash 复制代码
create 'lihaozhe:person', 'info', 'msg'
bash 复制代码
put 'lihaozhe:person',1001,'info:name','user1001'
put 'lihaozhe:person',1001,'info:gender',1
put 'lihaozhe:person',1001,'msg:slogan','hello world'

put 'lihaozhe:person',1002,'info:name','user1002'
put 'lihaozhe:person',1002,'info:gender',0
put 'lihaozhe:person',1002,'msg:slogan','hello'

put 'lihaozhe:person',1003,'info:name','user1003'
put 'lihaozhe:person',1003,'info:gender',1
put 'lihaozhe:person',1003,'msg:slogan','hi'

视图映射

sql 复制代码
create view "person"(
 "person_id" varchar primary key,
 "info"."name" varchar,
 "info"."gender" varchar,
 "msg"."slogan" varchar
) column_encoded_bytes=0;
sql 复制代码
select * from "person";
bash 复制代码
select "info"."name" from "person";
sql 复制代码
drop view "person";

表映射

  1. 当 HBase 中已经存在表时,可以以类似创建视图的方式创建关联表,只需要将create table 改为 create view 即可。
  2. 当 HBase 中不存在表时,可以直接使用 create table 指令创建需要的表,系统将会自动在 Phoenix 和 HBase 中创建 person_infomation 的表,并会根据指令内的参数对表结构进行初始化。
sql 复制代码
create table "person"(
 "person_id" varchar primary key,
 "info"."name" varchar,
 "info"."gender" varchar,
 "msg"."slogan" varchar
) column_encoded_bytes=0;
sql 复制代码
select * from "person";
sql 复制代码
upsert into "person" values('1004','user1004',0,'hw');
sql 复制代码
upsert into "person" ("person_id","gender") values(1001,0);
sql 复制代码
drop table "person";

退出

bash 复制代码
!quit
相关推荐
数字化老赵3 小时前
设备管理三好、四会、五律、五定,都是啥?
大数据·设备管理
智讯天下5 小时前
垂类数据基础设施:骨码智元GOMAX LAB如何重塑AI后训练数据供给体系
大数据·人工智能
麒麟信安5 小时前
第三届行业数智化发展峰会召开,麒麟信安核心内网虚拟化方案备受关注
大数据·麒麟信安·企业资讯
延凡科技5 小时前
延凡科技IoT设备管理监控系统:赋能工业智能制造
大数据·科技·物联网·制造
塔能物联运维5 小时前
液冷数据中心市场突破900亿元,两相液冷成AI算力散热新方向
大数据·人工智能
GOWIN革文品牌咨询6 小时前
受众、内容、形式、渠道:B2B营销四象限的结构模型
大数据·人工智能
天国梦6 小时前
AI时代营销全链路落地实战指南
大数据·人工智能
石像鬼₧魂石6 小时前
【Y2Ksoft】智慧农场管理平台 —— 航拍实景 · 物联网可视化 · 单文件HTML开箱即用
大数据·物联网·数据库架构
其实防守也摸鱼6 小时前
渗透--损坏的对象级别鉴权漏洞(Broken Object Level Authorization, BOLA)
大数据·网络·数据库·学习·tcp/ip·安全·安全威胁分析