温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。


Fayson的github:

​https://github.com/fayson/cdhproject​


提示:代码块部分可以左右滑动查看噢


1.问题描述



HiveServer2服务在运行时经常抛出如下异常日志:


[HiveServer2-Handler-Pool: Thread-53]: Error occurred during processing of message.
java.lang.RuntimeException: org.apache.thrift.transport.TSaslTransportException: No data or no sasl data in the stream
at org.apache.thrift.transport.TSaslServerTransport$Factory.getTransport(TSaslServerTransport.java:219)
at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:269)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.thrift.transport.TSaslTransportException: No data or no sasl data in the stream
at org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:328)
at org.apache.thrift.transport.TSaslServerTransport.open(TSaslServerTransport.java:41)
at org.apache.thrift.transport.TSaslServerTransport$Factory.getTransport(TSaslServerTransport.java:216)
... 4 more

(可左右滑动)


HiveServer2服务异常日志分析_apache


2.异常分析



1.这是一个可以忽略的异常,不会影响HiveServer2服务的正常使用。


2.该异常会在Thrift0.9.2及更低版本的HiveServer2服务上出现。


3.由HiveServer2服务上的负载均衡器进行Tcp检查引起的,主要用评估服务的健康状况。(详见THRIFT-2268)


https://issues.apache.org/jira/browse/THRIFT-2268?attachmentSortBy=dateTime

(可左右滑动)


3.异常处理



在Fayson眼里看到ERROR级别的日志就是不爽,即使没有影响的异常。这里Fayson告诉大家如何将这样的ERROR日志屏蔽。


1.登录CM进入Hive服务的配置页面,类别选择“HiveServer2”


HiveServer2服务异常日志分析_apache_02


2.在搜索栏搜“HiveServer2 日志记录高级配置代码段(安全阀)”,添加如下配置:


log4j.appender.RFA.filter.1=org.apache.log4j.filter.ExpressionFilter 
log4j.appender.RFA.filter.1.Expression=EXCEPTION ~= org.apache.thrift.transport.TSaslTransportException
log4j.appender.RFA.filter.1.AcceptOnMatch=false

(可左右滑动)


HiveServer2服务异常日志分析_hive_03


3.保存配置后重启HiveServer2服务即可


HiveServer2服务异常日志分析_java_04


4.总结



1.“No data or no sasl data in the stream”是一个对HiveServer2服务没有影响的ERROR日志,该日志主要是HiveServer2服务上的负载均衡器进行Tcp检查引起的。


2.通过在HiveServer2的日志记录中增加配置过滤该ERROR日志, HiveServer2只会触发具有“org.apache.thrift.transport.TSaslTransportException”异常时才会调用过滤器,不会影响HiveServer2服务的性能。



提示:代码块部分可以左右滑动查看噢


为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。



推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

HiveServer2服务异常日志分析_hive_05

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操