我已在EC2
云上创建了一个AWS
Linux计算机,其根卷为8 GB
,然后在该计算机上部署了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 文件系统,并将其挂载到EC2实例的 / data 目录。
使用 df -h 命令,我可以看到空间全部已安装且正确可用。
`
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 namenode -format
如何在hadoop文件系统上添加此附加存储?
答案 0 :(得分:0)
您需要编辑hdfs-site.xml以在该新卷中安装目录以放置您的namenode或datanode数据。
dfs.datanode.data.dir
- 确定DFS数据节点应在何处存储其块的本地文件系统。如果这是逗号分隔的目录列表,则数据将存储在所有已命名的目录中,通常位于不同的设备上
dfs.namenode.name.dir
- 确定DFS名称节点应存储名称表(fsimage)的本地文件系统的位置。如果这是逗号分隔的目录列表,那么名称表将在所有目录中复制,以实现冗余
然后您需要重新启动相应的HDFS服务
尽量避免格式化namenode。执行
时会丢失所有HDFS数据答案 1 :(得分:0)
我所做的是以下内容:
在/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