当前位置: 首页 > 知识库问答 >
问题:

Drill JDBC和Zookeeper抛出UnsolvedAddressException

敖硕
2023-03-14

我正在尝试使用JDBC驱动程序从外部连接到DC/OS上的容器化分布式apache drill设置,如下所示

https://drill.apache.org/docs/using-the-jdbc-driver/#example-以编程方式连接到drill

但是,当在集群之外运行此程序以从我的机器连接时,zooManager连接完成,然后它尝试以以下形式解析Drillbit地址

2d7f7217340c: 31010

其中2d7f7217340c是内部钻头id,如钻网控制台所示

当然了

java。尼奥。频道。UnsolvedAddressException

直到我在本地/etc/hosts文件中输入一个条目,将2d7f7217340c解析为演练节点的公共ip。

关于这个话题,我已经搜索了很多次,但什么也没找到。有没有办法将Zookeeper或Drill配置为返回IP而不是钻头ID,这样就不需要手动更新主机文件?

共有1个答案

陆洲
2023-03-14

我注意到地址字符串2d7f7217340c是由部署期间生成的容器ID定义的。即使通过修改容器的主机名

lsns

nsenter——目标

然后重新启动容器中的钻孔,zookeeper仍然返回2d7f7217340c地址。

一个可行的解决方案是修改最近添加DRILL_HOSTNAME变量在apache-钻头/conf/drill-env.sh通过AWS元数据服务获取公共主机名

export DRILL_HOSTNAME=`curl -s http://169.254.169.254/latest/meta-data/public-hostname`

公共主机名现在由Drill发布,可以在外部和内部解析

 类似资料:
  • 因此,我使用服务器(google-app-engine)在客户端应用程序上进行身份验证。当我使用JavaFX、Webview或HttpsURLConnection时,一切都很好,它们连接起来了,但是当我使用HttpClient时,它会抛出以下错误 javax.net.ssl.sslpeerunverifiedexception:peer未在sun.security.ssl.sslsessionim

  • 嘿StackOverflow社区, 关于抛出异常。一般什么时候抛出和异常,什么时候抓取? 假设我遇到了这样的情况,我不得不退出,因为发生了一些问题,我无法从它中恢复过来。我是投还是接? 我现在就这么做: 这样做对吗?如果我只是抛出异常会更合适吗?对不起,我是例外的新手:)

  • 然后我有一个驱动程序bean来尝试调用路由 最后,在springboot应用程序类中,我添加了这样一个命令行运行程序,它从spring上下文获取bean,并调用say方法。我使用的是groovy,所以我只是向命令行运行程序传递了一个闭包。 当我运行我的应用程序时,我会打印出所有的bean名称(这没关系),但是当我通过producer模板调用direct:in时,我会得到这个错误(org.apach

  • 主要内容:throws 声明异常,throw 拋出异常Java 中的异常处理除了捕获异常和处理异常之外,还包括声明异常和拋出异常。实现声明和抛出异常的关键字非常相似,它们是 throws 和 throw。 可以通过 throws 关键字在方法上声明该方法要拋出的异常,然后 在方法内部通过 throw 拋出异常对象。本节详细介绍在 Java 中如何声明异常和拋出异常。 throws 声明异常 当一个方法产生一个它不处理的异常时,那么就需要在该方法的头部

  • 你怎么捕获一个异常,之后在另外一个线程上重新抛出?使用在标准文档18.8.5中描述的异常传递中的方法吧,那将显示标准库的魔力。 exception_ptr current_exception(); 返回一个exception_ptr 变量,它将指向现在正在处理的异常(15.3)或者现在正在处理的异常的副本(拷贝),或者有的时候在当前没有遇到异常的时候,返回值为一个空的exception_ptr变量

  • 抛出异常的行为是否可能抛出不同的异常? 为了抛出异常,必须(可选地)分配新对象,并调用其构造函数(隐式调用fillinstacktrace)。在某些情况下,听起来像addSupressed也被称为。那么如果没有足够的内存会发生什么呢?JVM是否需要预分配内置异常?例如,(1/0)会抛出OutOfMemoryError而不是ArithmeticException吗? 此外,构造函数是一个方法调用,因