【问题标题】:Can't run a python script无法运行 python 脚本
【发布时间】:2015-11-30 21:31:56
【问题描述】:

我正在尝试运行 Phoenix Apache 开源项目附带的 performance.py 脚本。

根据指令(我是 python 新手),我执行:

performance.py localhost 999

我收到此错误:

Phoenix Performance Evaluation Script 1.0
-----------------------------------------

Creating performance table...
Error: Could not find or load main class org.apache.phoenix.util.PhoenixRuntime
Query # 1 - Count - SELECT COUNT(1) FROM PERFORMANCE_999;
Query # 2 - Group By First PK - SELECT HOST FROM PERFORMANCE_999 GROUP BY HOST;
Query # 3 - Group By Second PK - SELECT DOMAIN FROM PERFORMANCE_999 GROUP BY DOM
AIN;
Query # 4 - Truncate + Group By - SELECT TRUNC(DATE,'DAY') DAY FROM PERFORMANCE_
999 GROUP BY TRUNC(DATE,'DAY');
Query # 5 - Filter + Count - SELECT COUNT(1) FROM PERFORMANCE_999 WHERE CORE<10;


Generating and upserting data...
Error: Unable to access jarfile 999


Error: Could not find or load main class org.apache.phoenix.util.PhoenixRuntime

所以不确定这里发生了什么。错误Error: Unable to access jarfile 999 表明我没有正确传递值。但是,我正在按照该脚本中的说明进行操作。

我错过了什么?
附言这发生在 Windows Server 2012 上

【问题讨论】:

  • 我不熟悉这个项目。您是提供 jarfile,还是在包中提供?

标签: python hadoop hbase windows-server phoenix


【解决方案1】:

该脚本正在使用这一行:

subprocess.call("java -jar %s %s" % (phoenix_utils.testjar, rowcount), shell=True)

从您的输出来看,phoenix_utils.testjar 显然是空白的。你确定你有正确的Java环境设置吗?

在你的日志中甚至更高,它说:

错误:无法找到或加载主类 org.apache.phoenix.util.PhoenixRuntime

【讨论】:

  • 我可以从命令行运行 java.exe 并找到它。所以我认为它的设置相当好(因为所有其他java东西都运行良好)。它是 Azure 中的 Hadoop/HBase 集群,所以我假设他们知道自己在做什么。
  • 脚本运行时,它的类路径是否与您在命令提示符下运行时相同? python 创建一个进程并使用不同的环境变量运行它可能有点奇怪?
【解决方案2】:

我也遇到了同样的问题。深入脚本,是由于phoenix-core-xxx-tests.jar在错误的目录下,所以脚本找不到。

查看 phoenix_utils.py,它将测试 jar 指向 phoenix_root_directory。但 jar 实际上位于 phoenix_root_directory/lib 上。

将jar复制到根目录,cd到phoenix_root_directory/bin并运行performance.py。

【讨论】:

    猜你喜欢
    • 2013-01-24
    • 2016-03-06
    • 2017-12-25
    • 2020-09-22
    • 2017-05-22
    • 2016-08-17
    • 1970-01-01
    • 2018-02-10
    • 2018-10-23
    相关资源
    最近更新 更多