phoenix

Phoenix duplicate record -- 查询数据重复的原因和解决方案

核能气质少年 提交于 2019-12-05 13:07:45
问题说明 issue A: 开启参数后(phoenix.stats.enabled=true),使用Phoenix SQL查询数据,出现重复(查出来的数据多余HBase实际存储的内容) issue B:关闭参数后(phoenix.stats.enabled=false),Phoenix SQL性能降低。 环境 Phoenix 版本:phoenix-4.8.0-HBase-1.1 本文目的 探究stats对查询的影响 参数描述 phoenix.stats.enabled: 是否启用统计(默认值true)。 参数功能 在stats开启的情况下,major compaction以及region split 会自动调用StatisticsCollector的updateStatistic方法,收集Region的key信息,计算guideposts并写入到system.stats表中。 参数影响(并行度) Phoenix SQL通过将查询划分成更多的scan、并行执行scan来提升性能。 在guideposts之间的数据都会当成一个chunk,每一个chunk对应一个scan,通过并行执行scan来获取查询性能的提升。 chunk 的大小可以通过 phoenix.stats.guidepost.width来配置。更小的chunk意味着更多的scan&更大的并发度

Phoenix duplicate record -- 查询数据重复的原因和解决方案

房东的猫 提交于 2019-12-05 13:04:44
问题说明 issue A: 开启参数后(phoenix.stats.enabled=true),使用Phoenix SQL查询数据,出现重复(查出来的数据多余HBase实际存储的内容) issue B:关闭参数后(phoenix.stats.enabled=false),Phoenix SQL性能降低。 环境 Phoenix 版本:phoenix-4.8.0-HBase-1.1 本文目的 探究stats对查询的影响 参数描述 phoenix.stats.enabled: 是否启用统计(默认值true)。 参数功能 在stats开启的情况下,major compaction以及region split 会自动调用StatisticsCollector的updateStatistic方法,收集Region的key信息,计算guideposts并写入到system.stats表中。 参数影响(并行度) Phoenix SQL通过将查询划分成更多的scan、并行执行scan来提升性能。 在guideposts之间的数据都会当成一个chunk,每一个chunk对应一个scan,通过并行执行scan来获取查询性能的提升。 chunk 的大小可以通过 phoenix.stats.guidepost.width来配置。更小的chunk意味着更多的scan&更大的并发度

How to use java api to send hbase shell command directly like jdbc?

