[ 
https://issues.apache.org/jira/browse/HDFS-11026?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15632055#comment-15632055
 ] 

Ewan Higgs commented on HDFS-11026:
-----------------------------------

{quote}
Are you saying you can't make your patch work in a compatible way? Or you can't 
get stock 2.8/3.0 to work together?
{quote}

The latter. When I try to start NN and DN across 2.8/3.0 boundaries I get the 
following error (NN 2.8, DN 3.0):
{code}
2016-11-01 11:35:25,727 WARN datanode.DataNode: The reported NameNode version 
is too low to communicate with this DataNode. NameNode version: 
'2.8.0-SNAPSHOT' Minimum NameNode version: '3.0.0-alpha1-SNAPSHOT'
2016-11-01 11:35:25,728 ERROR datanode.DataNode: Initialization failed for 
Block pool <registering> (Datanode Uuid unassigned) service to 
localhost/127.0.0.1:60020. Exiting. 
org.apache.hadoop.hdfs.server.common.IncorrectVersionException: The reported 
NameNode version is too low to communicate with this DataNode. NameNode 
version: '2.8.0-SNAPSHOT' Minimum NameNode version: '3.0.0-alpha1-SNAPSHOT'
        at 
org.apache.hadoop.hdfs.server.datanode.BPServiceActor.checkNNVersion(BPServiceActor.java:252)
        at 
org.apache.hadoop.hdfs.server.datanode.BPServiceActor.retrieveNamespaceInfo(BPServiceActor.java:239)
        at 
org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:271)
        at 
org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:782)
        at java.lang.Thread.run(Thread.java:745)
{code}

or NN 3.0, DN 2.8:

{code}
2016-11-01 11:30:26,767 INFO datanode.DataNode: Block pool 
BP-875416690-10.108.37.99-1476803009605 (Datanode Uuid 
39b7e605-d1ec-470e-a4e5-39b0c0d4bd9f) service to localhost/127.0.0.1:60020 
beginning handshake with NN
2016-11-01 11:30:26,818 ERROR datanode.DataNode: Initialization failed for 
Block pool BP-875416690-10.108.37.99-1476803009605 (Datanode Uuid 
39b7e605-d1ec-470e-a4e5-39b0c0d4bd9f) service to localhost/127.0.0.1:60020 The 
reported DataNode version is too low to communicate with this NameNode. 
DataNode version: '2.8.0-SNAPSHOT' Minimum DataNode version: 
'3.0.0-alpha1-SNAPSHOT'
        at 
org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.verifySoftwareVersion(NameNodeRpcServer.java:1663)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.registerDatanode(NameNodeRpcServer.java:1402)
        at 
org.apache.hadoop.hdfs.protocolPB.DatanodeProtocolServerSideTranslatorPB.registerDatanode(DatanodeProtocolServerSideTranslatorPB.java:100)
        at 
org.apache.hadoop.hdfs.protocol.proto.DatanodeProtocolProtos$DatanodeProtocolService$2.callBlockingMethod(DatanodeProtocolProtos.java:30055)
        at 
org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:467)
        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:990)
        at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:845)
        at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:788)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1795)
        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2535)
{code}

> Convert BlockTokenIdentifier to use Protobuf
> --------------------------------------------
>
>                 Key: HDFS-11026
>                 URL: https://issues.apache.org/jira/browse/HDFS-11026
>             Project: Hadoop HDFS
>          Issue Type: Task
>          Components: hdfs, hdfs-client
>    Affects Versions: 2.9.0, 3.0.0-alpha1
>            Reporter: Ewan Higgs
>             Fix For: 3.0.0-alpha2
>
>         Attachments: HDFS-11026.002.patch, blocktokenidentifier-protobuf.patch
>
>
> {{BlockTokenIdentifier}} currently uses a {{DataInput}}/{{DataOutput}} 
> (basically a {{byte[]}}) and manual serialization to get data into and out of 
> the encrypted buffer (in {{BlockKeyProto}}). Other TokenIdentifiers (e.g. 
> {{ContainerTokenIdentifier}}, {{AMRMTokenIdentifier}}) use Protobuf. The 
> {{BlockTokenIdenfitier}} should use Protobuf as well so it can be expanded 
> more easily and will be consistent with the rest of the system.
> NB: Release of this will require a version update since 2.8.x won't be able 
> to decipher {{BlockKeyProto.keyBytes}} from 2.8.y.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to