【发布时间】:2023-03-17 14:44:01
【问题描述】:
我有一个由master 节点(仅运行名称节点)和两个从节点组成的集群,即slave1 和slave2(运行数据节点)。现在,我只想给slave1添加一个新的硬盘,并用它来增加datanode的容量。我在互联网上遵循了不同的教程和操作方法,并且我大致了解了如何去做。我的问题是,仅将分区/硬盘添加到slave1 会引发问题,因为hdfs-site.xml 中添加的新分区/硬盘驱动器的路径不会被slave2 找到。
这是我在slave1上做的(新磁盘在sdb上):
- 我运行
fdisk /dev/sdb来创建分区。该过程顺利结束,创建/dev/sdb1。 - 我将
sdb1格式化为mkfs.ext4 /dev/sdb1。 - 我将
sdb1安装在/disk1和mount /dev/sdb1 /disk1 - 我在
/disk1里面创建了datanode目录my/user/hdfs/datanode - 我递归更改
/disk1/my/user/的所有者以向我的用户授予权限 - 我用
hadoop-daemon.sh stop datanode停止数据节点 - 我将
/disk1/my/user/hdfs/datanode添加到hdfs-site.xml,在dfs.datanode.data.dir字段下,使用逗号与已经存在的其他路径分隔。我在每台机器上都这样做。
现在,如果我停止并从主服务器重新启动 HDFS,则会发生slave2 上的数据节点将无法启动,因为它找不到路径 /disk1/my/user/hdfs/datanode。我的猜测是:是否可以只向集群中的一个数据节点添加一个新的分区/硬盘驱动器?我该怎么办?强制在每台机器上创建相同的文件夹?
【问题讨论】:
-
slave 是否运行在两个独立的硬件上?