淺唱寂寞╮ 提交于 2019-12-05 02:54:26
问题 How to use java api to send hbase shell command directly like jdbc ? public static void main(String args[]) { // get Connection to connect hbase Connection conn = ....; // hbase shell command String cmd = "get 't1','r1'"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(cmd); while(rs.next()) { ... } } if there is no java api for this, is there another way to achieve the goal? 回答1: Please note that, Phoenix can execute queries in jdbc style... If you want to execute

Phoenix doesn't display negative integer values correctly

大城市里の小女人 提交于 2019-12-05 00:26:38
问题 I am creating a HBASE table with a value of integer -17678. But when i retrieve it from pheonix it gives me a different positive value. RowKey is a composite rowkey and there is no problem with rowkey. Hbase insertion: public class test { public static void main(String args[]) { Configuration config = HBaseConfiguration.create(); Connection connection = ConnectionFactory.createConnection(config); Table table = connection.getTable(TableName.valueOf("TEST")); Integer i=-17678; try { Put p = new

phoenixframework自动化测试平台1.5.0全新发布

五迷三道 提交于 2019-12-04 15:09:46
一、前言 之前一直想对phoenix_webdriver,phoenix_mobile的代码进行重构,不少朋友反馈平台的API不够直观,尤其是webUI和mobile app相关的API有些乱。我自己也有这种感觉,尤其在后续的功能扩展上也比较麻烦,随着用户量的增加,这几个模块的代码重构越来越迫在眉睫,否则以后会有更多的问题。但苦于一直没有足够时间。趁这最近换工作间歇的几天时间,狠下心来把这几个模块的代码好好重构了一下。 本次重构只是对重要模块代码结构的重构,前面所有版本的功能,在新版本中都会完整保留。此外对页面的js方法,页面功能,页面UI,CSS等都有重构,特别是UI,能给您一种焕然一新的感觉。 二、重构效果体验 重构之后的效果如下: 在develop工程下,用户逻辑自定义区域使用px或phoenix均能调出平台支持的所有API接口,接着可直接调用该接口下的所有方法。重构后接口调用也更直观和方便,尤其是在我后续如有扩展新功能,就更方便了,代码逻辑也更清晰。 如选择webAPI方法: 从以下代码可以看出,与之前版本相比,功能已经做了完全分离。 三、各API功能说明 1、webAPI webAPI用于对webUI做自动化测试。能对页面的元素模拟人手点击的操作,该API里面的方法同样都适用于mobile browser。 调用方法: phoenix.webAPI()..... 示例代码

Phoenix 简单介绍

删除回忆录丶 提交于 2019-12-04 10:37:23
转载自:https://blog.csdn.net/carolzhang8406/article/details/79455684 1. Phoenix定义 Phoenix最早是saleforce的一个开源项目,后来成为Apache基金的顶级项目。 Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询。 put the SQL back in NoSQL Phoenix完全使用Java编写,作为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集。直接使用HBase API、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。 HBase的查询工具有很多,如:Hive、Tez、Impala、Spark SQL、Phoenix等。 Phoenix通过以下方式使我们可以少写代码,并且性能比我们自己写代码更好: 将SQL编译成原生的HBase scans。 确定scan关键字的最佳开始和结束 让scan并行执行 ... 2. Phoenix架构 Phoenix Architecture.png Phoenix在Hadoop生态系统中的位置 位置.png

Apache Phoenix - How can start the query server and thin client on Kerberos cluster

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-04 10:17:21
I have recently spent several days trying to run the phoenix thin (queryserver.py and sqlline-thin.py) and thick via zookeeper to secure cluster.But, I could not able to start or connect the phoenix service on secure cluster. Faced Below issues on phoenix thin and thick clients 17/09/27 08:41:47 WARN util.NativeCodeLoader: Unable to load native-hadoop libra ry for your platform... using builtin-java classes where applicable Error: java.lang.RuntimeException: java.lang.NullPointerException (state=,code=0 ) java.sql.SQLException: java.lang.RuntimeException: java.lang.NullPointerExceptio n at org

PHOENIX SPARK - Load Table as DataFrame

好久不见. 提交于 2019-12-04 09:14:58
I have created a DataFrame from a HBase Table (PHOENIX) which has 500 million rows. From the DataFrame I created an RDD of JavaBean and use it for joining with data from a file. Map<String, String> phoenixInfoMap = new HashMap<String, String>(); phoenixInfoMap.put("table", tableName); phoenixInfoMap.put("zkUrl", zkURL); DataFrame df = sqlContext.read().format("org.apache.phoenix.spark").options(phoenixInfoMap).load(); JavaRDD<Row> tableRows = df.toJavaRDD(); JavaPairRDD<String, AccountModel> dbData = tableRows.mapToPair( new PairFunction<Row, String, String>() { @Override public Tuple2<String,

Spark Streaming and Phoenix Kerberos issue

大憨熊 提交于 2019-12-04 06:53:13
问题 Sorry for this question as this has been raised numerous time on SO, But I am still not able to find a solution for my issue after going through each relevant post. I am using Spark Streaming (1.6.1) with Phoenix (4.4) on Kerberos env on HDP 2.4.2 getting below exception when try to read or write from HBase. I get the same issue even after skipping key-ph.conf file from spark-submit. I had a look on below post which has identical problem as mine but still I am not able to find solution for my

[Phoenix] Mix 命令

自作多情 提交于 2019-12-04 05:57:52
mix phx.gen.html 命令生成模板: # 其中 name 和 age 是 schema 字段名称,后面跟的是类型 # 下面这样的写法,会生成 controller 和 service 层的,但是我们通常不需要生成 service 层面的结构 mix phx.gen.html Account User users [name:string age:integer] # 这样就能生成没有 schema 结构的 HTML 控制: mix phx.gen.html Account User users --no-context # 但是有时候我们又要把它放在之前生成过的结构下面,方法如下: # 把 user 放在了之前生成的 Merchant 目录下面,当做是 user 的子目录 mix phx.gen.html Account User users --no-context --web Merchant # 如果不生成 schema 的话,基本 Account 和 uses 是随便填的。 # 下面是把 student 放在 Merchant/User/ 下面 mix phx.gen.html Account Student students --no-context --web Merchant.User mix ecto.gen.migration migration文件名