hadoop - 在 HDFS 的联邦中将数据从本地磁盘复制到 HDFS

标签 hadoop hdfs federation webhdfs

  1. 我使用两台主机(hadoop-coc-1 和 hadoop-coc-2)尝试在其中配置 HDFS 联合。因此,我在两个主机(hadoop-coc-1 和 hadoop-coc-2)中配置了 $ cat etc/hadoop/hdfs-site.xml

两个 HDFS 都与 WebHDFS 一起正常运行。但是,使用此配置,defaultFS 服务未运行。也许这是我无法将数据从本地磁盘复制到 HDFS 的原因。

我尝试使用以下命令复制数据:

$ hdfs dfs -copyFromLocal ~/input1 webhdfs://hadoop-coc-1/
Java HotSpot(TM) Client VM warning: You have loaded library /home/xubuntu/Programs/hadoop-2.6.0/lib/native/libhadoop.so which might  have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
15/03/02 12:32:47 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
copyFromLocal: Connection refused


$ curl -i -X PUT -T ~/input1 "http://hadoop-coc-1:8080/?op=CREATE"
HTTP/1.1 100 Continue

HTTP/1.1 405 HTTP method PUT is not supported by this URL
Date: Mon, 02 Mar 2015 17:34:35 GMT
Pragma: no-cache
Date: Mon, 02 Mar 2015 17:34:35 GMT
Pragma: no-cache
Content-Length: 0
Server: Jetty(6.1.26)

我不明白为什么我无法将数据从本地磁盘复制到使用 WebHDfS 协议(protocol)的 HDFS。对理解这个错误有什么帮助吗?为什么无法从本地磁盘复制数据到HDFS? hdfs-site.xml配置好了吗?

hadoop-coc-1 和 hadoop-coc-2 主机中的 hdfs-site.xml。

<configuration>
    <property>
     <name>dfs.nameservices</name>
     <value>ns1,ns2</value>
    </property>
    <property>
     <name>fs.defaultFS.ns1</name>
     <value>hdfs://hadoop-coc-1:9000</value>
    </property>
    <property>
     <name>fs.defaultFS.ns2</name>
     <value>hdfs://hadoop-coc-2:9000</value>
    </property>
    <property>
     <name>dfs.namenode.rpc-address.ns1</name>
     <value>hadoop-coc-1:6600</value>
    </property>
    <property>
     <name>dfs.namenode.http-address.ns1</name>
     <value>hadoop-coc-1:8080</value>
    </property>
    <property>
     <name>dfs.namenode.secondaryhttp-address.ns1</name>
     <value>hadoop-coc-1:8080</value>
    </property>
    <property>
     <name>dfs.namenode.rpc-address.ns2</name>
     <value>hadoop-coc-2:6600</value>
    </property>
    <property>
     <name>dfs.namenode.http-address.ns2</name>
     <value>hadoop-coc-2:8080</value>
    </property>
    <property>
     <name>dfs.namenode.secondaryhttp-address.ns2</name>
     <value>hadoop-coc-2:8080</value>
    </property>
    <property>
     <name>dfs.webhdfs.enabled</name>
     <value>true</value>
    </property>
    <property>
     <name>dfs.support.append</name>
     <value>true</value>
    </property>
</configuration>
  1. HDFS 联合允许使用多个命名空间来访问 HDFS。使用我的配置(请参阅 hdfs-site.xml),hadoop-coc-1 和 hadoop-coc-2 主机具有同一个 HDFS 的命名空间。我想知道是否可以在使用相同 HDFS 的每个主机上运行两个 YARN 运行时?

最佳答案

默认的网络服务器端口是 50070,数据通过端口 50075 上的网络服务器从数据节点流式传输。您是否在某处更改了此配置?

此外,当您尝试将数据复制到您未指定端口的 webdfs 时

http://hadoop.apache.org/docs/r1.0.4/webhdfs.html

关于hadoop - 在 HDFS 的联邦中将数据从本地磁盘复制到 HDFS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28816296/

相关文章:

hadoop - 在Hive脚本中执行Unix命令

hadoop - 当节点数少于复制因子时HDFS如何进行复制?

apache-spark - Spark检查是否存在带有正则表达式的输入路径

hadoop - SNAPSHOTS中的复制因子(在HDFS中)

federation - 如何知道联邦成员是否已加入 HLA 中的联邦

hadoop - Hadoop + Nutch 1.15 + Solr Cloud 7.3.1索引无结果

hadoop - CDH5 hdfs 平衡器错误

hadoop - brew 安装了 apache-spark 无法访问 s3 文件

authentication - 多个IdentityServer联合: Error Unable to unprotect the message.状态

metadata - 如何为 ADFS 2.0 创建 "Relying Party Trust"和 "Claims Provider Trusts"的联合元数据 XML