我是 Hadoop 的新手,不清楚 HDFS 如何与 ZFS 或 BTRFS 协同工作。
是否可以使用 ZFS 安装物理驱动器,然后在 ZFS 上安装 HDFS?
或者直接安装HDFS就可以吗?
答案1
是的。几乎任何支持“/”目录命名和组织约定且目录深度至少为 2 级的 Linux 文件系统都可以安装 HDFS。
答案2
是的;我的集群在为 HDFS 配置的分区上使用 btrfs。我要提醒您的一件事是使用 brtfs 的透明压缩功能,该功能通过挂载选项启用。Hadoop HDFS 守护进程知道卷的大小和节点上 HDFS 的 freeused 以及其上的可用空间,如果您启用压缩,这些大小值将变得“不真实”,即,当卷以压缩方式挂载时,断言“500MiB”的“50% 已满”既不意味着它只能容纳 500MiB,也不意味着它已半满(在 btrfs 卷上启用压缩后,您可以写入一个全零的文件,该文件比卷的实际大小大得多)。由于这种不可靠性以及压缩和解压缩会产生额外的 CPU 开销,我会避免这种诱惑,即使对于通常进入 HDFS 的大量数据,有效压缩率可能非常有利。
避免压缩 HDFS 卷的另一个原因是,当守护进程重新排列块时,会使用您的复制设置等,机器将在一个节点上读取时解压缩块,然后在另一个节点上将它们以压缩形式写回。
话虽如此,Hadoop 团队可能想要考虑实现的一个潜在功能是在 HDFS 级别处理压缩;在这种情况下,块只有在通过代码写入或读取时才会被压缩或解压缩,包括 hdfs 实用程序。不过,我不确定这是否值得 CPU 开销。