`/etc/sudoers` only configures `sudo`; to exercise the permissions afforded by your configuration, the `moon` user needs to use `sudo`:
sudo -s hdfs
The only user that can `su` to another user without entering a password is `root`, more precisely the user with id 0. The only way to create a `moon` user which operates in the same way as `root` is to give that user id 0 too (several users can have the same id).
To create a user with id 0, create it as usual, _e.g._ using
useradd -N -g 0 moon
then change it to id 0 using
usermod -o -u 0 moon