我从 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>
然后我 mkdir /var 为 hdfs://hdfsuser ,这里是两个命名空间上的目录列表。
-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 挂载点的方法。
非常感谢。