Dear Hadoop Team, I'm a hadoop developer and running 1000+ clusters. I am reaching out to inquire about a specific aspect of the Hadoop-HDFS project. Specifically, I am interested in understanding why two types of BlockingService class are used in the project source code, namely org.apache.hadoop.thirdparty.protobuf.BlockingService and com.google.protobuf.BlockingService.
[In the code, *NameNodeRpcServer.java*] ---------------------------------------------------------------------- package org.apache.hadoop.hdfs.server.namenode; ... import *org.apache.hadoop.thirdparty.protobuf.BlockingService*; @InterfaceAudience.Private @VisibleForTesting public class NameNodeRpcServer implements NamenodeProtocols { ... public NameNodeRpcServer(Configuration conf, NameNode nn) throws IOException { ... BlockingService clientNNPbService = *ClientNamenodeProtocol.newReflectiveBlockingService(clientProtocolServerTranslator); ==> Return type is* *com.google.protobuf.BlockingService* ... } } ---------------------------------------------------------------------- In NameNodeRpcServer.java, there is a code snippet that assigns a value to the BlockingService clientNNPbService. However, this code is causing a class casting problem. I am wondering if you could provide some guidance on how to resolve this issue. Furthermore, I would also appreciate your advice on setting up the Hadoop-HDFS project in Eclipse. Could you kindly share any best practices or tips on how to do this effectively? Thank you very much for your time and assistance. I look forward to hearing back from you soon. Best regards, Hang Joe