问题标签 [phoenix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
214 浏览

sql - 在 SQL 或 spark 或 mapreduce 中排序并加入

我有两个表格,其内容如下。

我试图得到低于结果。

根据上面的 i/p 和 o/p,这两个表应该基于列 id3、id4、name 和 desc 连接。如果存在活动记录,则应返回活动记录。但如果仅存在非活动记录,则应加入最旧的非活动记录。

我尝试了不同的查询,这些查询不再接近我想要的答案。连接的四列都是非主字段,但不是空值。两个表之间可以存在一对多或多对多的关系。

我正在研究 Apache phoenix,如果解决方案在 Hadoop Mapreduce 或 Apache Spark 中也可以。

我写的一个示例查询如下。

任何人都可以帮助我吗?

0 投票
1 回答
3772 浏览

hbase - 将 Phoenix 与 Hbase 独立使用会引发 NoSuchMethodError

我已经下载了 Hbase(1.1) 和 Phoenix(4.4 for hbase 1.1) 的 tar.gz 包

在独立模式下设置 hbase 是可行的,我可以进入 hbase shell。

接下来,我将 phoenix 目录中的所有 .jar 文件放入 Hbase 的 lib 文件夹中。

但是,每次我尝试启动 sql shell 时,都会出现以下错误。我整天都在做这件事,在这里看着自己瞎了眼。

Phoenix 网站上的安装说明很短,基本上都是说,复制 jars,运行 .py 脚本。

更新:如果有人遇到同样的问题,我还没有设法解决这个问题,但尝试在一台新机器上对我有用。所以它可能是某个地方的一些冲突库。

RegionCoprocessorEnvironment.getRegion()Lorg/apache/hadoop/hbase/regionserver/Region;在 org.apache.phoenix.coprocessor.MetaDataEndpointImpl.createTable(MetaDataEndpointImpl.java:1054) ... 还有 10 个在 org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1196) 在 org.apache。 hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:213) 在 org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:287) 在 org.apache.hadoop.hbase.protobuf。在 org.apache.hadoop.hbase.protobuf.ProtobufUtil.execService(ProtobufUtil.java:1615) 处生成.ClientProtos$ClientService$BlockingStub.execService(ClientProtos.java:32675)

0 投票
3 回答
4718 浏览

java - Spark 1.3.1 ClassNotFoundException 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)

我正在尝试通过 Spark 连接到 Phoenix,并且在通过 JDBC 驱动程序打开连接时不断收到以下异常(为简洁起见,下面是完整的堆栈跟踪):

有问题的类由名为 phoenix-core-4.3.1.jar 的 jar 提供(尽管它位于 HBase 包命名空间中,但我猜他们需要它与 HBase 集成)。

关于 Spark 上的 ClassNotFoundExceptions 有很多关于 SO 的问题,我尝试了 fat-jar 方法(使用 Maven 的程序集和阴影插件;我检查了 jar,它们确实包含 ClientRpcControllerFactory),我尝试了一个精简的 jar在命令行上指定罐子时。对于后者,我使用的命令如下:

我还从代码中完成了类路径转储,层次结构中的第一个类加载器已经知道 Phoenix jar:

所以问题是:我在这里错过了什么?为什么 Spark 不能加载正确的类?应该只有一个版本的类飞来飞去(即来自phoenix-core的那个),所以我怀疑这是一个版本冲突。

/编辑

不幸的是,问题仍然存在于 4.4.0-HBase-0.98。以下是有问题的课程。由于 Java API 尚不能使用 saveToPhoenix() 方法,而且这只是一个 POC,我的想法是简单地为每个小批量使用 JDBC 驱动程序。

