通过 100002/jmx 能访问到hive数据 但是显示jmx协议未开启?
时间: 2023-09-10 14:06:41 浏览: 103
jmx2graphite:在一个命令行(基于Docker)中每隔X秒将JMX转换为Graphite(也以Java Agent形式出现)
这种情况可能是因为你的JMX配置没有正确地设置。在Hive中,JMX远程连接需要进行以下步骤:
1. 在Hive的配置文件hive-site.xml中启用JMX:
```xml
<property>
<name>hive.server2.transport.mode</name>
<value>http</value>
</property>
<property>
<name>hive.server2.thrift.http.port</name>
<value>10000</value>
</property>
<property>
<name>hive.server2.thrift.http.path</name>
<value>cliservice</value>
</property>
<property>
<name>hive.server2.jmx.port</name>
<value>9999</value>
</property>
<property>
<name>hive.server2.jmx.rmi.registry.port</name>
<value>10002</value>
</property>
<property>
<name>hive.server2.jmx.rmi.server.hostname</name>
<value>hostname</value>
</property>
```
2. 在Hive的启动脚本中添加JMX选项:
```bash
export HADOOP_OPTS="$HADOOP_OPTS -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.rmi.port=10002 -Djava.rmi.server.hostname=hostname"
```
如果你已经按照上述步骤进行了配置,但仍然无法访问JMX,则可能是防火墙等安全设置的问题。你需要确保JMX端口9999和RMI Registry端口10002在防火墙中打开,并且你正在使用正确的IP地址和端口号进行连接。
阅读全文