Скопируйте данные с локального диска в HDFS в федерации HDFS.

  1. Я использую два хоста (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)

Я не понимаю, почему я не могу скопировать данные с локального диска в HDFS, использующую протокол WebHDfS. Любая помощь, чтобы понять эту ошибку? Почему я не могу скопировать данные с локального диска в HDFS? Правильно ли я настроил hdfs-site.xml?

hdfs-site.xml на узлах hadoop-coc-1 и hadoop-coc-2.

<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. Интересно, возможно ли запустить две среды выполнения YARN на каждом хосте, использующем одну и ту же HDFS?

person xeon123    schedule 02.03.2015    source источник


Ответы (1)


Порт веб-сервера по умолчанию — 50070, а данные передаются с узлов данных веб-серверами через порт 50075. Вы где-то изменили эту конфигурацию?

Кроме того, когда вы пытаетесь скопировать данные в webdfs, вы не указываете порт

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

person SQL.injection    schedule 03.03.2015