Phoenix伪分布安装

news2024/11/17 5:42:54

引言

Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询。Phoenix完全使用Java编写,作为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集。

实验准备

1.一台配置好HBase伪分布安装的虚拟机

2.apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz

实验步骤

1.准备软件包并解压,上传到/opt/download/下,解压到/opt/software/hadoop下。

[root@master download]# tar -zxvf apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz -C /opt/software/Hadoop

重命名软件包为phoenix500

2.配置环境变量,在文件末尾增加(shift+g):

vim /etc/profile
#在系统环境变量中加入以下内容

#PHOENIX

export PHOENIX_HOME=/opt/software/hadoop/phoenix500/

export PHOENIX_CLASSPATH=$PHOENIX_HOME

export PATH=$PATH:$PHOENIX_HOME/bin

如下图所示:

 保存并退出。

3.使环境变量生效:

source /etc/profile

4.配置phoenix,切换到phoenix500目录下,拷贝phoenix下的3个jar包到hbase的lib目录下:

[root@master phoenix500]# cp /opt/software/hadoop/phoenix500/phoenix-5.0.0-HBase-2.0-client.jar /opt/software/hadoop/hbase210/lib/ 
[root@master phoenix500]# cp /opt/software/hadoop/phoenix500/phoenix-core-5.0.0-HBase-2.0.jar /opt/software/hadoop/hbase210/lib/ 
[root@master phoenix500]# cp /opt/software/hadoop/phoenix500/phoenix-5.0.0-HBase-2.0-server.jar /opt/software/hadoop/hbase210/lib/

