使用s3作为fs.default.name或HDFS?

xin*_*nit 1 hadoop amazon-ec2 amazon-emr

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

谢谢!

小智 5

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

<property>
        <name>fs.default.name</name>
        <value>s3n://your-bucket-name</value>
</property>
Run Code Online (Sandbox Code Playgroud)

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

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

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

fs.s3n.awsSecretAccessKey