0

我正在尝试从 IBM Analytics Engine 将文件上传到云对象存储:

$ hadoop fs -copyFromLocal LICENSE-2.0.txt \
   cos://xxxxx/LICENSE-2.0.txt

但是,我收到有关创建磁盘失败的警告:

18/01/26 17:47:47 WARN fs.LocalDirAllocator$AllocatorPerContext: 未能创建 /disk1/s3a 18/01/26 17:47:47 WARN fs.LocalDirAllocator$AllocatorPerContext: 未能创建 /disk2/s3a

请注意,即使我收到此警告,文件仍会上传:

$ hadoop fs -ls cos://xxxxx/LICENSE-2.0.txt

-rw-rw-rw- 1 clsadmin clsadmin 11358 2018-01-26 17:49 cos://xxxxx/LICENSE-2.0.txt

问题似乎是:

$ grep -B2 -C1 'disk' /etc/hadoop/conf/core-site.xml
    <property>
      <name>fs.s3a.buffer.dir</name>
      <value>/disk1/s3a,/disk2/s3a,/tmp/s3a</value>
    </property>

$ ls -lh /disk1 /disk2
ls: cannot access /disk1: No such file or directory
ls: cannot access /disk2: No such file or directory

这些警告的含义是什么?/tmp/s3a 文件夹确实存在,那么我们可以忽略有关这些其他文件夹的警告吗?

4

1 回答 1

2

hadoop 属性 'fs.s3a.buffer.dir' 支持列表(逗号分隔值)并指向本地路径。当路径丢失时,会出现警告,但可以安全地忽略它们,因为它们是无害的。如果从数据节点内运行了相同的命令,则不会显示警告。无论警告如何,文件都将是复制到 Cloud Object Store,因此没有任何其他影响。

将 fs.s3a.buffer.dir 设置为'/disk1/s3a,/disk2/s3a,/tmp/s3a' 的想法是,当 hadoop 作业在具有 Cloud Object Store 的集群上运行时,map-reduce 任务是调度在具有额外磁盘的数据节点上,即 /disk1 和 /disk2,与管理节点相比,它们具有更多磁盘容量。

于 2018-01-29T08:23:08.817 回答