2015-09-04 245 views
0

我试图运行Phoenix Apache开源项目附带的performance.py脚本。无法运行python脚本

每指令(我是新来的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表明我没有正确传递值。但是,我正在按照该脚本中的说明进行操作。

我错过了什么?
P.S.这是发生在Windows Server 2012

+0

我对这个项目不熟悉。你提供的是jarfile,还是包中提供的? – That1Guy

回答

1

该脚本使用该行:

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

而且从你的输出,该phoenix_utils.testjar显然是空白。你确定你的Java环境安装正确吗?

在日志

甚至更​​高,它说:

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

+0

我可以从命令行运行java.exe并找到它。所以我认为它设置得相当好(因为所有其他的java东西运行良好)。它是Azure中的一个Hadoop/HBase集群,所以我假设他们知道他们在做什么。 – AngryHacker

+0

当脚本运行时,它是否具有与在命令提示符中运行自己时相同的类路径? python创建一个进程并使用不同的环境变量运行它可能会有些奇怪? –

1

我也遇到了同样的问题。挖掘脚本,这是由于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。