viewfs指南

2024-06-13 11:58
文章标签 指南 viewfs

本文主要是介绍viewfs指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

viewfs指南

  • 介绍
  • 旧世界(联邦前)
    • 单个 Namenode 集群
    • 路径名的使用模式
    • 路径名使用最佳实践
  • 新世界-Federation and ViewFs
    • 集群的新形态
    • 使用ViewFs提供全局命名空间

介绍

View File System (ViewFs) 提供了一种管理多个 Hadoop 文件系统namespace(或命名空间卷)的方法。 它对于在 HDFS Federation中具有多个名称节点并因此具有多个命名空间的集群特别有用。 ViewFs 类似于某些 Unix/Linux 系统中的客户端挂载表。 ViewFs 可用于创建个性化的命名空间视图以及每个集群的公共视图。

本指南是在具有多个集群的 Hadoop 系统的使用场景中介绍的,每个集群可以由多个命名空间组成。 它还描述了如何在 HDFS Federation中使用 ViewFs 来提供每个集群的全局命名空间,以便应用程序可以以类似于操作单节点集群的方式操作联邦HDFS。

旧世界(联邦前)

单个 Namenode 集群

在 HDFS 联邦之前的旧世界中,集群有一个namenode,为该集群提供单个文件系统命名空间。假设有多个集群。每个集群的文件系统命名空间是完全独立且不相交的。此外,物理存储不跨集群共享(即数据节点不跨集群共享。)

每个集群的 core-site.xml 都有一个配置属性,用于将默认文件系统设置为该集群的 namenode:

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

这样的配置属性允许使用斜杠相对名称来解析相对于集群名称节点的路径。例如,路径 /foo/bar 是指使用上述配置的 hdfs://namenodeOfClusterX:port/foo/bar。

此配置属性设置在集群上的每个网关上以及该集群的关键服务上,例如 JobTracker 和 Oozie。

路径名的使用模式

因此,在上面设置core-site.xml的Cluster X上,典型的路径名是
example 1:

/foo/bar

这相当于hdfs://namenodeOfClusterX:port/foo/bar。

example2:

hdfs: //namenodeOfClusterX:端口/foo/bar

虽然这是一个有效的路径名,但最好使用/foo/bar,因为它允许应用程序及其数据在需要时透明地移动到另一个集群。

example3:

hdfs://namenodeOfClusterY:端口/foo/bar

它是一个URI,用于引用另一个集群(比如集群Y)上的路径名。特别是,将文件从集群Y复制到集群Z的命令如下所示:

distcp hdfs: //namenodeClusterY:port/pathSrc hdfs://namenodeClusterZ:port/pathDest
webhdfs: //namenodeClusterX:http_port/foo/bar

它是一个通过WebHDFS文件系统访问文件的URI。注意WebHDFS使用namenode的HTTP端口,而不是RPC端口。

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

这些分别是通过WebHDFS REST API和HDFS代理访问文件的HTTP url。

路径名使用最佳实践

当一个URI位于集群中时,建议使用上面类型(1)的路径名,而不是像(2)那样的完全限定URI。完全限定URI类似于地址,不允许应用程序随其数据移动。

新世界-Federation and ViewFs

集群的新形态

假设有多个集群。每个集群都有一个或多个namenode。每个namenode都有自己的名称空间。一个namenode只能属于一个集群。同一个集群中的namenode共享该集群的物理存储。跨集群的名称空间和以前一样是独立的。

根据所要操作的目录决定具体存放在哪个namenode下。例如,他们可能会把所有的用户数据(/user/)放在一个namenode中,所有的feed数据(/data)放在另一个namenode中,所有的项目(/projects)放在另一个namenode中,等等。

使用ViewFs提供全局命名空间

为了提供与旧世界相同的透明性,使用ViewFs文件系统(即客户端挂载表)为每个集群创建一个独立的集群名称空间视图,这与旧世界中的名称空间类似。客户端挂载表(如Unix挂载表),它们使用旧的命名约定挂载新的名称空间卷。下图显示了一个挂载四个命名空间卷/user、/data、/projects和/tmp的挂载表:
在这里插入图片描述
ViewFs implements the Hadoop file system interface just like HDFS and the local file system. It is a trivial file system in the sense that it only allows linking to other file systems. Because ViewFs implements the Hadoop file system interface, it works transparently Hadoop tools. For example, all the shell commands work with ViewFs as with HDFS and local file system.

In the configuration of each cluster, the default file system is set to the mount table for that cluster as shown below (compare it with the configuration in Single Namenode Clusters).

