Apache Phoenix 是 HBase 的 SQL 驱动。Phoenix 使得 HBase 支持通过 JDBC 的方式进行访问,并将你的 SQL 查询转成 HBase 的扫描和相应的动作。...mirrors.hust.edu.cn... 202.114.18.160 正在连接 mirrors.hust.edu.cn|202.114.18.160|:80......已连接。...:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/home/linuxidc/phoenix-3.1.0-bin/hadoop1/phoenix-3.1.0.../logs/hbase-linuxidc-regionserver-linuxidc02.out 5:启动和简单操作 [linuxidc@linuxidc02 bin]$ sqlline.py localhost
文档编写目的 本文主要介绍如何使用Java代码访问Kerberos环境下的Phoenix5.0。...内容概述 代码编写 验证 总结 测试环境 CM和CDH版本均为7.1.1 Phoenix版本为5.0.0 集群已启用Kerberos 代码编写 1.1 集群环境 CM和CDH版本均为7.1.1 集群已启用...Kerberos认证 使用Phoenix查看HBase表情况 phoenix-sqlline !...--5.0.0-HBase-2.0--> 5.0.0-HBase-2.0</phoenix.version...conf目录,并将krb5.conf和keytab文件拷贝到该目录下 hbase-site.xml文件拷贝到Maven工程下的resources目录下 在工程下创建测试类PhoenixKrbTest.java
什么是 Phoenix ? Apache Phoenix 是运行在Hbase之上的高性能关系型数据库,通过Phoenix可以像使用jdbc访问关系型数据库一样访问hbase。...Phoenix,操作的表以及数据存储在hbase上。phoenix只需要和hbase进行表关联。然后在用工具进行一些读写操作。 可以把Phoenix 只看成一种代替Hbase语法的工具。...虽然Java可以用jdbc来连接phoenix,然后操作hbase,但是在生产环境中,不可以用OLTP中。 phoenix在查询hbase时,虽然做了一些优化,但是延迟还是不小。...WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java...timeUsed = System.currentTimeMillis() - time; System.out.println("time " + timeUsed + "mm"); // 关闭连接
了解 Apache Kylin 和 Apache Phoenix 的同学都知道,它们都是使用 Apache HBase 做数据存储和查询,那么,同为 HBase 上的 SQL 引擎,它们之间有什么不同呢...2、Apache Phoenix 2.1 Apache Phoenix 介绍 Phoenix 是一个 Hadoop 上的 OLTP 和业务数据分析引擎,为用户提供操作 HBase 的 SQL 接口,结合了具有完整...(所依赖的第三方类较多)两种;server 是针对 thin client 而言的,为 standalone 模式,是由一台 Java 服务器组成,代表客户端管理 Phoenix 的连接,可以进行横向扩展...较好的利用 HBase 的优点,如 row timestamp,将其与 HBase 原生的 row timestamp 映射起来,有助于 Phoenix 利用 HBase 针对存储文件的时间范围提供的多种优化和...Phoenix 直接使用 HBase API,以及协处理器和自定义过滤器,从而使得查询的效率更好。对于查询,Phoenix 可以根据 region 的边界进行分块并在客户端并行运行以减少延迟。
对比使用Phoenix组件和原生Hbase查询的时间性能 之前对于使用Phoenix查询Hbase大表数据一直卡死,于是搁置了好久,昨晚终于尝试了一下,完美搞定,本节文章来使用4种方法对比Hbase...查询按照rowkey查询,适合存储结果,不适合做sum、count、表连接等复杂查询,而SQL则适合多表连接,查询组合等。...phoenix,由saleforce.com开源的一个项目,后又捐给了Apache。它相当于一个Java中间件,帮助开发者,像使用jdbc访问关系型数据库一些,访问NoSql数据库HBase。...phoenix,操作的表及数据,存储在hbase上。phoenix只是需要和Hbase进行表关联起来。然后再用工具进行一些读或写操作。...第四种:Phoenix查询时间 需要设置Phoenix中的hbase-site.xml时间配置: phoenix.query.timeoutMs
通过Linux的Kinit命令可以方便的完成Kerberos的认证,那么在Java开发中如何完成Kerberos的登录认证呢?本篇文章主要讲述如何使用Java连接Kerberos环境的HBase。...内容概述 1.环境准备 2.创建Java Maven工程 3.编写HBase测试代码 4.测试 5.总结 测试环境 1.RedHat7.2 2.CM和CDH版本为5.11.2 前置条件 1.Intellij...; import java.io.IOException; /** * Java访问Kerberos环境的HBase数据库 * @Date 2107-10-25 22:22:58 */ publicclass...代码直接连接到Kerberos环境下的HBase时,则需要将krb5.conf配置加载到程序运行环境中。...---- 推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。 [583bcqdp4x.gif] 原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操
前言 Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询。...Phoenix完全使用Java编写,作为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集。... true 重新启动Hbase和连接phoenix客户端. stop-hbase.sh start-hbase.sh sqlline.py...create table指令创建需要的表,系统将会自动在Phoenix和HBase中创建同名的表,并会根据指令内的参数对表结构进行初始化。...文件,增加如下内容 -vm D:/Tools/Java/jdk1.8.0_102/bin 连接配置 连接属性 驱动属性中也添加 属性 phoenix.schema.isNamespaceMappingEnabled
典型的 Phoenix 部署具有以下内容: 应用 Phoenix 客户端/JDBC 驱动程序 HBase 客户端 Phoenix 客户端/JDBC 驱动程序本质上是一个 Java 库,您应该将其包含在您的...Java 代码中。...Phoenix 在全局索引维护期间执行本地索引以防止死锁。:当索引更新失败时,Phoenix 还会部分自动重建索引 ( PHOENIX-1112 )。 序列如何在Phoenix工作?...任何失败都将表示为异常。 我可以在 Phoenix 中进行批量数据加载吗? 是的,您可以在 Phoenix 中进行批量插入。...如何连接到安全的 HBase 集群?
安装Kerberos客户端 下载地址 https://web.mit.edu/kerberos/dist/index.html 安装运行后会生成配置文件 配置文件的路劲和安装路径无关,是固定的。...重启后 连接Hive 目前使用22.0.3成功了,使用23.0.4一直不成功。...连接Phoenix 打开dbever的安装路径下的dbeaver.ini配置文件,加上 -vm D:\Tools\Java\jdk1.8.0_102\bin -Djava.security.auth.login.config...包同级目录下 jdbc:phoenix:hadoop01,hadoop02,hadoop03:/hbase:hdfs/hadoop01@HADOOP.COM:C:\ProgramData\MIT\Kerberos5...\hdfs.keytab 添加配置参数: 在连接属性中设置如下参数,与集群中保持一致: phoenix.schema.isNamespaceMappingEnabled=true phoenix.schema.mapSystemTablesToNamespace
cd /usr/local/hbase/conf echo $JAVA_HOME #若没有安装jdk可百度(偷懒) vi hbase-env.sh #添加和你输出的JAVA_HOME一致 export...JAVA_HOME=/usr/local/java 运行测试 cd /usr/local/hbase/bin ....org.apache.hadoop.hbase.client.*; import org.apache.hadoop.hbase.util.Bytes; import java.io.IOException...; private static Admin admin; public HbaseCRUD() { init(); } /** * 建立连接...; }catch (IOException e){ e.printStackTrace(); } } /** * 关闭连接
17 TIMESTAMP java.sql.Timestamp 格式:yyyy-MM-dd hh:mm:ss[.nnnnnnnnn] 二进制表示是8位byte的long类型和4位整型纳秒。...20 UNSIGNED_TIMESTAMP java.sql.Timestamp 格式:yyyy-MM-dd hh:mm:ss[.nnnnnnnnn] 二进制表示是8位byte的long类型和4位整型纳秒...例如:VARCHAR ARRAY, CHAR(10) ARRAY [5],INTEGER [],INTEGER [100] 连接的两种方式 Phoenix Shell 启动 Zookeeper =>...create table指令创建需要的表,系统将会自动在Phoenix和HBase中创建同名的表,并会根据指令内的参数对表结构进行初始化。...,增加如下内容 -vm D:/Tools/Java/jdk1.8.0_102/bin 连接配置 连接属性 驱动属性中也添加 属性 phoenix.schema.isNamespaceMappingEnabled
三.代码 1.封装所有的API package com.sxt.hbase; import java.io.IOException; import java.util.ArrayList; import...java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.Cell; import...; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import...java.util.List; import java.util.Random; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.Cell...scan.setStartRow(startRowkey.getBytes()); scan.setStopRow(stopRowkey.getBytes());//scan操作设置起始和结束的
典型的Phoenix部署具有以下特点: • 应用 • Phoenix Client / JDBC驱动程序 • HBase客户端 Phoenix客户端/ JDBC驱动程序本质上是一个Java库,您应该在...Java代码中包括它。...Phoenix使用HBase作为存储,类似于HBase使用HDFS作为存储的方式。...Phoenix在全局索引维护期间执行本地索引以防止死锁:Phoenix还会在索引更新失败时部分地自动重建索引(PHOENIX-1112 )。 07 序列在Phoenix中如何工作?...任何失败都将表示为异常。 09 我可以在Phoenix中进行批量数据加载吗? 是的,您可以在Phoenix中进行批量插入。
前言Phoenix分为胖客户端和瘦客户端 瘦客户端通过Phoenix Query Server 来解析SQL语言。...> org.apache.phoenix phoenix-hbase-compat-2.1.6 phoenix.schema.isNamespaceMappingEnabled
它定期连接到主NameNode,并在内存中执行元数据备份检查点。如果NameNode失败,您可以使用收集到的检查点信息重新构建NameNode。...Apache Pig提供了嵌套的数据类型,如元组、包和映射,这些数据类型是MapReduce中缺少的,同时还提供了内置的操作符,如连接、过滤器和排序等。...在任何部分故障时,客户端可以连接到任何节点以接收正确的最新信息。没有管理员,HBase无法运行。ZooKeeper是Apache Phoenix中协调服务的关键组件。...与用Java或其他语言编写代码相比,许多程序员更喜欢结构化查询语言(SQL)。Phoenix是一种SQL接口,可以用来查询HBase存储中的数据。...phoenix,hive,和其他属于这一类。 如果你是DBA,你可能不想学习或理解在Hadoop系统中处理数据的Java代码。
Java2(J2EE)支持 支持Java 2 Enterprise Edition和Eclipse插件。 您可以使用Java客户端API对Apache HBase表执行操作。...您可以开发可用于创建表,插入数据的Java应用程序。本机Java客户端API提供了编程访问。 语言支持 除了Java和C#,运营数据库还允许您使用各种编程语言来构建应用程序。...Java数据库连接(JDBC)支持 您可以使用JDBC接口访问运营数据库。OpDB中的Apache Phoenix提供了JDBC SQL端点来与存储在Apache HBase中的数据进行交互。...REST API访问 您可以使用Apache HBase REST服务器与OpDB进行交互。如果您不想使用Java API,这是一个很好的选择。使用URL和REST API进行交互。...-1/ 结论 在此博客文章中,我们研究了OpDB支持的语言、支持框架和连接支持。
Phoenix旨在通过标准的SQL语法来简化HBase的使用,并可以使用标准的JDBC连接HBase,而不是通过HBase的Java客户端APIs。...Phoenix可以给Rowkey加盐,从而避免因为简单递增的Rowkey引起的RegionServer热点问题。通过指定不同的租户连接实现数据访问的隔离,从而实现多租户,租户只能访问属于他的数据。...包括Phoenix这3个工具在很多功能上都有一些重叠,比如它们都提供SQL执行以及JDBC驱动 不像Impala和Hive,Phoenix与HBase结合更加紧密,从而可以更好的利用HBase的一些特性...7.Phoenix的命令行工具 ---- Phoenix的命令行工具在/usr/bin目录下,在使用Phoenix的命令行工具之前,需要配置Java的环境变量。...export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera export PATH=$PATH:$JAVA_HOME/bin phoenix-sqlline.py是执行
; select * from test; 二 通过java的jdbc 创建表test1,并插入数据,然后查询 在这之前,要先将依赖:phoenix-4.12.0-HBase-1.2-client.jar...而“f1”.val列声明你的HBase表将包含KeyValues列簇和列限定符“f1”:VAL和他们的值将是一个VARCHAR。...VARCHAR) Hbase表中插入一条数据,phoenix表中查询 put 't1','1001','f1:VAL','lisi' 同时创建hbase和phoenix表: 也可以直接使用cteate...table同时创建phoenix表和hbase表 CREATE TABLE t1(pk VARCHAR PRIMARY KEY,val VARCHAR) 推荐阅读: 1,HBase原理和设计 2,干货...:Sqoop导入导出数据练习 3,kafka连接器两种部署模式详解 4,重磅:如何玩转kylin
用Hbase shell 看下会发现多出来一个 USER_PHOENIX 表,用scan 命令查看一下这个表的数据 hbase(main):002:0> scan 'USER_PHOENIX' ?...rehash 获取用于完成命令的表和列名称 !rollback 回滚当前事务(如果关闭自动提交) !run 从指定的文件运行脚本 !save 保存当前变量和别名 !...C: squirrel配置连接Phoenix 配置squirrel 解压的phoenix-4.7.0-HBase-1.1-bin.tar.gz包的主目录下将如下几个jar...的url选择了phoenix的driver以后自动出现也可以改,user name就是phoenix连接的主机的用户名,密码就是该机器的密码,点击自动登录 然后点击test,显示连接成功即可...; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException
,写入同一个Region 分区都是按照数字划分的,但是Rowkey是字母开头 解决 实现预分区 方式一:创建表时候:SPLITS => [10,30……] 方式二:指定分区的个数,根据数字和字母的...Hash组合 应用:Rowkey的前缀是字母和数字组合 方式三:Java API 合理的设计Rowkey,根据Rowkey的前缀或者完整的Rowkey来划分分区 Rowkey...Hbase(五).assets/image-20210322105117623.png)] 随机取某一列的一个值 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9a9g0u0B...-1616666919964)(20210322_分布式NoSQL列存储数据库Hbase(五).assets/image-20210322105145249.png)] 随机生成一条数据 [外链图片转存失败....png)] 总结 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GvWhnY47-1616666919965)(20210322_分布式NoSQL列存储数据库Hbase
领取专属 10元无门槛券
手把手带您无忧上云