hiveserver2配置prometheus因使用mr引擎报错解决

背景和原因分析

hiveserver2配置prometheus需要使用到-javaagent:/cluster/hive/jmx-exporter/jmx_prometheus_javaagent-0.12.0.jar=28054:/cluster/hive/jmx-exporter/hiveserver2-agent.yaml

如果在HADOOP_OPTS或者HADOOP_CLIENT_OPTS配置javaagent,则hiveserver2在启动mapred时候同样会使用HADOOP_OPTS或者HADOOP_CLIENT_OPTS,就会导致hiveserver2的端口和mapred都启动javaaagent,他们又使用了相同的端口,hiveserver2先启动的就占用了此端口,mapred启动后无法使用端口就报了端口冲突错误。

Hiveservers2是在hadoop命令中启动,传递环境变量(HADOOP_OPTS,HADOOP_CLIENT_OPTS)会传递给mapred程序,导致和已有的端口冲突。

hiveserver2其他引擎spark、tez不会使用HADOOP_OPTS,HADOOP_CLIENT_OPTS启动计算任务,因此不会引发这个问题。

日志

hivesever2报错日志:

MapReduce Total cumulative CPU time: 5 seconds 990 msec
Ended Job = job_xxxxxxxxxx
java.lang.reflect.InvocationTargetException     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386)
        at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401)
Caused by: java.net.BindException: Address already in use
        at sun.nio.ch.Net.bind0(Native Method)
        at sun.nio.ch.Net.bind(Net.java:433)
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
        at sun.net.httpserver.HttpServerImpl.bind(HttpServerImpl.java:54)
        at io.prometheus.jmx.shaded.io.prometheus.client.exporter.HTTPServer.<init>(HTTPServer.java:145)
        at io.prometheus.jmx.shaded.io.prometheus.jmx.JavaAgent.premain(JavaAgent.java:31)
        ... 6 more
Execution failed with exit status: 134
Obtaining error information

beeline报错如下:

ERROR : Execution failed with exit status: 134
ERROR : Obtaining error information
ERROR : 
Task failed!
Task ID:
  Stage-5

Logs:

ERROR : /var/de_log/hive/hiveserver2.log
ERROR : FAILED: Execution Error, return code 134 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask

posted @ 2026-02-26 17:26  lisacumt  阅读(1)  评论(0)    收藏  举报