基于 HBase & Phoenix 构建实时数仓(3)—— Phoenix 安装

这篇具有很好参考价值的文章主要介绍了基于 HBase & Phoenix 构建实时数仓(3)—— Phoenix 安装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、主机规划

二、Phoenix 安装

1. 解压、配置环境

2. 复制两个文件

3. 重启 HBase 集群

4. 安装验证

(1)连接 HBase

(2)视图映射

(3)表映射

参考:


一、主机规划

        继续上一篇,本篇介绍在同一环境中安装 Phoenix,并连接上篇部署的 HBase 集群。

        所需安装包:Phoenix-5.1.3
        下表描述了四个节点上分别将会运行的相关进程。Phoenix 相对于 HBase 来说就是一个支持 SQL 的客户端软件,为能在集群环境中任何节点上都能使用 Phoenix 命令行,在所有节点上都安装。简便起见,安装部署过程中所用的命令都使用操作系统的 root 用户执行。

                            节点

进程

node1

node2

node3

node4

Phoenix

*

*

*

*

二、Phoenix 安装

        在所有节点上执行下面第1、2步操作,在 node1 节点上执行第3步操作。

1. 解压、配置环境

# 解压
tar -zxvf phoenix-hbase-2.5-5.1.3-bin.tar.gz

# 编辑 /etc/profile 文件
vim /etc/profile
 
# 添加下面两行
export PHOENIX_HOME=/root/phoenix-hbase-2.5-5.1.3-bin/
export PHOENIX_CLASSPATH=$PHOENIX_HOME
export PATH=$PHOENIX_HOME/bin:$PATH
 
# 加载生效
source /etc/profile

2. 复制两个文件

cp $PHOENIX_HOME/phoenix-server-hbase-2.5-5.1.3.jar $HBASE_HOME/lib/
cp $HBASE_HOME/conf/hbase-site.xml $PHOENIX_HOME/bin/

3. 重启 HBase 集群

stop-hbase.sh
start-hbase.sh

4. 安装验证

(1)连接 HBase

# 连接,参数为 Zookeeper 节点
sqlline.py node1,node2,node3
# 列出表
!table

        输出:

[root@vvml-yz-hbase-test~]#sqlline.py node1,node2,node3
Setting property: [incremental, false]
Setting property: [isolation, TRANSACTION_READ_COMMITTED]
issuing: !connect -p driver org.apache.phoenix.jdbc.PhoenixDriver -p user "none" -p password "none" "jdbc:phoenix:node1,node2,node3"
Connecting to jdbc:phoenix:node1,node2,node3
24/03/07 14:44:45 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
24/03/07 14:44:45 WARN impl.MetricsConfig: Cannot locate configuration: tried hadoop-metrics2-phoenix.properties,hadoop-metrics2.properties
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:node1,node2,node3> !table
+-----------+-------------+------------+--------------+---------+-----------+---------------------------+----------------+-------------+-+
| TABLE_CAT | TABLE_SCHEM | TABLE_NAME |  TABLE_TYPE  | REMARKS | TYPE_NAME | SELF_REFERENCING_COL_NAME | REF_GENERATION | INDEX_STATE | |
+-----------+-------------+------------+--------------+---------+-----------+---------------------------+----------------+-------------+-+
|           | SYSTEM      | CATALOG    | SYSTEM TABLE |         |           |                           |                |             | |
|           | SYSTEM      | CHILD_LINK | SYSTEM TABLE |         |           |                           |                |             | |
|           | SYSTEM      | FUNCTION   | SYSTEM TABLE |         |           |                           |                |             | |
|           | SYSTEM      | LOG        | SYSTEM TABLE |         |           |                           |                |             | |
|           | SYSTEM      | MUTEX      | SYSTEM TABLE |         |           |                           |                |             | |
|           | SYSTEM      | SEQUENCE   | SYSTEM TABLE |         |           |                           |                |             | |
|           | SYSTEM      | STATS      | SYSTEM TABLE |         |           |                           |                |             | |
|           | SYSTEM      | TASK       | SYSTEM TABLE |         |           |                           |                |             | |
+-----------+-------------+------------+--------------+---------+-----------+---------------------------+----------------+-------------+-+
0: jdbc:phoenix:node1,node2,node3>

        默认情况下,直接在 HBase 中创建的表,通过 Phoenix 是查看不到的。如上一篇在 hbase shell 中创建的 test 表,这里没有显示。如果要在 Phoenix 中操作直接在 HBase 中创建的表,则需要在 Phoenix 中进行表的映射。映射方式有两种:视图映射和表映射。

(2)视图映射

        Phoenix 创建的视图是只读的,所以只能用来做查询,无法通过视图对源数据进行修改等操作。

