- 2 つのホスト (hadoop-coc-1 と hadoop-coc-2) を使用して、それらのホストで HDFS のフェデレーションを構成しようとしています。したがって、
$ cat etc/hadoop/hdfs-site.xml
両方のホスト (hadoop-coc-1 と hadoop-coc-2) で を構成しました。
どちらの 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 プロトコルを使用している 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>
- HDFS のフェデレーションにより、複数の名前空間を使用して HDFS にアクセスできます。私の設定 (hdfs-site.xml を参照) では、hadoop-coc-1 と hadoop-coc-2 ホストは同じ HDFS への名前空間を持っています。同じ HDFS を使用する各ホストで 2 つの YARN ランタイムを実行することは可能でしょうか?