【发布时间】:2012-03-09 20:11:04
【问题描述】:
我编写了一个尝试创建默认 HBaseConfiguration 的应用程序,但是当我将应用程序打包为 jar 时,它无法正常工作,因为它正在尝试使用 127.0.0.1 的 zookeeper,而不是我的 @ 中指定的那个987654321@。应用程序可以被剥离成这样的:
object TestUtil extends App {
val hbaseTable = new HTable(HBaseConfiguration.create, "tableName")
println(hbaseTable)
}
当我使用以下命令运行它时,它工作正常:
CLASSPATH=`hbase classpath` java fully.qualified.name.TestUtil
如果我将其打包为 jar 并使用 CLASSPATH='hbase classpath' java -jar TestUtil.jar 调用它,则会收到以下错误:
org.apache.hadoop.hbase.ZooKeeperConnectionException: HBase is able to connect to ZooKeeper but the connection closes immediately.
我检查了日志,可以看到它正在尝试连接到 Zookeeper 的 127.0.0.1,这与我的 /etc/hbase/conf/hbase-site.xml 中的 zookeeper 配置不同。 jar 似乎忽略了我的类路径,即使我在命令行上明确设置了它。
如何让 JVM 在执行 jar 时遵循我的类路径?
【问题讨论】:
标签: scala hadoop jvm classpath hbase