namenode地址的uri无效,s3a不属于架构“hdfs”

b1zrtrql  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(555)

我正在hadoop环境(yarn)中用ceph替换hdfs,根据我的研究,hortonworks和replace-hdfs-form-local-disk到s3-get-error的指南显示我需要修改 core-site.xml 低于 $hadoop_home/etc/hadoop .
我的修改如下:

<property>
        <name>fs.s3a.access.key</name>
        <value>xxxxxxxxxxxxxx</value>
</property>
<property>
        <name>fs.s3a.secret.key</name>
        <value>xxxxxxxxxxxxx</value>
</property>
<property>
        <name>fs.default.name</name>
        <value>s3a://bucket_name</value>
</property>

<property>
        <name>fs.defaultFS</name>
        <value>s3a://bucket_name</value>
</property>
<property>
        <name>fs.s3a.endpoint</name>
        <value>http://x.x.x.x:xxxx</value>
</property>
<property>
        <name>fs.AbstractFileSystem.s3a.imp</name>
        <value>org.apache.hadoop.fs.s3a.S3A</value>
</property>

然而,当我试图用 sbin/start-all.sh ,我得到如下错误,

java.lang.IllegalArgumentException: Invalid URI for NameNode address (check fs.defaultFS): s3a://bucket_name is not of scheme 'hdfs'.

供您参考,我的hadoop版本是3.2.0。
提前谢谢你的帮助。

k4emjkb1

k4emjkb11#

在挖掘 hadoop 源代码,我认为应该抛出这个异常。
当您尝试调用时,不能跳过下面的代码 sbin/start-all.sh .

/**
   * @return address of file system
   */
  public static InetSocketAddress getNNAddress(URI filesystemURI) {
    String authority = filesystemURI.getAuthority();
    if (authority == null) {
      throw new IllegalArgumentException(String.format(
          "Invalid URI for NameNode address (check %s): %s has no authority.",
          FileSystem.FS_DEFAULT_NAME_KEY, filesystemURI.toString()));
    }
    if (!HdfsConstants.HDFS_URI_SCHEME.equalsIgnoreCase(
        filesystemURI.getScheme())) {
      throw new IllegalArgumentException(String.format(
          "Invalid URI for NameNode address (check %s): " +
          "%s is not of scheme '%s'.", FileSystem.FS_DEFAULT_NAME_KEY,
          filesystemURI.toString(), HdfsConstants.HDFS_URI_SCHEME));
    }
    return getNNAddress(authority);
  }

我不需要开始 namenode 以及 secondarynamenode 因为我使用ceph作为后端存储系统。ceph本身可以管理所谓的 datanode 由其 driver .
把这条线索放在这里,给那些可能有同样问题的人,欢迎对我的理解发表任何评论。

相关问题