This looks good and it's good to get this done now since it's an API change. I just have a bunch of minor cleanups:
EncryptionZoneIterator.java: Class comments should read "is a remote iterator that iterates over encryption zones."
ClientNamenodeProtocolTranslatorPB.java: Extra newline added with EncryptionZonesProtos import. Ditto right before BatchedListEntries.
EZM.java: might as well remove the unused import for EncryptionZone while we're in the neighborhood. And the extra newline before the BatchedListEntries.
HdfsAdmin.java: Should the javadoc give the usual disclaimer about how you may not see all of the EZs if it's a large number of them and the admin adds one or more of them during the iteration?
EncryptionZoneWithId.java: why no EqualsBuilder? Because there's only one field?
FSD: There are unused imports for BatchedRemoteIterator and EncryptionZone.
hdfs-default.xml: <whine>I would prefer batch.size to num.responses since the latter makes it sounds like the total number that you'll get back (ever) vs in a batch, but that horse is already out of the barn in other places so num.responses is better.</whine>
NameNodeRpcServer.java: import BatchedListEntries is unused.
PBHelper.java: there's an extra newline added after the EZWIP import. Ditto where you removed the two EZProtos.*Proto imports.
TestEncryptionZones.java: "// Create and list some zones to test listing batching" reads slightly funny. Maybe "// Create and list some zones to test listEZ batching"