Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon ec2 使用s3作为fs.default.name还是HDFS?_Amazon Ec2_Hadoop_Amazon Emr - Fatal编程技术网

Amazon ec2 使用s3作为fs.default.name还是HDFS?

Amazon ec2 使用s3作为fs.default.name还是HDFS?,amazon-ec2,hadoop,amazon-emr,Amazon Ec2,Hadoop,Amazon Emr,我正在EC2上建立一个Hadoop集群,我想知道如何进行DFS。我的所有数据当前都在s3中,所有map/reduce应用程序都使用s3文件路径访问数据。现在我一直在看Amazons EMR是如何设置的,对于每个作业流,似乎都设置了namenode和datanodes。现在我想知道我是否真的需要这样做,或者我是否可以使用s3(n)作为DFS?如果这样做,有什么缺点吗 谢谢 作业的任何中间数据都会转到HDFS,因此是的,您仍然需要一个namenode和datanodes作业的任何中间数据都会转到HD

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


谢谢

作业的任何中间数据都会转到HDFS,因此是的,您仍然需要一个namenode和datanodes

作业的任何中间数据都会转到HDFS,因此是的,您仍然需要一个namenode和datanodes

以便使用S3而不是HDFS.name。core-site.xml中的默认值需要指向您的存储桶:

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

fs.default.name
s3n://您的bucket名称
建议您使用S3N,而不是简单的S3实现,因为S3N可由任何其他应用程序和您自己读取:)

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

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

fs.s3n.awsSecretAccessKey

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

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

fs.default.name
s3n://您的bucket名称
建议您使用S3N,而不是简单的S3实现,因为S3N可由任何其他应用程序和您自己读取:)

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

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

我能够使用

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

fs.default.name
s3n://您的bucket名称
在core-site.xml中,使用hdfs ls命令获取文件列表。但是还应该具有namenode和单独的datanode配置,因为z仍然不确定数据在数据节点中是如何分区的


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

我能够使用

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

fs.default.name
s3n://您的bucket名称
在core-site.xml中,使用hdfs ls命令获取文件列表。但是还应该具有namenode和单独的datanode配置,因为z仍然不确定数据在数据节点中是如何分区的

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

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


不推荐使用fs.default.name,也许fs.defaultFS更好。

我已经能够在s3上运行所有功能。如果将dfs.name.default指定为在s3(或s3n)上,则中间结果会出现。为什么要这样做?s3的延迟比hdfs大得多,中间数据可以有效地一次性使用,因为我需要集群的自动伸缩(向上和向下)。对于HDFS,这是行不通的。我使用s3,因为我们在本地集群上有很多数据,但没有足够的存储空间。您如何发现延迟受到的影响?我很惊讶地听到,如果HDFS有太多的中间数据,那么它甚至可以用于S3。我已经能够在S3上运行所有东西。如果将dfs.name.default指定为在s3(或s3n)上,则中间结果会出现。为什么要这样做?s3的延迟比hdfs大得多,中间数据可以有效地一次性使用,因为我需要集群的自动伸缩(向上和向下)。对于HDFS,这是行不通的。我使用s3,因为我们在本地集群上有很多数据,但没有足够的存储空间。您如何发现延迟受到的影响?我很惊讶地听到,如果你有太多的HDFS中间数据,它甚至可以用于S3。你能共享配置吗?这对我不起作用。它的显示方式类似于
ls:Permission denied:s3n://vhdsamrat/user/root
您可以共享配置吗?这对我不起作用。它的显示方式类似于
ls:Permission denied:s3n://vhdsamrat/user/root
这会使中间数据也保存到S3吗?有没有办法将中间数据保持在本地?这会不会使中间数据也保存到S3?有没有办法将中间数据保持在本地?