我想优雅地从集群中删除节点。我将以下内容添加到我的 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
作为根,但我得到
refreshNodes: org.apache.hadoop.fs.permission.AccessControlException: Superuser privilege is required
HDFS分区上的mod是777。
运行 Cloudera 的 hadoop-ec2 发行版,版本 0.18
查看 ${HADOOP_CONF_DIR}/hadoop-policy.xml 并查看 root 是否有权执行此操作,root 可能是系统上的超级用户,但可能不是应用程序上的。
试试这个链接http://hadoop.apache.org/common/docs/current/service_level_auth.html
斯图尔特
属性 dfs.hosts.exclude 命名一个文件,该文件包含不允许连接到名称节点的主机列表。必须指定文件的完整路径名。
cd <hadoop_installation>/bin
hadoop-daemon.sh start datanode
hadoop-daemon.sh start tasktracker
hadoop-daemon.sh stop datanode
hadoop-daemon.sh stop tasktracker