0: jdbc:phoenix:node1,node2,node3> create view "test"(pk varchar primary key,"cf"."a" varchar,"cf"."b" varchar,"cf"."c" varchar,"cf"."d" varchar,"cf"."e" varchar);
No rows affected (0.178 seconds)
0: jdbc:phoenix:node1,node2,node3> !table
+-----------+-------------+------------+--------------+---------+-----------+---------------------------+----------------+-------------+-+
| TABLE_CAT | TABLE_SCHEM | TABLE_NAME |  TABLE_TYPE  | REMARKS | TYPE_NAME | SELF_REFERENCING_COL_NAME | REF_GENERATION | INDEX_STATE | |
+-----------+-------------+------------+--------------+---------+-----------+---------------------------+----------------+-------------+-+
|           | SYSTEM      | CATALOG    | SYSTEM TABLE |         |           |                           |                |             | |
|           | SYSTEM      | CHILD_LINK | SYSTEM TABLE |         |           |                           |                |             | |
|           | SYSTEM      | FUNCTION   | SYSTEM TABLE |         |           |                           |                |             | |
|           | SYSTEM      | LOG        | SYSTEM TABLE |         |           |                           |                |             | |
|           | SYSTEM      | MUTEX      | SYSTEM TABLE |         |           |                           |                |             | |
|           | SYSTEM      | SEQUENCE   | SYSTEM TABLE |         |           |                           |                |             | |
|           | SYSTEM      | STATS      | SYSTEM TABLE |         |           |                           |                |             | |
|           | SYSTEM      | TASK       | SYSTEM TABLE |         |           |                           |                |             | |
|           |             | test       | VIEW         |         |           |                           |                |             | |
+-----------+-------------+------------+--------------+---------+-----------+---------------------------+----------------+-------------+-+
0: jdbc:phoenix:node1,node2,node3> select * from "test";
+------+--------+--------+--------+--------+--------+
|  PK  |   a    |   b    |   c    |   d    |   e    |
+------+--------+--------+--------+--------+--------+
| row1 | value1 |        |        |        |        |
| row2 |        | value2 |        |        |        |
| row3 |        |        | value3 |        |        |
| row4 |        |        |        | value4 |        |
| row5 |        |        |        |        | value5 |
+------+--------+--------+--------+--------+--------+
5 rows selected (0.021 seconds)
0: jdbc:phoenix:node1,node2,node3> 

        HBase 严格区分大小写,创建视图时表名、列族、列名需要用双引号括起来。

(3)表映射

0: jdbc:phoenix:node1,node2,node3> drop view "test";
No rows affected (0.011 seconds)
0: jdbc:phoenix:node1,node2,node3> create table "test"(pk varchar primary key,"cf"."a" varchar,"cf"."b" varchar,"cf"."c" varchar,"cf"."d" varchar,"cf"."e" varchar) column_encoded_bytes=0;
5 rows affected (5.676 seconds)
0: jdbc:phoenix:node1,node2,node3> upsert into "test" values('a','1','2','3','4','5');
1 row affected (0.007 seconds)
0: jdbc:phoenix:node1,node2,node3> select * from "test";
+------+--------+--------+--------+--------+--------+
|  PK  |   a    |   b    |   c    |   d    |   e    |
+------+--------+--------+--------+--------+--------+
| a    | 1      | 2      | 3      | 4      | 5      |
| row1 | value1 |        |        |        |        |
| row2 |        | value2 |        |        |        |
| row3 |        |        | value3 |        |        |
| row4 |        |        |        | value4 |        |
| row5 |        |        |        |        | value5 |
+------+--------+--------+--------+--------+--------+
6 rows selected (0.013 seconds)
0: jdbc:phoenix:node1,node2,node3> !quit
Closing: org.apache.phoenix.jdbc.PhoenixConnection
[root@vvml-yz-hbase-test~]#

        表映射方式时,数据更新是对源表的操作,删除表也会删除 HBase 中的源表。如果只做查询,强烈建议使用视图方式映射,删除视图不影响 HBase 源数据。Phoenix 4.10 版本后,对列映射做了优化,采用一套新的机制,不再基于列名方式映射到 HBase。如果必须要表映射,则需要禁用列映射规则(column_encoded_bytes=0),但这会降低查询性能。文章来源地址https://www.toymoban.com/news/detail-846603.html

参考:

  • Apache Phoenix 映射已存在 HBase 表,查询不到数据
  • https://phoenix.apache.org/installation.html

