티스토리 뷰
반응형
서버에 설치된 하둡버전이 hadoop-3.3.1 버전이었는데, hadoop-3.2.3 의 다른 버전을 사용했을때 나타났던 문제이다.
protobuf 는 원격지에 데이터를 직렬화 하기위한 인터넷 프로토콜인데 의존된 버전간이 달라지면서 호환성에 문제가 있는게 문제가 아닌가 의심된다. 결국 서버에 있는 하둡버전과 동일하게 클라이언트 환경을 다시 세팅후 성공했다.
신기한건 hadoop fs 명령으로 hdfs 를 확인할때는 문제가 없었는데, yarn 명령을 이용하려고 할때 문제가 발생되었다.
# 서버는 3.3.1 , 현재 서버의 하둡클라이언트 버전은 3.2.3
$ yarn application -list
2022-09-07 17:50:51,598 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2022-09-07 17:50:51,727 INFO impl.TimelineReaderClientImpl: Initialized TimelineReader URI=http://hadoop5.myinfra.com:8198/ws/v2/timeline/, clusterId=yarn-cluster
2022-09-07 17:50:52,299 INFO client.AHSProxy: Connecting to Application History server at hadoop8.myinfra.com/10.0.0.8:10200
Exception in thread "main" java.lang.ClassCastException: org.apache.hadoop.yarn.proto.YarnServiceProtos$GetApplicationsRequestProto cannot be cast to com.google.protobuf.Message
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:228)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:118)
at com.sun.proxy.$Proxy16.getApplications(Unknown Source)
at org.apache.hadoop.yarn.api.impl.pb.client.ApplicationClientProtocolPBClientImpl.getApplications(ApplicationClientProtocolPBClientImpl.java:316)
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 org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:422)
at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeMethod(RetryInvocationHandler.java:165)
at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invoke(RetryInvocationHandler.java:157)
at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeOnce(RetryInvocationHandler.java:95)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:359)
at com.sun.proxy.$Proxy17.getApplications(Unknown Source)
at org.apache.hadoop.yarn.client.api.impl.YarnClientImpl.getApplications(YarnClientImpl.java:602)
at org.apache.hadoop.yarn.client.cli.ApplicationCLI.listApplications(ApplicationCLI.java:997)
at org.apache.hadoop.yarn.client.cli.ApplicationCLI.run(ApplicationCLI.java:489)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:90)
at org.apache.hadoop.yarn.client.cli.ApplicationCLI.main(ApplicationCLI.java:127)
해결방법
나 같은 경우는 서버에 설치된 하둡 버전인 3.3.1 버전을 다운로드 받고, xml 설정을 다시 복사후 성공했다.
참고로 하둡 3.3.1 바이너리 다운로드 링크는 아래와 같다.
반응형
'데이터처리 > Hadoop' 카테고리의 다른 글
[하둡] Can't get Kerberos realm 오류 해결법 - krb5.conf 경로문제 (0) | 2023.03.08 |
---|---|
[하둡] Server asks us to fall back to SIMPLE auth, but this client is configured to only allow secure connections 문제 해결하기 (0) | 2022.10.04 |
[YARN] java.io.IOException: DestHost:destPort 오류문제 (0) | 2022.09.19 |
hadoop client 설치와 HADOOP_CLASSPATH 잡기 (0) | 2022.09.06 |
[하둡] 커버로스 인증시 GSS initiate failed 오류문제 (0) | 2022.07.20 |
댓글