hadoop fs -ls s3://bucket 或 s3a://bucket 抛出 "No such file or directory" 错误

hadoop fs -ls s3://bucket or s3a://bucket throws "No such file or directory" error

在新建的EMR集群中,使用:

...所有 return 错误:

"ls: `s3://bucket': 没有那个文件或目录"

为什么会这样?

默认情况下,hadoop fs -ls shows user home directory,转换为 /user/username

调用 hadoop fs -ls s3://bucket 时,S3 连接器将尝试查找 s3://bucket/user/hadoop(用您的用户名替换尾部 hadoop),这可能不存在并会导致错误。

错误不明确,但不同于ls创建一个不存在的桶。为此,错误将是 ls: Bucket bucket_name does not exist.

要避免这种情况:

  • 在存储桶名称后添加一个/
  • 添加完整路径

要对此进行调试:

  • export HADOOP_ROOT_LOGGER=DEBUG,console

关闭调试日志

  • export HADOOP_ROOT_LOGGER=WARN,console