Я хочу удалить узлы из своего кластера изящно. Я добавил в свой hadoop-site.xml следующее:
<property>
<name>dfs.hosts.exclude</name>
<value>/etc/hadoop/conf.dist/dfs.hosts.exclude</value>
<final>true</final>
</property>
Я добавляю узел, который нужно удалить, в файл и выполняю
hadoop dfsadmin -refreshNodes
как root, но я получаю
refreshNodes: org.apache.hadoop.fs.permission.AccessControlException: Superuser privilege is required
Мод на раздел HDFS - 777.
Запуск распределения hadoop-ec2 Cloudera, версия 0.18
Свойство dfs.hosts.exclude именует файл, содержащий список хостов, которым не разрешено подключаться к namenode. Необходимо указать полный путь к файлу.
cd <hadoop_installation>/bin
hadoop-daemon.sh start datanode
hadoop-daemon.sh start tasktracker
hadoop-daemon.sh stop datanode
hadoop-daemon.sh stop tasktracker
загляните в $ {HADOOP_CONF_DIR} /hadoop-policy.xml и посмотрите, есть ли у root права на это, root может быть суперпользователем над системой, но не над приложением.
Попробуй эту ссылку http://hadoop.apache.org/common/docs/current/service_level_auth.html
Стюарт