我从core-site.xml开始:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>viewfs:///</value>
</property>
<property>
<name>fs.viewfs.mounttable.default.link./user</name>
<value>hdfs://hdfsuser/user</value>
</property>
<property>
<name>fs.viewfs.mounttable.default.link./preprod</name>
<value>hdfs://hdfspreprod/preprod</value>
</property>
<property>
<name>fs.viewfs.mounttable.default.link./tmp</name>
<value>hdfs://hdfsuser/tmp</value>
</property>
这是在hdfs-site.xml
中<configuration>
<!-- the logical name for nameservice -->
<property>
<name>dfs.nameservices</name>
<value>hdfsuser,hdfspreprod</value>
</property>
我可以很好地列出三个挂载点
-bash-4.1$ hadoop fs -ls /
Found 3 items
-r-xr-xr-x - hdfs hdfs 0 2016-06-30 17:34 /preprod
-r-xr-xr-x - hdfs hdfs 0 2016-06-30 17:34 /tmp
-r-xr-xr-x - hdfs hdfs 0 2016-06-30 17:34 /user
现在我想添加第四个挂载点/ var,所以我将它添加到core-site.xml
<property>
<name>fs.viewfs.mountable.default.link./var</name>
<value>hdfs://hdfsuser/var</value>
</property>
我接着是hdfs:// hdfsuser的mkdir / var,这里是两个名称空间的目录列表。
-bash-4.1$ hadoop fs -ls hdfs://hdfsuser/
Found 4 items
drwxrwxr-t - hdfs hadoop 0 2016-05-25 14:51 hdfs://hdfsuser/prod_hdfs_namespace
drwxrwxrwt - hdfs hdfs 0 2016-07-05 14:31 hdfs://hdfsuser/tmp
drwxrwxr-x - hdfs hadoop 0 2016-05-25 15:06 hdfs://hdfsuser/user
drwxr-xr-x - hdfs hadoop 0 2016-07-05 14:40 hdfs://hdfsuser/var
-bash-4.1$ hadoop fs -ls hdfs://hdfspreprod/
Found 2 items
drwxrwxr-t - hdfs hadoop 0 2016-05-24 21:36 hdfs://hdfpreprod/preprod
drwxrwxr-t - hdfs hadoop 0 2016-05-25 14:51 hdfs://hdfspreprod/preprod_hdfs_namespace
然后我重新启动了所有的Namenodes,然后重新启动了Datanodes,但在我的集群中的任何节点上都看不到/ var目录。
Wed Jul 6 10:57:08 PDT 2016
-bash-4.1$ hadoop fs -ls /
Found 3 items
-r-xr-xr-x - hdfs hdfs 0 2016-07-06 10:57 /preprod
-r-xr-xr-x - hdfs hdfs 0 2016-07-06 10:57 /tmp
-r-xr-xr-x - hdfs hdfs 0 2016-07-06 10:57 /user
我用谷歌搜索,我找不到任何东西来显示你已经设置了联邦HDFS并希望向viewfs添加新目录后要做的步骤。
请建议解决此问题的方法或正确添加新viewfs挂载点的方法。
非常感谢。