You need to enable JavaScript to run this app.
导航
Hue 高可用访问集群内其他服务
最近更新时间:2024.07.17 14:18:51首次发布时间:2024.07.17 14:18:51

本文档主要解决在高可用集群中 Hue 访问集群内其他服务存在的单点问题。
在高可用集群中会在不同节点上部署多个组件实例,比如 HiveServer2,那么您在 Hue 中执行 Hive 作业时预期 Hue能够应对 HiveServer2的单点故障,可以实时切换到可用HiveServer2组件实例上。但实际上Hue 在实现上只能配置一个 HiveServer2 的地址,无法满足高可用的需求。下面会以 HiveServer2 和 HDFS 为例,引入火山引擎上的负载均衡服务来解决高可用访问的问题,其余服务都可以通过类似的方式来解决。
首先,您需要购买或者选择一个已有的负载均衡实例,该实例需要与您的集群在同一个 VPC,且该实例的网络类型为 私网。

HDFS

Hue 默认通过 WebHDFS 访问第一个 NameNode 实例,如果该 NameNode 实例不可用或者处于 StandBy状态, 则 Hue 就无法访问,这时候需要通过负载均衡来将 Hue 的流量路由到 Active 的 NameNode 实例。
首先,您需要确定 NameNode 部署的 ECS 实例,这可以通过 EMR 控制台的服务列表-部署拓扑来查找。

然后在所选的负载均衡内创建后端服务器组,并将相应的 ECS加入该后端服务器组, 其中的端口就是 WebHDFS 的监听端口,可以通过查询 HDFS 的服务参数来获得。

然后添加监听器,根据 WebHDFS 的情况填写 负载均衡协议(HTTP/HTTPS),后端服务器组选择刚创建的后端服务器组,开启健康检查,健康检查方法是 GET,健康检查路径是/webhdfs/v1/?op=LISTSTATUS,正常状态码勾选 2XX 和 3XX,其余均为默认值即可(注意这边需要在 ECS 所在安全组内放通负载均衡的网段,否则会造成健康检查异常和访问异常)。
创建完监听器,则可以根据相关信息确定 WebHDFS 的访问地址 监听器协议://负载均衡IP地址:监听器端口/webhdfs/v1。您可以将上述地址配置到 Hue 中, 对于 EMR 3。9。0 及以后的版本可以在控制台修改 Hue 的webhdfs_url参数, 对于之前的版本修改 ECS 实例上的 Hue 配置文件/etc/emr/hue/conf/pseudo-distributed。ini。tmpl的webhdfs_url配置字段,然后重启 Hue 服务。

HiveServer2

同 HDFS,先确定 HiveServer2 的 ECS 实例, 创建后端服务器组,其中的端口可以通过查找 Hive 的参数hive。server2。thrift。port获得。

然后添加监听器,负载均衡协议选择 TCP,调度算法选择原地址哈希,后端服务器组选择刚创建的后端服务器组,打开健康检查。

创建完监听器,则可以将负载均衡IP地址监听器端口配置到Hue。对于 EMR 3。9。0 及以后的版本可以在控制台修改 Hue 的hive_server_hosthive_server_port参数, 对于之前的版本修改 ECS 实例上的 Hue 配置文件/etc/emr/hue/conf/pseudo-distributed。ini。tmplhive_server_hosthive_server_port配置字段,然后重启 Hue 服务。