【发布时间】:2017-05-05 12:26:31
【问题描述】:
我正在使用 Hadoop 处理大量数据。我设置了一个hadoop节点来使用多个卷:其中一个是具有10To磁盘的NAS,另一个是来自服务器的本地磁盘,存储容量为400 GB。
问题是,如果我理解的话,数据节点将尝试在每个卷中放置等量的数据。因此,当我在大量数据上运行作业时,400 GB 的磁盘很快就满了,而 10 To 磁盘有足够的空间。然后我的 Hive 生成的 map-reduce 程序冻结了,因为我的集群打开了安全模式...
我试图设置限制数据节点磁盘使用的属性,但它什么也没做:我仍然有同样的问题。
希望有人可以帮助我。
看来我的 mapreduce 程序打开了安全模式,因为:
The ratio of reported blocks 0.0000 has not reached the threshold 0.9990.
我在 namenode Web 界面上看到了该错误。我想用属性dfs.safemode.threshold.pct禁用这个选项,但不知道是不是解决的好办法?
【问题讨论】:
-
我不确定我是否正确理解了您的问题,但我的印象是您不了解 HDFS。在我看来,您的服务器不应该共享任何内容。本地磁盘存储由数据节点使用,但不应使用 NAS。另一个非常重要的问题是:你有多少个数据节点?
-
我有四个数据节点。我正在使用 NAS,因为我的程序的输出对于本地磁盘来说太大了。我希望 Hadoop 可以处理不同大小的 dfs.data.dir 设备。
-
我使用的是 Hadoop-0.20.203.0 和 Hive-0.7.1。