大数据开发phoenix连接hbase流程详解

目录
  • 一、安装phoennix添加配置
  • 二、启动phoenix服务
  • 三、phoenix常用语法
  • 四、java代码集成phoenix

一、安装phoennix添加配置

1、将phoenix-server-hbase-2.4-5.1.2.jar拷贝至hbase的的lib下

cp  phoenix-server-hbase-2.4-5.1.2.jar ../hbase/lib/

2、配置phoenix可以访问hbase的系统表

(1)将以下配置添加至hbase-site.xml中

   <property>
      <name>phoenix.schema.isNamespaceMappingEnabled</name>
      <value>true</value>
   </property>
    <property>
        <name>phoenix.schema.mapSystemTablesToNamespace</name>
        <value>true</value>
    </property>

(2)将hbase-stie.xml拷贝到phoenix/bin目录下

cp ../hbase/conf/hbase-site.xml   ../phoenix/bin/

二、启动phoenix服务

1、启动hbase

../hbase/bin/start-hbase.sh

2、启动phoenix

python3  ../phoenix/bin/sqlline.py   server200:2181

server200:2181为zookeeper地址

三、phoenix常用语法

官网文档   https://phoenix.apache.org/language/index.html

(1)创建表

create table test1(id varchar primary key,a varchar,b varchar);

id主键可视为hbase的rowkey

(2)插入数据

upsert into TEST1 values('202211160089','liuping','chenyingying');

(3) 查询数据

select * from TEST1;

(4)视图/表映射

由于phoenix 无法直接访问hbase创建的非系统表,可以通过视图/表映射对非系统表进行查询,但视图不可修改,表映射可读可写

在hbase上创建表名为eftb列族为fm1 、fm2的表

create 'reftb','fm1','fm2'

向表中添加数据

 put 'reftb','010101','fm1:name','zhangsan'
 put 'reftb','010101','fm2:age','九千岁'

<1>视图映射

create view "reftb"(id varchar primary key,"fm1"."name" varchar,"fm2"."age" varchar);

<2>表映射

create table "reftb"(id varchar primary key,"fm1"."name" varchar,"fm2"."age" varchar);

<3>查看数据

(5)添加修改数据(增改语法相同)

 upsert into "reftb"  values('010102','诸葛村夫','五十');
 upsert into "reftb"  values('010101','常山赵子龙','七十');

(6)删除数据

delete from "reftb" where ID='010101';

(7)创建schema(数据库名,对用hbase是的namespace)

CREATE SCHEMA IF NOT EXISTS "my_schema";

四、java代码集成phoenix

1、添加依赖

implementation 'org.apache.phoenix:phoenix-client-hbase-2.4:5.1.2'

2、编写代码

