在 hadoop 单节点集群上添加 EBS 卷
Adding EBS volume on hadoop single node cluster
我在 AWS
云上用 8 GB
根卷创建了一个 EC2
Linux 机器,然后部署了 hadoop 和 spark 并创建了 单节点 集群在那台机器上。
当我打开hadoop的主页时,我看到一切都很好。
Configured Capacity: 7.74 GB
DFS Used: 3.72 MB (0.05%)
Non DFS Used: 4.47 GB
DFS Remaining: 3.27 GB (42.23%)
Block Pool Used: 3.72 MB (0.05%)
到目前为止,一切都很好。现在我想在此 EC2 实例上添加更多存储。所以我使用了一个 40GB 的 EBS 块存储,并在其上创建了一个 ext4 文件系统并将其挂载到 /data EC2实例的目录。
使用 df -h 命令,我可以看到 space 已全部安装并正确可用。
`
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 12K 3.9G 1% /dev
tmpfs 799M 400K 799M 1% /run
/dev/xvda1 7.8G 4.1G 3.3G 56% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 3.9G 0 3.9G 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/xvdb 40G 48M 38G 1% /data
但是在 hadoop 页面 (http://*<myec2-ip>*:50050/)
上,我仍然看到相同的 7.74GB
容量并且没有看到增加的容量。
我什至尝试过重新格式化 hadoop 文件系统,但这也无济于事。
bin/hadoop 名称节点格式
如何在 hadoop 文件系统上添加这个额外的存储空间?
您需要编辑 hdfs-site.xml 以在该新卷中挂载目录以放置您的名称节点或数据节点数据。
dfs.datanode.data.dir
- 确定 DFS 数据节点应在本地文件系统中存储其块的位置。如果这是一个逗号分隔的目录列表,那么数据将存储在所有命名目录中,通常在不同的设备上
dfs.namenode.name.dir
- 确定 DFS 名称节点应在本地文件系统中存储名称 table(fsimage) 的位置。如果这是一个以逗号分隔的目录列表,那么名称 table 将被复制到所有目录中,以实现冗余
然后您需要重新启动相应的 HDFS 服务
尽量避免格式化名称节点。当你这样做时你会丢失所有 HDFS 数据
我所做的是:
在 /etc/hadoop/hdfs-site.xml 文件
中的配置下方添加
<property>
<name>dfs.datanode.data.dir</name>
<value>/data</value>
</property>
因为 /data
是我将新 EBS 卷挂载到的目录。
我使用以下命令停止了 hadoop 和 yarn 服务:
$HADOOP_HOME/sbin/stop-dfs.sh
$HADOOP_HOME/sbin/stop-yarn.sh
因为我使用 hadoop
用户到 运行 我的 hadoop 服务器,所以我做了 hadoop
用户作为 /data 的所有者使用以下命令
sudo chown hadoop /data
然后我又重启了hadoop服务
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
我在 AWS
云上用 8 GB
根卷创建了一个 EC2
Linux 机器,然后部署了 hadoop 和 spark 并创建了 单节点 集群在那台机器上。
当我打开hadoop的主页时,我看到一切都很好。
Configured Capacity: 7.74 GB
DFS Used: 3.72 MB (0.05%)
Non DFS Used: 4.47 GB
DFS Remaining: 3.27 GB (42.23%)
Block Pool Used: 3.72 MB (0.05%)
到目前为止,一切都很好。现在我想在此 EC2 实例上添加更多存储。所以我使用了一个 40GB 的 EBS 块存储,并在其上创建了一个 ext4 文件系统并将其挂载到 /data EC2实例的目录。 使用 df -h 命令,我可以看到 space 已全部安装并正确可用。 `
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 12K 3.9G 1% /dev
tmpfs 799M 400K 799M 1% /run
/dev/xvda1 7.8G 4.1G 3.3G 56% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 3.9G 0 3.9G 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/xvdb 40G 48M 38G 1% /data
但是在 hadoop 页面 (http://*<myec2-ip>*:50050/)
上,我仍然看到相同的 7.74GB
容量并且没有看到增加的容量。
我什至尝试过重新格式化 hadoop 文件系统,但这也无济于事。
bin/hadoop 名称节点格式
如何在 hadoop 文件系统上添加这个额外的存储空间?
您需要编辑 hdfs-site.xml 以在该新卷中挂载目录以放置您的名称节点或数据节点数据。
dfs.datanode.data.dir
- 确定 DFS 数据节点应在本地文件系统中存储其块的位置。如果这是一个逗号分隔的目录列表,那么数据将存储在所有命名目录中,通常在不同的设备上
dfs.namenode.name.dir
- 确定 DFS 名称节点应在本地文件系统中存储名称 table(fsimage) 的位置。如果这是一个以逗号分隔的目录列表,那么名称 table 将被复制到所有目录中,以实现冗余
然后您需要重新启动相应的 HDFS 服务
尽量避免格式化名称节点。当你这样做时你会丢失所有 HDFS 数据
我所做的是:
在 /etc/hadoop/hdfs-site.xml 文件
中的配置下方添加<property> <name>dfs.datanode.data.dir</name> <value>/data</value> </property>
因为 /data
是我将新 EBS 卷挂载到的目录。
我使用以下命令停止了 hadoop 和 yarn 服务:
$HADOOP_HOME/sbin/stop-dfs.sh $HADOOP_HOME/sbin/stop-yarn.sh
因为我使用
hadoop
用户到 运行 我的 hadoop 服务器,所以我做了hadoop
用户作为 /data 的所有者使用以下命令sudo chown hadoop /data
然后我又重启了hadoop服务
$HADOOP_HOME/sbin/start-dfs.sh $HADOOP_HOME/sbin/start-yarn.sh