集群启用Sentry之后,Hive和Impala的SQL查询页面多了一个搜索框,通过搜索框搜索时,侧边栏一直处于加载状态,如下图所示。
首先通过Chrome抓包看到搜索的HTTP请求报了一个500错误。
继续查看日志文件,发现再向localhost:7187端口发送请求的时候,连接拒绝了。这个7187有点陌生,我们似乎没有那个服务用的这个端口,而且本机上确实没有启动监听。
于是想到查看hue配置,看看哪里配置了这个7187端口的服务,找到如下默认配置:
至此,确定了500错误是因为请求这个不存在的服务造成的,那么这个Navigator是干什么的呢,其实是一个Cloudera公司的一个Hadoop数据治理解决方案,是CDH的付费内容。
既然这个付费内容我们用不了,那能不能将它干掉呢?
抱着试一试的心理,在源码中搜索『Search everywhere...』(那个搜索框的placeholder内容)。发现这个搜索框是受 navigatorEnabled 这个参数控制的。
至此,可以确定这个搜索框是可以通过配置去掉的,顺藤摸瓜,我们找到以下代码
在接着找has_navigator方法实现
意思大概是说navigator_url和navigator.auth_password都有内容的话,就认为navigator是开启的。很容易想到如果把navigator.api_url的默认配置抹掉就能屏蔽掉那个搜索框了。
在Cloudera Manager中为Hue添加以下配置,并重启Hue实例让配置生效,再次访问Hue,那个没有用的搜索框已经被干掉了。