Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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 web services 尝试从本地计算机访问AWS上的HDFS文件时出错_Amazon Web Services_Hadoop_Apache Spark_Amazon Ec2_Hdfs - Fatal编程技术网

Amazon web services 尝试从本地计算机访问AWS上的HDFS文件时出错

Amazon web services 尝试从本地计算机访问AWS上的HDFS文件时出错,amazon-web-services,hadoop,apache-spark,amazon-ec2,hdfs,Amazon Web Services,Hadoop,Apache Spark,Amazon Ec2,Hdfs,我已经成功地在AWSEC2上安装了hadoop和spark。 我可以从AWS上的spark访问HDFS 但是,当我尝试通过访问本地计算机访问HDFS文件时 val lines = sc.textFile("hdfs://namenode_public_DNS:9000/datasets/wikipedia/wikipedia.dat") lines.first() 我明白了 我怎样才能解决这个问题 提前谢谢 所有AWS实例都设置为允许所有流量 我只有一个namenode和一个datanode

我已经成功地在AWSEC2上安装了hadoop和spark。 我可以从AWS上的spark访问HDFS

但是,当我尝试通过访问本地计算机访问HDFS文件时

val lines = sc.textFile("hdfs://namenode_public_DNS:9000/datasets/wikipedia/wikipedia.dat")
lines.first()
我明白了

我怎样才能解决这个问题

提前谢谢


  • 所有AWS实例都设置为允许所有流量
  • 我只有一个namenode和一个datanode

  • 用于hdfs的端口应该可以从外部访问。 尝试在本地计算机上运行此命令

    $telnet namenode_public_DNS 9000
    

    并检查您是否能够访问hdfs端口。

    请检查您是否正确配置了EC2实例。默认情况下,EC2实例的安全组配置将不允许入站流量。您可以通过应用在中给出的过程并为端口添加入站流量来向安全组添加新规则
    9000
    (您不需要为出站执行任何操作,因为安全组是有状态的)。

    输出连接到namenode\u public\u DNS,
    转义字符为“^]”。
    但我仍然无法连接到数据集。还要为所有数据节点中的50010端口启用防火墙。我已检查是否已将“所有实例”设置为允许所有流量。出于测试目的,能否在本地安装Hadoop,这样您就可以尝试使用hadoop fs-ls了hdfs://namenode_public_DNS:9000/datasets/wikipedia/wikipedia.dat?要查看是否至少可以列出文件,Namenode返回给客户端的datanode的IP是私有IP,无法从本地计算机访问。
    $telnet namenode_public_DNS 9000