我正在EC2上建立一个Hadoop集群,我想知道如何进行DFS。我的所有数据当前都在s3中,所有map / reduce应用程序都使用s3文件路径来访问数据。现在我一直在研究Amazons EMR是如何设置的,并且对于每个作业流,似乎都设置了名称节点和数据节点。现在我想知道我是否真的需要这样做,或者我是否可以使用s3(n)作为DFS?如果这样做,有任何缺点吗?
谢谢!
答案 0 :(得分:5)
为了在core-site.xml中使用S3而不是HDFS fs.name.default需要指向你的存储桶:
<property>
<name>fs.default.name</name>
<value>s3n://your-bucket-name</value>
</property>
建议您使用S3N而不是简单的S3实现,因为S3N可由任何其他应用程序和您自己读取:)
此外,在同一个core-site.xml文件中,您需要指定以下属性:
fs.s3n.awsSecretAccessKey
答案 1 :(得分:1)
你工作的任何中间数据都会转到HDFS,所以是的,你还需要一个namenode和datanodes
答案 2 :(得分:1)
https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/core-default.xml
fs.default.name已被弃用,也许fs.defaultFS更好。
答案 3 :(得分:0)
我能够使用
进行s3集成<property>
<name>fs.default.name</name>
<value>s3n://your-bucket-name</value>
</property>
在core-site.xml中并使用hdfs ls命令获取文件列表。但是也应该有namenode和单独的datanode配置,因为仍然不确定数据如何在数据节点中进行分区。 / p>
我们应该有namenode和datanode的本地存储吗?