hadoop新手,只设置了3个debian服务器集群进行练习。
我正在研究 hadoop 的最佳实践并遇到:JBOD no RAID Filesystem: ext3, ext4, xfs - 你在 zfs 和 btrfs 中看到的那些花哨的 COW 东西都没有
所以我提出这些问题...
我在任何地方读到 JBOD 都比 hadoop 中的 RAID 好,最好的文件系统是 xfs 和 ext3 和 ext4。除了文件系统的东西,这完全有道理,为什么那些是最好的......你如何实现这个 JBOD?如果你自己进行谷歌搜索,你会看到我的困惑,JBOD 暗示了一个线性附件或只是一堆磁盘的组合,有点像逻辑卷,至少有些人是这样解释的,但 hadoop 似乎想要一个不结合的 JBOD。没有身体在上面展开……
- 问题 1)hadoop 世界中的每个人都对 JBOD 意味着什么,你如何实现它?
- 问题2)是否就像将每个磁盘安装到不同的目录一样简单?
- 问题 3) 这是否意味着 hadoop 在 JBOD 上运行得最好,其中每个磁盘都简单地挂载到不同的目录?
问题 4)然后您只需将 hadoop 指向那些 data.dirs 吗?
Question5) 我看到 JBODS 有两种方式,每个磁盘单独挂载,或者磁盘的线性连接,可以通过 mdadm --linear 模式完成,或者 lvm 我打赌也可以,所以我看不到大处理那个......如果是这种情况,可以使用 mdadm --linear 或 lvm 因为JBOD人们指的是磁盘的连接,那么这是“JBOD”或线性连接磁盘的最佳方式Hadoop?
这是题外话,但是有人可以验证这是否正确吗?使用cow,写时复制的文件系统,如zfs和btrfs只会减慢hadoop,但不仅cow实现对hadoop来说是浪费。
问题 6) 为什么 COW 和 RAID 之类的东西在 hadoop 上是一种浪费?我认为好像您的系统崩溃了,并且您使用 if 来恢复它,当您恢复系统时,hdfs 已经发生了很多变化,它可能只会认为那台机器有故障,最好从头开始重新加入它(将它作为一个新的数据节点启动)......或者hadoop系统将如何看到旧的数据节点?我的猜测是它不会认为它是旧的或新的,甚至是数据节点,它只会将其视为垃圾...... Idk......
问题 7)如果 hadoop 发现一个数据节点从集群中掉下来,然后数据节点又恢复在线,数据稍微旧一点,会发生什么?数据必须有多旧?这个题目怎么样?
重新提出问题 1 至 4
我刚刚意识到我的问题很简单,但我很难解释它,我不得不把它分成 4 个问题,但我仍然没有从听起来很聪明的人那里得到我正在寻找的答案,所以我必须以不同的方式重新问..
在纸上我可以很容易地或用图画...我会再次尝试用文字..
如果对我在 JBOD 问题中所问的内容感到困惑......
** 只是想知道大家在 hadoop 世界中一直提到的 JBOD 是什么 **
JBOD 与 hadoop 的定义不同,然后在正常世界中,我想知道如何实现 hadoop 的最佳方法是在 jbods 的 concat(sda+sdb+sdc+sdd) 上,或者只保留磁盘(sda,sdb,sdc ,sdd)
我认为下面的图形表示解释了我最好的要求
(JBOD 方法 1)
正常世界:jbod 是磁盘的串联 - 那么如果您要使用 hadoop,您会将 data.dir(其中 hdfs 虚拟站点)覆盖到此磁盘串联内的目录上,所有磁盘也将显示为 1.. . 所以如果你有 sda 和 sdb 和 sdc 作为你节点中的数据磁盘,你会让 em 显示为某个实体 1(使用主板的硬件或 mdadm 或 lvm),它是 sda 和 sdb 和 sdc 的线性连接. 然后,您可以将此 entity1 挂载到 Unix 命名空间中的文件夹,例如 /mnt/jbod/,然后设置 hadoop 以在其中运行。
文本摘要:如果磁盘 1 和磁盘 2 和磁盘 3 分别为 100gb 和 200gb 和 300gb,那么这个 jbod 将是 600gb 大,并且来自这个节点的 hadoop 将获得 600gb 的容量
* TEXTO-GRAPHICAL OF LINEAR CONCAT OF DISKS BEING A JBOD:
* disk1 2 and 3 used for datanode for hadoop
* disk1 is sda 100gb
* disk2 is sdb 200gb
* disk3 is sdc 300gb
* sda + sdb + sdc = jbod of name entity1
* JBOD MADE ANYWAY - WHO CARES - THATS NOT MY QUESTION: maybe we made the jbod of entity1 with lvm, or mdadm using linear concat, or hardware jbod drivers which combine disks and show them to the operating system as entity1, it doesn't matter, either way its still a jbod
* This is the type of JBOD I am used to and I keep coming across when I google search JBOD
* cat /proc/partitions would show sda,sdb,sdc and entity1 OR if we used hardware jbod maybe sda and sdb and sdc would not show and only entity1 would show, again who cares how it shows
* mount entity1 to /mnt/entity1
* running "df" would show that entity1 is 100+200+300=600gb big
* we then setup hadoop to run its datanodes on /mnt/entity1 so that datadir property points at /mnt/entity1 and the cluster just gained 600gb of capacity
..另一个观点是这个..
(JBOD 方法 2)
在 hadoop 中,在我看来,他们希望每个磁盘都是分开的。因此,我会将 unix 命名空间中的磁盘 sda 和 sdb 和 sdc 挂载到 /mnt/a 和 /mnt/b 和 /mnt/c ......从网上阅读看来,许多 hadoop 专家将 jbods 归类为只是一个一堆磁盘,所以对于 unix,它们看起来像磁盘而不是磁盘的连接......然后当然我可以结合逻辑卷管理器(lvm)或 mdadm(以突袭或线性方式)成为一个实体, jbod 首选线性)......但是......不,我们不要将它们组合起来,因为在 hadoop 世界中,jbod 似乎只是它们自己坐在一堆磁盘......
如果磁盘 1 和磁盘 2 和磁盘 3 分别为 100gb 和 200gb 和 300gb,则每个挂载 disk1->/mnt/a 和 disk2->/mnt/b 和 disk3->/mnt/c 将分别为 100gb 和 200gb 并且分别为 300gb 大,来自该节点的 hadoop 将获得 600gb 容量
TEXTO-GRAPHICAL OF LINEAR CONCAT OF DISKS BEING A JBOD
* disk1 2 and 3 used for datanode for hadoop
* disk1 is sda 100gb
* disk2 is sdb 200gb
* disk3 is sdc 300gb
* WE DO NOT COMBINE THEM TO APPEAR AS ONE
* sda mounted to /mnt/a
* sdb mounted to /mnt/b
* sdc mounted to /mnt/c
* running a "df" would show that sda and sdb and sdc have the following sizes: 100,200,300 gb respectively
* we then setup hadoop via its config files to lay its hdfs on this node on the following "datadirs": /mnt/a and /mnt/b and /mnt/c.. gaining 100gb to the cluster from a, 200gb from b and 300gb from c... for a total gain of 600gb from this node... nobody using the cluster would tell the difference..
问题摘要
** 大家指的哪种方法是hadoop这种组合jbod或磁盘分离的最佳实践- 根据在线文档,这仍然是一个jbod?**
- 这两种情况都会获得hadoop 600gb ...它只是1。看起来像一个concat或一个实体,它是所有磁盘的组合,我一直认为这是一个jbod ...或者它就像每个磁盘的2在系统被挂载到不同的目录时,最终结果与hadoop容量方面的结果都是一样的......只是想知道这是否是提高性能的最佳方式