我正在尝试使用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,这样就不需要手动更新主机文件?
我注意到地址字符串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吗? 此外,构造函数是一个方法调用,因