public class PhoenixJdbcUtils {
    private final static Logger LOGGER = LoggerFactory.getLogger(PhoenixJdbcUtils.class);
    private static   Connection connection;
    static {
        Properties properties =new Properties();
        PhoenixDriver instance = PhoenixDriver.INSTANCE;
        try {
            connection = instance.connect("jdbc:phoenix:server200:2181", properties);
            ///connection = DriverManager.getConnection("jdbc:phoenix:server200:2181", properties);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    /**
     * 插入数据
     * @throws SQLException
     */
    public static   void  testUpsertData() throws SQLException {
        PreparedStatement psUpsert = connection.prepareStatement( " upsert  into \"reftb\" values('168936','刘备','63')");
        boolean addData = psUpsert.execute();
        LOGGER.info("addData---------"+addData);
        connection.commit();
    }
    /**
     * 查询数据
     * @throws SQLException
     */
    public static void  testQueryData() throws SQLException {
        PreparedStatement psQuery = connection.prepareStatement(" select  *  from  \"reftb\" ");
        ResultSet resultSet = psQuery.executeQuery();
        while (resultSet.next()) {
            LOGGER.info("id--{}",resultSet.getString(1));
            LOGGER.info("name--{}",resultSet.getString(2));
            LOGGER.info("age--{}",resultSet.getString(3));
        }
    }
    public static void main(String[] args) {
        try {
            testQueryData();
            testUpsertData();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

到此这篇关于大数据开发phoenix连接hbase流程详解的文章就介绍到这了,更多相关phoenix连接hbase内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 通过DBeaver连接Phoenix操作hbase的方法

    通过DBeaver连接Phoenix操作hbase 前言 本文介绍常用一种通用数据库工具Dbeaver,DBeaver 可通过 JDBC 连接到数据库,可以支持几乎所有的数据库产品,包括:MySQL.PostgreSQL.MariaDB.SQLite.Oracle.Db2.SQL Server.Sybase.MS Access.Teradata.Firebird.Derby 等等.商业版本更是可以支持各种 NoSQL 和大数据平台:MongoDB.InfluxDB.Apache Cassandr

  • 大数据开发phoenix连接hbase流程详解

    目录 一.安装phoennix添加配置 二.启动phoenix服务 三.phoenix常用语法 四.java代码集成phoenix 一.安装phoennix添加配置 1.将phoenix-server-hbase-2.4-5.1.2.jar拷贝至hbase的的lib下 cp  phoenix-server-hbase-2.4-5.1.2.jar ../hbase/lib/ 2.配置phoenix可以访问hbase的系统表 (1)将以下配置添加至hbase-site.xml中 <property>

  • Android 实例开发一个学生管理系统流程详解

    目录 效果演示 实现功能总览 代码 登录与忘记密码界面 一.添加布局文件 二.添加标题文字 三.绑定适配器 注册界面 一.创建两个Drawable文件 二.将其添加数组内 三.动态变化背景 考勤界面 一.CircleProgressBar代码如下 签到界面 一.倒计时 二.位置签到 成绩查询界面 一.创建StackAdapter 适配器 效果演示 随手做的一个小玩意,还有很多功能没有完善,倘有疏漏,万望海涵. 实现功能总览 实现了登录.注册.忘记密码.成绩查询.考勤情况.课表查看.提交作业.课程

  • Vue openLayers实现图层数据切换与加载流程详解

    目录 openlayers介绍 一.实现效果预览 二.代码实现 openlayers介绍 OpenLayers是一个用于开发WebGIS客户端的JavaScript包.OpenLayers 支持的地图来源包括Google Maps.Yahoo. Map.微软Virtual Earth 等,用户还可以用简单的图片地图作为背景图,与其他的图层在OpenLayers 中进行叠加,在这一方面OpenLayers提供了非常多的选择.OpenLayers采用面向对象方式开发. OpenLayers 是一个专

  • Python实现大数据收集至excel的思路详解

    一.在工程目录中新建一个excel文件 二.使用python脚本程序将目标excel文件中的列头写入,本文省略该部分的code展示,可自行网上查询 三.以下code内容为:实现从接口获取到的数据值写入excel的整体步骤 1.整体思路: (1).根据每日调取接口的日期来作为excel文件中:列名为"收集日期"的值 (2).程序默认是每天会定时调取接口并获取接口的返回值并写入excel中(我使用的定时任务是:linux下的contab) (3).针对接口异常未正确返回数据时,使用特殊符号

  • Java GUI图形界面开发实现小型计算器流程详解

    目录 一.设计目标 二.界面设计 三.功能实现 四.全部代码 五.功能测试 六.小结 一.设计目标 (1)主要功能:实现简单的加.减.乘.除等双目运算,和开平方.百分数等单目运算 (2)辅助功能:按钮“C”实现清空文本框:按钮“←”实现退格,删除文本框中最右边的一个字符 二.界面设计 创建“面板对象”,并设置其布局管理方式为5行4列的GridLayout布局方式,以用于容纳20个按钮.文本框和容纳20个按钮组件的面板则使用边界布局方式分别将其布局到窗体BorderLayout.NORTH和中央位

  • vue element实现将表格单行数据导出为excel格式流程详解

    由于业务内容的需要,我们有时候需要将表格中的单行数据做导出,生成一个excel表格,以下操作主要实现将element中的table数据生成一个excel表格并做下载操作. 效果图如下: 点击单行导出按钮,导出数据为excel表格 如下图: 具体操作步骤如下: 1.下载按照依赖 npm install -D script-loader 2.在src文件夹的目录下方创建两个js文件 (1):Blob.js (2):Export2Excel.js 如下图: (Blob.js) (function (v

  • 货拉拉大数据对BitMap的探索实践详解

    目录 关于Bitmap What BitMap的简单实现 BitSet源码理解 备注信息 核心片段理解 Why BitMap的特点 BitMap的优化 RoaringBitmap的核心原理 how BitMap在用户分群的应用 传统解决方案 使用BitMap的方案 BitMap在A/B实验平台业务的应用 结语 关于Bitmap 在大数据时代,想要不断提升基于海量数据获取的决策.洞察发现和流程优化等能力,就需要不停思考,如何在利用有限的资源实现高效稳定地产出可信且丰富的数据,从而提高赋能下游产品的

  • 微信小程序开发(一) 微信登录流程详解

    最近在研究微信小程序开发,非常有意思的一个东西.花了一点时间写了一个微信的登录流程,包括后端接口和小程序代码. 做过微信登录的都知道,我们需要一个标识来记录用户的身份的唯一性,在微信中unionId就是我们所需要的记录唯一ID,那么如何拿到unionId就成了关键,我将项目分为小程序和 后台PHP代码两部分来讲. 微信小程序开放平台 先从我们的小程序代码开始 简单的说一下我们小程序的js代码登录流程 login ->获取code ->getUserInfo获取iv和encryptedData

  • MySql学习day03:数据表之间的连接、查询详解

    主键: 关键字:primary key 特点:不能为null,并且唯一. 主键分类: 逻辑主键:例如ID,不代表实际的业务意义,只是用来唯一标识一条记录(推荐) 业务主键:例如username,参与实际的业务逻辑. 主键使用方式: 方式一:     Create table t1(        Id int primary key,        Name varchar(100) ); Insert into t1 values(1,'zs'); Insert into t1 values(

  • 基于PHP的微信公众号的开发流程详解

    微信公众号开发分傻瓜模式和开发者模式两种,前者不要考虑调用某些接口,只要根据后台提示傻瓜式操作即可,适用于非专业开发人员. 开发模式当然就是懂程序开发的人员使用的. 下面简单说一下微信公众号开发的简易流程,新手看看会有帮助,高手请一笑而过. 1.配置服务器: A.首先在本机建立如下结构的文件夹(这里是我自己的习惯,仅供参考) MMPN:总目录mro message public number 微信公众号 backup:备份目录,主要用于备份php文件,每次修改时将原稿备份到里面去. images

随机推荐