2016-07-06 6 views
0

Я установил hadoop на ubuntu, который работает на виртуальном боксе. Когда я впервые установил hadoop, я могу запускать hdfs и создавать каталоги без проблем.Hadoop Pseudo-Distributed java.net.ConnectException: соединение отклонено в виртуальной коробке

Но после перезагрузки виртуальной машины я получил сообщение «Connection failed» при попытке запустить команду ls на hdfs. Затем я добавил «Порт 9000» в базе sshd_config по адресу Hadoop cluster setup - java.net.ConnectException: Connection refused. Теперь я получаю «ls: Не удалось локальное исключение: com.google.protobuf.InvalidProtocolBufferException: тег сообщения протокола имел недопустимый тип проводки. Сведения о хосте: локальный хост: hadoop/127.0.1.1 ", хост назначения:" localhost ": 9000;"

-------------- etc/hadoop/core-site.xml ---- ---------

<configuration> 
    <property> 
     <name>fs.defaultFS</name> 
     <value>hdfs://localhost:9000</value> 
    </property> 
</configuration> 

-------------- etc/hadoop/hdfs-site.xml ----------- ------

<configuration> 
    <property> 
     <name>dfs.replication</name> 
     <value>1</value> 
    </property> 
</configuration> 
+0

Помогает ли этот вопрос: http://stackoverflow.com/questions/31849433/hadoop-protocol-message-tag-had-invalid-wire-type –

+0

Это другая проблема. – zhumingvictor

ответ

0

Хорошо. Я решил это. Я запускаю jps и обнаружил, что namenode не удалось запустить. Затем, когда я пытаюсь понять, что не так, я продолжаю смотреть на «hadoop-xxx-namenode-hadoop.out», который практически не содержит полезной информации. Поэтому я посмотрел на «hadoop-xxx-namenode-hadoop.log», в котором четко отображается ошибка «org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory/tmp/hadoop-xxx/dfs/name is в несогласованном состоянии: каталог хранения не существует или недоступен. «

Больше исследований, которые я нашел по умолчанию, Hadoop поместит файл namenode и datanode в системную папку temp. И когда я перезагружаюсь, каталог удаляется. Поэтому мне нужно было изменить «hdfs-site.xml» и добавить «dfs.namenode.name.dir» и «dfs.namenode.data.dir». Затем, когда я пытаюсь запустить hdfs, я получил «Address уже в использовании». Порт, который я использовал, был 9000, и после перезагрузки он привязан к «tcp 0 0 *: 9000», поэтому я изменил «fs.defaultFS» в файле core-site.xml, чтобы вместо этого использовать 9001. Теперь все может начаться прямо сейчас.

Надеюсь, это поможет.

Смежные вопросы