/edit2 我尝试了 saveAsHadoopApiFile 方法(https://gist.github.com/mravi/444afe7f49821819c987#file-phoenixsparkjob-java),但这会产生相同的错误,只是堆栈跟踪不同:

0 投票
1 回答
2064 浏览

scala - 使用 Spark 批量加载到 Phoenix

我试图编写一些实用程序来通过 Spark RDD 中的 HFiles 批量加载数据。

我从凤凰取了 CSVBulkLoadTool 的模式。我设法生成了一些 HFiles 并将它们加载到 HBase 中,但是我看不到使用 sqlline 的行(例如,使用 hbase shell 是可能的)。如果有任何建议,我将不胜感激。

BulkPhoenixLoader.scala:

ExtendedProductRDDFunctions.scala:

我使用 hbase 中的实用工具加载生成的 HFiles,如下所示:

0 投票
1 回答
227 浏览

hadoop - 我在 CDH5.4 上使用 Hbase 1.0.0 和 Apache phoenix 4.3.0。当我重新启动 Hbase 时,区域服务器已关闭

我什至尝试了 Apache Phoenix 的 CDH 包裹。但同样的问题也存在。

我在 /usr/lib/hbase/lib/ 中添加了 phoenix-4.3.0-server.jar 并尝试重新启动 Hbase 集群。但是我的区域服务器没有出现。

0 投票
1 回答
433 浏览

database - phoenix join 操作不适用于 hbase

我正在使用hbase-1.1.0.1phoenix-4.4.0-HBase-1.1-bin版本。要运行 SQL 查询,我使用的是SQuirrelSQL 客户端。

诸如 、 和子查询等简单查询Select *工作Select count(*)正常where clause,但JOIN操作根本不工作。请帮助我。

0 投票
1 回答
1261 浏览

jdbc - Squirrel 设置连接到 Phoenix - HBASE: 错误 java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.lang.NoSuchMethodError:

我是 Hbase & phoenix 的新手。我正在尝试使用 Squirrel 客户端通过 Phoenix JDBC 驱动程序连接到 HBASE。不知何故,我似乎遇到了一个奇怪的错误,运行时抱怨 NoSuchMethod 异常。我已经在Squirrel的lib文件夹中包含了相关的客户端jar phoenix-4.4.0-HBase-1.0-client ,并且已经成功注册了驱动。当我尝试连接时,我得到了这个似乎有点奇怪的异常。我已经提取了 jar 并看到方法getCurrentUser()确实存在于 org/apache/hadoop/security/UserGroupInformation.class 文件中。

0 投票
1 回答
2845 浏览

mysql - Apache Phoenix 中的聚合和分组依据

我正在尝试在使用聚合和 groupby 函数的 Apache Phoenix 中执行查询。我已经在 mysql 中执行了相同的查询并且它可以工作,但是在凤凰城我尝试了基于 mysql 查询的查询,但它失败了。请参阅下面的 mysql 查询和 Phoenix 查询。

MySQL:

结果:
id3 id4 名称描述状态 min(date)

17773 8001300701101 name1 descr1 INACTIVE 20121202
17785 9100000161822 name3 descr3 INACTIVE 20121201

凤凰查询:

MySQL和Phoenix的查询没有区别。

但是我收到以下错误有人可以解释一下吗?

0 投票
1 回答
3650 浏览

jdbc - 松鼠客户端连接到 Phoenix - 超时异常

我正在尝试通过 Squirrel 客户端连接到 Phoenix。我在 Squirrel 日志中收到以下日志。日志表明与 zooperkeeper 的 ClientConnection 已建立,但是当 SQLClient Connection 建立时出现超时异常,它会失败。

我已经将phoenix客户端jar复制到Squirrel的lib目录下,驱动注册成功。此外,当我在 localhost 中运行 SQLLine.py 实用程序时,它会成功地将 SQL 命令行加载到 Phoenix,我可以运行这些命令。也将 phoenix core jar 添加到 $HBASE_HOME/lib 文件夹中。

0 投票
1 回答
893 浏览

java - 编写 MapReduce 时出现 Apache Phoenix 双数据类型问题

我正在使用 Apache Phoenix 在 Hbase 中创建表,因为它提供了二级索引功能以及类似 sql 的数据类型。我使用 phoenix 创建了一个表,其列为 Double 和 Varchar。

Phoenix 在 Hbase 中将 Double 值存储为 ByteArray,如下所示

我编写了 mapreduce 程序来直接从 Hbase SCAN api 读取值,而不使用 Phoenix,它对 Varchar 值工作正常,但存储为 Byte 数组的其他数据类型返回不同的值。参考 Phoenix 和 mapreduce 输出。所有正双精度值作为负值返回,负双精度值返回为 0.018310546875,如下所示

-