phoenix

HBase读写的几种方式(一)java篇

若如初见. 提交于 2020-04-25 05:24:08
1.HBase读写的方式概况 主要分为: 纯Java API读写HBase的方式; Spark读写HBase的方式; Flink读写HBase的方式; HBase通过Phoenix读写的方式; 第一种方式是HBase自身提供的比较原始的高效操作方式,而第二、第三则分别是Spark、Flink集成HBase的方式,最后一种是第三方插件Phoenix集成的JDBC方式,Phoenix集成的JDBC操作方式也能在Spark、Flink中调用。 注意: 这里我们使用HBase2.1.2版本,以下代码都是基于该版本开发的。 2. 纯Java API读写HBase 2.1 连接HBase 这里我们采用静态方式连接HBase,不同于2.1.2之前的版本,无需创建HBase线程池,HBase2.1.2提供的代码已经封装好,只需创建调用即可: /** * 声明静态配置 */ static Configuration conf = null ; static Connection conn = null ; static { conf = HBaseConfiguration.create(); conf.set( "hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03" ); conf.set( "hbase.zookeeper.property

phoenix 报错:type org.apache.phoenix.schema.types.PhoenixArray is not supported

可紊 提交于 2020-04-06 10:24:34
今天用phoenix报如下错误: 主要原因:   hbase的表中某字段类型是array,phoenix目前不支持此类型 解决方法: 复制替换phoenix包的cursor文件 # Copyright 2015 Lukas Lalinsky # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific

phoenix 启动报错

徘徊边缘 提交于 2020-04-06 10:24:06
[root@hbase1 bin]# ./sqlline.py hbase2:2181 Setting property: [incremental, false] Setting property: [isolation, TRANSACTION_READ_COMMITTED] issuing: !connect jdbc:phoenix:hbase2:2181 none none org.apache.phoenix.jdbc.PhoenixDriver Connecting to jdbc:phoenix:hbase2:2181 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/local/phoenix/phoenix-4.12.0-HBase-1.1-client.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SQuirreL 连接phoenix 安装配置

五迷三道 提交于 2020-04-02 06:38:18
参考连接: http://phoenix.apache.org/installation.html#SQL_Client windows连接linux服务器上的hbase 下载安装文件 : squirrel-sql-3.8.1-standard.jar(本人目录为C:\Users\29126\Downloads) 安装 C:\Users\29126\Downloads>java -jar squirrel-sql-3.8.1-standard.jar(本人安装目录选择为: F:\software\squirrel-sql-3.8.1) 拷贝jar 从Phoenix的lib目录拷贝phoenix-core-5.0.0-alpha-HBase-2.0.jar,phoenix-5.0.0-alpha-HBase-2.0-client.jar到squirrel的lib目录(由于java程序用了phoenix-core-5.0.0-alpha-HBase-2.0.jar去连接,所以放进来了,但是文档没讲要放这个jar) 打开软件,配置driver 新建driver目录配置如下 name : phoenix_dirver(随便起名字) example url : jdbc:phoenix:192.168.50.107(也可以随便配置,后面alias时会用这个当默认值) class name 填

Phoenix + HBase,让你像操作MySQL一样操作HBase

别来无恙 提交于 2020-04-02 06:06:21
Phoenix关联HBase的操作(三种情况) 情况一:Hbase已经有已存在的表了,可在Phoenix中创建对应的视图,视图只能做查询操作,不能做增删改 hbase中已创建表且有数据,表名:phoenix 在phoenix中创建对应视图 create view "phoenix"( pk varchar primary key, "info"."name" varchar, "info"."age" varchar ); 查询视图数据 情况二:Hbase已存在表,可在Phoenix中创建对应的表,对表的操作可读可写,意味着可以对Hbase的表进行插入查询,删除操作。 hbase中已存在表并且有数据 在phoenix中创建对应的表 create table "t_person"( id VARCHAR PRIMARY KEY, "f"."id" VARCHAR, "f"."name" VARCHAR, "f"."age" VARCHAR ) column_encoded_bytes=0; 在phoenix中查询数据 在phoenix中插入数据 此时查看hbase中对应的t_person表数据 情况三:Hbase没有表;可直接在Phoeinx中创建表,对应的Habse中也会自动建表,在Phoenix中对表操作就是直接对Hbase中的表进行操作。 在phoenix中直接建表,t

第三方jar包引入项目工程方法

℡╲_俬逩灬. 提交于 2020-03-11 17:52:04
方法一: 再idea中直接用maven引入 命令如下: mvn install:install-file -Dfile=G:\code\bd\branches\bigdata-project-zuoke\app-logs-spark\src\lib\phoenix-4.7.0-clabs-phoenix1.3.0-client.jar -DgroupId=org.apache.phoenix -DartifactId=phoenix-client -Dversion=4.7.0 -Dpackaging=jar pom中直接引入即可 方法二:通过相对路径引入 来源: CSDN 作者: 草鱼带帽子 链接: https://blog.csdn.net/weixin_41876523/article/details/104791336

apache phoenix 初探

谁说我不能喝 提交于 2020-03-10 19:07:20
最近工作中用到HBase。但HBase的原生客户端使用起来相当繁琐,spring-data-hadoop又年久失修,和最新的HBase集成起来各种异常。因此找到了 Apache Phoenix —— 它支持使用标准SQL和 JDBC接口来操作HBase。 本文记录一下使用phoenix的常见问题(主要来自 phoenix faq ),最后是笔者项目中用到的配置。 Phoenix 常见问题 Phoenix JDBC URL 语法格式 Thick Driver thick driver格式如下,请注意中括号里边的内容是可选的: jdbc:phoenix:[ZooKeeper地址(多个请用逗号分隔) [:port[:hbase root znode[:kerberos_域名[:kerberos keytab地址]]]] 最简单的例子为: jdbc:phoenix:localhost 复杂的例子为: jdbc:phoenix:zookeeper1.domain,zookeeper2.domain,zookeeper3.domain:2181:/hbase-1:phoenix@EXAMPLE.com:/etc/security/keytab/phoenix.keytab 值得注意的是每个可选的内容要求前置所有内容完整。 实际上笔者的driver url为: jdbc:phoenix

docker 或 k8s 部署应用

半腔热情 提交于 2020-02-27 05:41:34
docker docker 部署应用 1. docker 部署web应用 编辑简单的文件服务器 package main import ( "fmt" "net/http" "os" "path" "path/filepath" ) func main() { p, _ := filepath.Abs(filepath.Dir(os.Args[0])) p = path.Join(p,"static") http.Handle("/", http.FileServer(http.Dir(p))) err := http.ListenAndServe(":8088", nil) if err != nil { fmt.Println(err) } } 工程配置 使用go build 编译为可执行文件main, 监听端口为8088, 文件夹目录为 static,建立目录格式如下: -. |--Dockerfile |--main |--static |--run.sh run.sh #! /usr/bin/env bash cd /app && ./main # 打开到app 目录并执行程序 生成镜像 配置运行目录为/app,暴露端口号8088, 执行CMD指令bash run.sh Dockerfile FROM golang MAINTAINER jim WORKDIR /app

Phoenix 使用技巧

随声附和 提交于 2020-01-23 00:40:43
Phoenix shell: 1、启动:phoenix/bin/sqlline.py hadoop:2181 (说明:phoenix也是基于zookeeper的,启动时后面需要跟zookeeper集群信息,进入后可通过 !list查看jdbc连接地址) 2、帮助:help 查看具体的使用命令 3、查看元数据 : select TENANT_ID , TABLE_SCHEM , TABLE_NAME , COLUMN_NAME , COLUMN_FAMILY , DATA_TYPE , COLUMN_SIZE , DECIMAL_DIGITS from SYSTEM . CATALOG ; (说明:通过查看元数据可以看到表字段名、字段类型、映射hbase的列族名、字段大小) 4、查看指定表元数据: select TENANT_ID , TABLE_SCHEM , TABLE_NAME , COLUMN_NAME , COLUMN_FAMILY , DATA_TYPE , COLUMN_SIZE , DECIMAL_DIGITS from SYSTEM . CATALOG where TABLE_NAME = 'ADS_WTCHK_SALES_DASHBOARD_H_REALTIME_TMP' ; (说明:表名大写时,需用 ‘table_name’ 单引号,phoenix对大小写敏感

Phoenix链接hbase尝试

六月ゝ 毕业季﹏ 提交于 2020-01-22 17:29:48
一、什么是Phonenix? Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询。 Phoenix完全使用Java编写,作为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集。直接使用HBase API、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。 Phoenix通过以下方式使我们可以少写代码,并且性能比我们自己写代码更好: 将SQL编译成原生的HBase scans。 确定scan关键字的最佳开始和结束 让scan并行执行 基本准备条件: hbase 版本1.2.6,对应的phoenix版本为4.14.1 下载apache-phoenix-4.14.1-HBase-1.2-bin,解压后可得到 接着就是将 拷贝到hbase的lib目录下; 然后将hbase是hbase-site.xml拷贝到phoenix下的bin目录下; 启动zookeeper 启动Hadoop 启动hbase 然后进入到Phoenix的bin目录下; 输入 ./sqlline.py master:2181(zookeeper的主节点) 接着可以看到一些语句; (1