5.将phoenix的bin目录下配置文件hbase-site.xml文件中的内容追加到hbase的配置文件hbase-site.xml中(为了允许启用二级索引 

<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec
</property>

 如下图所示:

6.将hbase的conf目录下的配置文件hbase-site.xml拷贝到phoenix的bin目录下,覆盖原有的配置文件:

[root@master phoenix500]# cp /opt/software/hadoop/hbase210/conf/hbase-site.xml /opt/software/hadoop/phoenix500/bin/

 7.将hbase中配置文件core-site.xml、hdfs-site.xml软连接:

[root@master bin]# ln -s /opt/software/hadoop260/etc/hadoop/core-site.xml /opt/software/hadoop/phoenix500/bin/core-site.xml
[root@master bin]# ln -s /opt/software/hadoop260/etc/hadoop/hdfs-site.xml /opt/software/hadoop/phoenix500/bin/hdfs-site.xml

8.切换到bin目录,修改bin目录下的psql.py和sqlline.py两个文件的权限为777:

[root@master bin]#  chmod 777 psql.py
[root@master bin]#  chmod 777 sqlline.py

9.验证phoenix是否安装成功是否安装成功(命令格式:sqlline.py<hbase.zookeeper.quorum>; hbase.zookeeper.quorum 是 HBase 集群的 Zookeeper 队列,对应 IP/Hostname 逗号分割的列表,端口号可不带):

首先切换到Phoenix的bin目录下:

[root@master bin]# sqlline.py master:2181cd

10.使用phoenix

执行!tables 命令,列出所有表到客户端界面(注意: 通过该客户端展示出来的表都是 通过 Phoenix 客户端创建的,通过其他方式创建的表在此处不显示)

如下图所示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1550605.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

win11 查看 wifi 密码

** win11 查看 wifi 密码 ** 第一种方法&#xff1a; 1.点击桌面左下角的开始菜单&#xff0c;选择“设置”。 2.在网络和internet中选择“高级网络设置”。 3.在相关设置下方点击“更多网络适配器选项”。 4.右击“WLAN”&#xff0c;在WLAN信息窗口点击“状态”。 5.…

IoT是什么?如何实现设备智能化?

设备智能化 IoT 是什么&#xff1f; The Internet of Things,物联网&#xff0c;是指通过 各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术&#xff0c;实时采集任何需要监控、 连接、互动的物体或过程&#xff0c;采集其声、光、热、电…

【单例模式】—— C++设计模式【附百度Apollo单例模式详细解读】

参考资料&#xff1a; &#xff08;1&#xff09;单例模式—— 代码随想录 &#xff08;2&#xff09;我给面试官讲解了单例模式后&#xff0c;他对我竖起了大拇指&#xff01; &#xff08;3&#xff09;C 单例模式详解 &#xff08;4&#xff09;单例模式之C实现&#xff0c;…

腾讯云2核2G服务器CVM S5和轻量应用服务器优惠价格

腾讯云2核2G服务器多少钱一年&#xff1f;轻量服务器61元一年&#xff0c;CVM 2核2G S5服务器313.2元15个月&#xff0c;腾讯云2核2G服务器优惠活动 txyfwq.com/go/txy 链接打开如下图&#xff1a; 腾讯云2核2G服务器价格 轻量61元一年&#xff1a;轻量2核2G3M、3M带宽、200GB月…

自然语言处理: 第二十章Dify本地部署

项目地址: dify a. 理论基础 Dify 是一个 LLM 应用开发平台&#xff0c;已经有超过 10 万个应用基于 Dify.AI 构建。它融合了 Backend as Service 和 LLMOps 的理念&#xff0c;涵盖了构建生成式 AI 原生应用所需的核心技术栈&#xff0c;包括一个内置 RAG 引擎。使用 Dify&a…

SpringBoot使用Jedis步骤

基础连接方式 引入依赖 <!-- Jedis --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId></dependency>创建Jedis对象&#xff0c;建立连接 操作字符串 方法名与Rdeis命令一致 操作Hash类型 释放资源 测…

数据结构/C++:位图 布隆过滤器

数据结构/C&#xff1a;位图 & 布隆过滤器 位图实现应用 布隆过滤器实现应用 哈希表通过映射关系&#xff0c;实现了O(1)的复杂度来查找数据。相比于其它数据结构&#xff0c;哈希在实践中是一个非常重要的思想&#xff0c;本博客将介绍哈希思想的两大应用&#xff0c;位图…

【力扣刷题日记】1113.报告的记录

前言 练习sql语句&#xff0c;所有题目来自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免费数据库练习题。 今日题目&#xff1a; 1113.报告的记录 表&#xff1a;Actions 列名类型user_idintpost_idintaction_datedateactionenumextravarc…

软件项目的外包开发流程

软件项目的开发流程是一个系统化的过程&#xff0c;旨在确保软件产品能够高效、稳定地满足用户需求。在中国&#xff0c;软件产业的发展得到了国家的大力支持&#xff0c;众多软件企业遵循国际标准和最佳实践&#xff0c;推动了软件工程的进步。 以下是一般的软件项目开发流程&…

盲盒小程序开发:探索未知,惊喜连连

在数字化浪潮的推动下&#xff0c;小程序以其便捷、轻量的特点&#xff0c;迅速成为移动互联网的新宠。而盲盒小程序的开发&#xff0c;则为用户带来了一种全新的、充满惊喜的购物体验。 盲盒小程序&#xff0c;顾名思义&#xff0c;就是结合了盲盒概念的微信小程序。它充分利…

Websocket的基本使用-聊天室案例

1. 什么是websocket WebSocket 是一种网络通信协议 2. 为什么需要websocket Websocket 协议&#xff0c;是为了弥补HTTP协议【单向通信】的缺点。 详细来讲&#xff0c;HTTP只支持由客户端发起通信&#xff0c;一旦服务端的数据发生变化&#xff0c;是不可能主动向客户端推…

数据结构——二叉搜索树详解

一、二叉搜索树定义 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树: 1.非空左子树上所有节点的值都小于根节点的值。 2.非空右子树上所有节点的值都大于根节点的值。 3.左右子树也都为二叉搜索树。 如下图所示&#xff1a…

SinoDB备份恢复工具之ontape

ontape是SinoDB数据库的备份恢复工具之一&#xff0c;可以记录、备份与恢复数据。因为不涉及到存储管理器&#xff0c;所以可以轻松实现其他备份方法&#xff0c;比如备份到 STDIO&#xff08;标准输出&#xff09;或备份到云。 1. ontape功能特性 备份数据库服务器实例支持增…

【蓝桥杯省赛真题34】python积木搭建 中小学青少年组蓝桥杯比赛 算法思维python编程省赛真题解析

python积木搭建 第十三届蓝桥杯青少年组python比赛省赛真题 一、题目要求 &#xff08;注&#xff1a;input&#xff08;&#xff09;输入函数的括号中不允许添加任何信息&#xff09; 1、编程实现 小蓝和小青在玩积木搭建游戏&#xff0c;具体玩法如下: 小蓝报一个数字N&…

展示大屏-24小时天气预报

一、项目说明 展示大屏显示未来一周天气和24小时天气详情。 二、技术工具 1.语言&框架&#xff1a;java、springboot 2.UI界面&#xff1a;jQuery、HTML、CSS、 VUE 3.开发工具&#xff1a;IntelliJ IDEA、Eclipse 三、实现步骤 后端步骤 1.调取免费或收费的API接口。 …

【一】TensorFlow神经网络模型构建之神经元函数及优化方法

TensorFlow神经网络模型构建主要涉及如下几块&#xff1a;神经元函数、卷积函数、池化函数、分类函数、优化方法。下面分别对这几块进行展开说明&#xff1a; 神经元函数及优化方法 神经网络之所以能解决非线性问题&#xff08;如语音、图像识别等&#xff09;&#xff0c;本…

共建数治政务,共赢数智未来——锐捷网络召开2024政府行业全国核心合作伙伴大会

在我国不断推进现代化产业体系建设,新质生产力正进入跃迁式发展的今天,加速政府的数字化转型,促进数字技术与政府应用深度融合,也正成为越来越多地方政府的共识。为了更好地携手合作伙伴共同把握数智政务建设新契机、聚力提升数智政务建设新能力,3月22日,以“共建数治政务,共赢…

C++第十三弹---内存管理(下)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1、operator new与operator delete函数 1.1、operator new与operator delete函数 2、new和delete的实现原理 2.1、内置类型 2.2、自定义类型 …

星光/宝骏/缤果/长安 车机CarPlay手机操作破解教程V2.0版本(无需笔记本、无需笔记本、无需笔记本)

之前写了个1.0版本&#xff0c;由于太局限&#xff0c;需要用到笔记本才能操作&#xff0c;很多车友反馈不方便。特此出个手机版教程&#xff0c;简单easy&#xff0c;妈妈再也不用担心我搞不定啦 一、准备工作 先卸载车机上的autokit 或者 智能互联 app&#xff0c;这步很关…

使用Qt生成图片

Qt之生成png/jpg/bmp格式图片_qt生成图片-CSDN博客 (1)使用QPainter 示例关键代码&#xff1a; QImage image(QSize(this->width(),this->height()),QImage::Format_ARGB32);image.fill("white");QPainter *painter new QPainter(&image);painter->…