我正在使用Amazon EMR,我可以运行大多数工作。当我开始加载并在EMR集群中生成更多数据时,我遇到了问题。群集用完了存储空间。
每个数据节点都是c1.medium实例。根据链接here和here,每个数据节点应该带有350GB的实例存储空间。通过ElasticMapReduce Slave安全组,我已经能够在我的AWS控制台中验证c1.medium数据节点正在运行并且是实例存储。
当我在namenode上运行hadoop dfsadmin -report时,每个数据节点都有大约10GB的存储空间。运行df -h
进一步验证了这一点hadoop@domU-xx-xx-xx-xx-xx:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 9.9G 2.6G 6.8G 28% /
tmpfs 859M 0 859M 0% /lib/init/rw
udev 10M 52K 10M 1% /dev
tmpfs 859M 4.0K 859M 1% /dev/shm
如何配置我的数据节点以使用完整的350GB存储启动?有没有办法使用引导操作来执行此操作?
答案 0 :(得分:7)
经过对AWS论坛的更多研究和发布后,我得到了一个解决方案,虽然没有完全理解引擎盖下发生的事情。如果可以的话,我想把它作为答案发布。
原来AMI版本2.0中存在一个错误,当然这是我试图使用的版本。 (我已经切换到2.0,因为我希望hadoop 0.20是默认值)AMI版本2.0中的错误会阻止在32位实例上安装实例存储,这就是c1.mediums发布的。
通过在CLI工具上指定AMI版本应使用“latest”,问题得到解决,并且每个c1.medium都使用适当的350GB存储空间启动。
例如
./elastic-mapreduce --create --name "Job" --ami-version "latest" --other-options
有关使用AMI和“最新”的更多信息,请访问here。目前“最新”设置为AMI 2.0.4。 AMI 2.0.5是最新版本,但看起来它仍然是一个小马车。