fs.defaultFS viewfs://clusterX The authority following the viewfs:// scheme in the URI is the mount table name. It is recommended that the mount table of a cluster should be named by the cluster name. Then Hadoop system will look for a mount table with the name “clusterX” in the Hadoop configuration files. Operations arrange all gateways and service machines to contain the mount tables for ALL clusters such that, for each cluster, the default file system is set to the ViewFs mount table for that cluster as described above.

The mount points of a mount table are specified in the standard Hadoop configuration files. All the mount table config entries for viewfs are prefixed by fs.viewfs.mounttable… The mount points that are linking other filesystems are specified using link tags. The recommendation is to have mount points name same as in the linked filesystem target locations. For all namespaces that are not configured in the mount table, we can have them fallback to a default filesystem via linkFallback.

In the below mount table configuration, namespace /data is linked to the filesystem hdfs://nn1-clusterx.example.com:8020/data, /project is linked to the filesystem hdfs://nn2-clusterx.example.com:8020/project. All namespaces that are not configured in the mount table, like /logs are linked to the filesystem hdfs://nn5-clusterx.example.com:8020/home.

ViewFs实现Hadoop文件系统接口,就像HDFS和本地文件系统一样。它是一个虚拟的文件系统,因为它只允许链接到其他文件系统。因为ViewFs实现了Hadoop文件系统接口,所以它透明地工作于Hadoop工具。所有HDFS shell命令都可用于ViewFs。

在每个集群的配置中,默认文件系统被设置为该集群的挂载表,如下所示(与Single Namenode Clusters中的配置进行比较)。

<property><name>fs.defaultFS</name><value>viewfs://clusterX</value>
</property>

URI中viewfs:// scheme后面的权威是挂载表名。建议集群的挂载表以集群名称命名。然后Hadoop系统将在Hadoop配置文件中查找名为“clusterX”的挂载表。操作安排所有网关和服务机器包含所有集群的挂载表,这样,对于每个集群,默认文件系统被设置为上述集群的ViewFs挂载表。

挂载表的挂载点在标准Hadoop配置文件中指定。所有viewfs的挂载表配置项都以fs.viewfs.mounttable为前缀。链接其他文件系统的挂载点是使用链接标记指定的。建议使用与链接文件系统目标位置相同的挂载点名称。对于挂载表中没有配置的所有名称空间,我们可以通过linkFallback让它们回退到默认文件系统。

在下面的挂载表配置中,命名空间/data链接到文件系统hdfs://nn1-clusterx.example.com:8020/data, /project链接到文件系统hdfs://nn2-clusterx.example.com:8020/project。挂载表中没有配置的所有命名空间,比如/logs,都被链接到文件系统hdfs://nn5-clusterx.example.com:8020/home。

这篇关于viewfs指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1057236

相关文章

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

SQL Server数据库迁移到MySQL的完整指南

《SQLServer数据库迁移到MySQL的完整指南》在企业应用开发中,数据库迁移是一个常见的需求,随着业务的发展,企业可能会从SQLServer转向MySQL,原因可能是成本、性能、跨平台兼容性等... 目录一、迁移前的准备工作1.1 确定迁移范围1.2 评估兼容性1.3 备份数据二、迁移工具的选择2.1

在 Windows 上安装 DeepSeek 的完整指南(最新推荐)

《在Windows上安装DeepSeek的完整指南(最新推荐)》在Windows上安装DeepSeek的完整指南,包括下载和安装Ollama、下载DeepSeekRXNUMX模型、运行Deep... 目录在www.chinasem.cn Windows 上安装 DeepSeek 的完整指南步骤 1:下载并安装

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo

Python使用qrcode库实现生成二维码的操作指南

《Python使用qrcode库实现生成二维码的操作指南》二维码是一种广泛使用的二维条码,因其高效的数据存储能力和易于扫描的特点,广泛应用于支付、身份验证、营销推广等领域,Pythonqrcode库是... 目录一、安装 python qrcode 库二、基本使用方法1. 生成简单二维码2. 生成带 Log

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

macOS怎么轻松更换App图标? Mac电脑图标更换指南

《macOS怎么轻松更换App图标?Mac电脑图标更换指南》想要给你的Mac电脑按照自己的喜好来更换App图标?其实非常简单,只需要两步就能搞定,下面我来详细讲解一下... 虽然 MACOS 的个性化定制选项已经「缩水」,不如早期版本那么丰富,www.chinasem.cn但我们仍然可以按照自己的喜好来更换