amazon ec2-使用s3作为fs.default.name或HDFS



我正在EC2上建立一个Hadoop集群,我想知道如何进行DFS。我的所有数据目前都在s3中,所有map/reduce应用程序都使用s3文件路径来访问数据。现在我一直在研究Amazons EMR是如何设置的,似乎每个作业流都设置了一个名称节点和数据节点。现在我想知道我是否真的需要这样做,或者我是否可以只使用s3(n)作为DFS?如果这样做,有什么缺点吗?

谢谢!

为了使用S3而不是HDFS fs.name.default在core-site.xml中需要指向您的bucket:

<property>
        <name>fs.default.name</name>
        <value>s3n://your-bucket-name</value>
</property>

建议您使用S3N,而不是简单的S3实现,因为S3N可以由任何其他应用程序和您自己读取:)

此外,在同一个core-site.xml文件中,您需要指定以下属性:

  • fs.s3n.awsAccessKeyId
  • fs.s3n.awsSecretAccessKey

fs.s3n.awsSecretAccessKey

您工作的任何中间数据都会进入HDFS,所以是的,您仍然需要一个namenode和datanodes

https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/core-default.xml

fs.default.name已弃用,可能fs.defaultFS更好。

我能够使用实现s3集成

<property>
        <name>fs.default.name</name>
        <value>s3n://your-bucket-name</value>
</property> 

在core-site.xml中,使用hdfs-ls命令获取文件列表。但是也应该有namenode和单独的datanode配置,因为z仍然不确定数据是如何在数据节点中分区的。

我们应该为namenode和datanode提供本地存储吗?

相关内容

最新更新