티스토리 뷰

반응형

서버에 설치된 하둡버전이 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 바이너리  다운로드 링크는 아래와 같다.

https://hadoop.apache.org/release/3.3.1.html

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함