Impala 是一款 Cloudera 软件,它在桌面上实现了 ODBC 驱动程序,然后直接连接到 Hadoop 集群。在我们的实现中,我们的 Hadoop 集群位于 DMZ 后面,我们打算在其中使用身份验证代理连接。
是否有一个代理解决方案可以实现这一点?
TCP 协议不是 HTTP,所以我无法执行大多数代理和 Apache 作为反向代理等实现的基本身份验证质询。
我查看了 HAProxy,似乎我可以想出一个“配置”。我会为它配置两个侦听器,一个用于 HTTP,一个用于 TCP。HTTP 代理可以根据 IP 将连接“推送”到粘性表中,并可以对用户进行身份验证。我需要在每个集群服务器上都有一个 HTTP 服务(无论如何,它是 Hadoop 的一部分)。TCP 代理将配置一个权重为 100 的“虚拟”第一服务器,然后是每个权重为零的集群节点。因此,我希望,如果用户只是尝试连接,他们将被定向到虚拟服务器,但如果他们首先访问 HTTP 代理并进行身份验证,他们将被定向到具有负载平衡的真实服务器。
{如果我的声誉足够高,图表就会放在这里}
除了我不知道它是否会起作用之外,这件事的戏剧性之处在于,登录名/密码被硬编码(尽管是加密密码)到 HAProxy 配置脚本中。最糟糕的是,必须重新启动 HAProxy 才能使密码更改生效。我有超过 1,000 名用户每隔几周就强制重置密码,所以我可以预料到健忘的人可能每天都会向我提出密码重置请求。
那么,有什么想法吗?我知道许多 HTTP 代理都集成了 LDAP(Apache、Squid 等),但它们自然都是 HTTP 专用的。到目前为止,我见过的唯一具有身份验证功能的软件代理是 HAProxy,但它对我们来说还不够好。
鉴于 Apache 是开源的,HAProxy 也是开源的,并且两者都在 Linux 上运行,那么获取 mod_ldap 库的 HAProxy 包装器有多难?我的意思是,在此处输入链接描述