到了这里,关于基于 HBase & Phoenix 构建实时数仓(3)—— Phoenix 安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • spark+phoenix读取hbase

    正常来说这个内容应该网上可参考的文章很多,但是我还是捣鼓了好久,现在记录下来,给自己个备忘录。 phoenix是操作hbase的皮肤,他可以轻松的使用sql语句来操作hbase,比直接用hbase的原语操作要友好的多。spark直接操作hbase也是通过hbase的原语操作,操作起来比较繁琐,下

    2024年01月22日
    浏览(38)
  • zookeeper + hadoop + hbase + phoenix

    IP hostname 192.168.23.130 hadoop01 192.168.23.131 hadoop02 192.168.23.132 hadoop03 jdk-1.8 zookeeper-3.8.1 hadoop-3.2.4 hbase-2.4.15 phoenix-2.4.0-5.1.3 1、关闭防火墙 2、设置主机名 3、配置主机hosts 4、设置ssh免密登录 分发JDK安装包到其他节点 配置JDK环境变量(所有节点都需要执行) 修改zookeeper配置 添加z

    2024年02月06日
    浏览(43)
  • 【项目实战】Dbeaver使用Apache Phoenix来实现连接Hbase的详细指引

    DBeaver是一款开源的数据库管理工具,可以连接多种类型的数据库,包括Apache Phoenix和Hbase。通过DBeaver连接Hbase表,可以更方便地进行数据管理和查询。 注意:该教程适用于:远程连接Linux上的Hadoop集群,因此本步骤是不需要在本地再下载hadoop的环境,所以,很多内容都可以直

    2024年02月05日
    浏览(41)
  • 实时数仓|基于Flink1.11的SQL构建实时数仓探索实践

    实时数仓主要是为了解决传统数仓数据时效性低的问题,实时数仓通常会用在实时的 OLAP 分析、实时的数据看板、业务指标实时监控等场景。虽然关于实时数仓的架构及技术选型与传统的离线数仓会存在差异,但是关于数仓建设的基本方法论是一致的。本文会分享基于 Flink

    2024年02月16日
    浏览(44)
  • 【Java核心知识】spring boot整合Mybatis plus + Phoenix 访问Hbase与使用注意

    为什么Phoenix能让开发者通过SQL访问Hbase而不必使用原生的方式?引用Phoenix官网上的一句话:SQL is just a way of expressing what you want to get not how you want to get it . 即SQL不是一种数据操作技术,而是一种特殊的表达方式。只是表示你需要什么而不是你如何获得。 一个集成了Phoenix的Hb

    2024年02月15日
    浏览(66)
  • 【基于HBase和ElasticSearch构建大数据实时检索项目】

    利用HBase存储海量数据,解决海量数据存储和实时更新查询的问题; 利用ElasticSearch作为HBase索引,加快大数据集中实时查询数据; 使用到的大数据组件有:Hadoop-2.7.3、HBase-1.3.1、zookeeper-3.4.5、ElasticSearch-7.8.0 实验环境: 虚拟机(操作系统CentOS7.6) + 个人PC(Windows)+ Eclipse或者

    2024年02月14日
    浏览(44)
  • GaussDB(DWS)基于Flink的实时数仓构建

    本文分享自华为云社区《GaussDB(DWS)基于Flink的实时数仓构建》,作者:胡辣汤。 大数据时代,厂商对实时数据分析的诉求越来越强烈,数据分析时效从T+1时效趋向于T+0时效,为了给客户提供极速分析查询能力,华为云数仓GaussDB(DWS)基于流处理框架Flink实现了实时数仓构建。在

    2024年04月22日
    浏览(42)
  • 基于Flume+Kafka+Hbase+Flink+FineBI的实时综合案例(二)数据源

    目标 : 了解数据源的格式及实现模拟数据的生成 路径 step1:数据格式 step2:数据生成 实施 数据格式 消息时间 发件人昵称 发件人账号 发件人性别 发件人IP 发件人系统 发件人手机型号 发件人网络制式 发件人GPS 收件人昵称 收件人IP 收件人账号 收件人系统 收件人手机型号

    2024年02月04日
    浏览(38)
  • 基于Flume+Kafka+Hbase+Flink+FineBI的实时综合案例(五)FineBI可视化

    目标 : 实现FineBI访问MySQL结果数据集的配置 实施 安装FineBI 参考《FineBI Windows版本安装手册.docx》安装FineBI 配置连接 数据准备 小结 实现FineBI访问MySQL结果数据集的配置 目标 : 实现FineBI实时报表构建 路径 step1:实时报表构建 step2:实时报表配置 step3:实时刷新测试 实施 实

    2024年02月04日
    浏览(39)
  • 如何基于 Apache Doris 与 Apache Flink 快速构建极速易用的实时数仓

    随着大数据应用的不断深入,企业不再满足离线数据加工计算的时效,实时数据需求已成为数据应用新常态。伴随着实时分析需求的不断膨胀,传统的数据架构面临的成本高、实时性无法保证、组件繁冗、运维难度高等问题日益凸显。为了适应业务快速迭代的特点,帮助企业

    2024年02月12日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包