您的位置:首页 > 运维架构

hadoop2.7.2学习笔记19-ViewFs

2017-05-22 10:01 423 查看

1、在Federation之前

一个集群拥有一个namenode,它为集群提供一个单一的文件系统NameSpace。假设有很多集群,那么它们的NameSpace是彼此独立的。更重要的是,物理存储也没有在集群之间进行共享。

单namenode集群

每个集群的core-site.xml有一个配置参数设置默认文件系统的namenode:

<property>
<name>fs.default.name</name>
<value>hdfs://namenodeOfClusterX:port</value>
</property>

路径名使用格式

如果集群配置了上述的集群名,典型的路径名会是

1、/foo/bar

等价于hdfs://namenodeOfClusterX:port/foo/bar。

2、hdfs://namenodeOfClusterX:port/foo/bar

最好使用/foo/bar。

3、hdfs://namenodeOfClusterY:port/foo/bar

这个URI指向另一个集群的路径。特别地,下面的命令将Cluster Y的文件复制到Cluster Z。

distcp hdfs://namenodeClusterY:port/pathSrc hdfs://namenodeClusterZ:port/pathDest

4、webhdfs://namenodeClusterX:http_port/foo/bar和hftp://namenodeClusterX:http_port/foo/bar

使用webHDFS文件系统和HFTP文件系统来访问文件。WebHDFS和HFTP使用namenode的HTTP端口,但不适用RPC端口。

5、http://namenodeClusterX:http_port/webhdfs/vi/foo/bar和http://proxyClusterX:http_port/foo/bar

使用WebHDFS REST API和HDFS代理访问文件。

2、Federation和ViewFs

存在多个集群,每个集群又有一个或多个namenodes。每个namenodes有自己的NameSpace。一个namenode只属于一个集群。同一个集群中的namenode共享该集群的物理存储。同时不同集群的NameSpaces依旧保持其独立性。

使用ViewFs得到集群的全局NameSpace

ViewFs用于为每个集群创建一个独立的集群NameSpace视图,它等价于Federation出现以前的NameSpace。

下图展示了Unix挂载NameSpace容器的情况:



和HDFS、本地文件系统一样,ViewFS实现了hadoop文件系统接口。

ViewFS的挂载点在配置文件中指定。每个集群的配置如下

<property>
<name>fs.default.name</name>
<value>viewfs://clusterX</value>
</property>其中clusterX是挂载点的名字。

路径名使用格式

1、/foo/bar

等价于viewfs://clusterX/foo/bar。

2、viewfs://clusterX/foo/bar

最好使用/foo/bar。

3、viewfs://clusterY/foo/bar

指向clusterY的路径,可以使用下面的命令将集群Y的文件复制到集群Z。

distcp viewfs://clusterY:/pathSrc viewfs://clusterZ/pathDest

4、viewfs://clusterX-webhdfs/foo/bar和viewfs://clusterX-hftp/foo/bar

通过webHDFS和HFTP文件系统来访问文件。

5、http://namenodeClusterX:http_port/webhdfs/v1/foo/bar和http://proxyClusterX:http_port/foo/bar

通过webHDFS REST API和HDFS代理访问文件。

跨NameSpace重命名路径名

这样的操作是无效的操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop