Size: a a a

2019 December 01

ДП

Даниил Пилипенко in Data Engineers
Друзья, всем привет! А кто-то может помочь с решением проблемы установки Hadoop через Docker?

Загружаю файл, файл создаётся, но он нулевой длины. И ошибка вот такая: "File /file.txt could only be replicated to 0 nodes instead of minReplication (=1).  There are 1 datanode(s) running and 1 node(s) are excluded in this operation"
источник

FL

Fedor Lavrentyev in Data Engineers
Michael Voloshin
я бы добавил к последнему тезису, что БигДата - заезженный термин используемый юными HR-барышнями и прочими гуманитариями
Я однажды пришел на оффлайн встречу очень уважаемого IT коммьюнити. Представился, сказал, кто я и где работаю. Мне в ответ вместо здрасьте прилетело: «Бигдата - это сколько?» Я сымпровизировал тезис выше. Вопрошающий сделал «Not Bad Face», а потом «Зззззаходи Face». Так я понял, что ответ правильный.
источник

FL

Fedor Lavrentyev in Data Engineers
Даниил Пилипенко
Друзья, всем привет! А кто-то может помочь с решением проблемы установки Hadoop через Docker?

Загружаю файл, файл создаётся, но он нулевой длины. И ошибка вот такая: "File /file.txt could only be replicated to 0 nodes instead of minReplication (=1).  There are 1 datanode(s) running and 1 node(s) are excluded in this operation"
Проверьте, может ли датанода писать в data dir
источник

FL

Fedor Lavrentyev in Data Engineers
Может, вы примонтировали к контейнеру директорию, куда не может писать юзер, из-под которого запущен докер,
источник

ДП

Даниил Пилипенко in Data Engineers
Датанода использует data dir - /tmp/hadoop-root/dfs/data/current  
Дал на неё права 777, но всё равно результат тот же
источник

ДП

Даниил Пилипенко in Data Engineers
Тут интересная штука:

SortedMap-2:~ sortedmap$ docker ps
CONTAINER ID        IMAGE               COMMAND                   CREATED             STATUS              PORTS                                                                                                                                                                                                                                                                                  NAMES
fe629b2f12e9        harisekhon/hadoop   "/bin/sh -c \"/entryp…"   3 hours ago         Up 25 seconds       0.0.0.0:8020->8020/tcp, 0.0.0.0:8042->8042/tcp, 0.0.0.0:8088->8088/tcp, 0.0.0.0:9000->9000/tcp, 0.0.0.0:10020->10020/tcp, 0.0.0.0:19888->19888/tcp, 0.0.0.0:50010->50010/tcp, 0.0.0.0:50020->50020/tcp, 0.0.0.0:50070->50070/tcp, 0.0.0.0:50075->50075/tcp, 0.0.0.0:50090->50090/tcp   pedantic_carson


При этом приложение (клиент) зависает на некоторое время перед ошибкой, и в netstat я вижу это:

SortedMap-2:~ sortedmap$ netstat
Active Internet connections
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)    
tcp4       0      0  192.168.0.3.61263      localhost.50010        SYN_SENT  
tcp4       0      0  192.168.0.3.intu-ec-sv 192.168.0.3.61262      ESTABLISHED
tcp4       0      0  192.168.0.3.61262      192.168.0.3.intu-ec-sv ESTABLISHED
tcp4       0      0  localhost.58784        localhost.61261        ESTABLISHED
tcp4       0      0  localhost.61261        localhost.58784        ESTABLISHED
tcp4       0      0  localhost.61259        localhost.61260        ESTABLISHED
источник

ДП

Даниил Пилипенко in Data Engineers
Датанода при этом реагирует на обычный telnet:

SortedMap-2:~ sortedmap$ telnet localhost 50010
Trying ::1...
Connected to localhost.
Escape character is '^]'.

Connection closed by foreign host.

А в логе Hadoop сразу отобразилось:

2019-12-01 18:54:03,372 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: fe629b2f12e9:50010:DataXceiver error processing unknown operation  src: /172.17.0.1:33430 dst: /172.17.0.2:50010
java.io.IOException: Version Mismatch (Expected: 28, Received: 3338 )
 at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.readOp(Receiver.java:69)
 at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:267)
 at java.lang.Thread.run(Thread.java:748)
источник

ДП

Даниил Пилипенко in Data Engineers
Даниил Пилипенко
Датанода использует data dir - /tmp/hadoop-root/dfs/data/current  
Дал на неё права 777, но всё равно результат тот же
Этого достаточно? Или контейнер докера вообще от рута запустить?
источник

ДП

Даниил Пилипенко in Data Engineers
Fedor Lavrentyev
Может, вы примонтировали к контейнеру директорию, куда не может писать юзер, из-под которого запущен докер,
Запустил докер вообще от рута. Та же ошибка
источник

A4

Anon 43 in Data Engineers
Fedor Lavrentyev
Тогда ответ такой.

Традиционный подход к обработке данных подразумевает, что данные помещаются в память одной машины или хотя бы на один диск. Также, как правило, традиционный подход подразумевает обработку всего массива данных мощностями одной машины. В терминальном случае - в один поток.

Для данных действительно больших объемов такое не применимо. Во-первых, они не вмещаются на одну машину, во-вторых, их обработка мощностями одного процессорного узла или, тем более, одного ядра будет занимать неприемлемо много времени.

Я бы через это определял большие данные. Если данных слишком много для их обработки на одной машине - то это бигдата.
спасибо, очень подробно)
источник

FL

Fedor Lavrentyev in Data Engineers
Даниил Пилипенко
Датанода при этом реагирует на обычный telnet:

SortedMap-2:~ sortedmap$ telnet localhost 50010
Trying ::1...
Connected to localhost.
Escape character is '^]'.

Connection closed by foreign host.

А в логе Hadoop сразу отобразилось:

2019-12-01 18:54:03,372 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: fe629b2f12e9:50010:DataXceiver error processing unknown operation  src: /172.17.0.1:33430 dst: /172.17.0.2:50010
java.io.IOException: Version Mismatch (Expected: 28, Received: 3338 )
 at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.readOp(Receiver.java:69)
 at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:267)
 at java.lang.Thread.run(Thread.java:748)
Version Mismatch это точно не нормально. Это может быть следствием неправильного ответа на указанном порту, когда первые несколько байт трактуются как ответ по внутрихадуповскому RPC протоколу, а на деле это какой-нибудь «вы кто такие я вас не звал».
источник

ДП

Даниил Пилипенко in Data Engineers
2.8.2 - и клиент, и сам Hadoop в докере
источник

FL

Fedor Lavrentyev in Data Engineers
Ну вот что-то пошло сильно не так
источник

FL

Fedor Lavrentyev in Data Engineers
Version Mismatch это в данном случае не про версию
источник

ДП

Даниил Пилипенко in Data Engineers
Ну да, это ответ на телнет. Я просто проверял, не мешает ли какой-то файервол и правильно ли порты проброшены
источник

FL

Fedor Lavrentyev in Data Engineers
А, да, простите =)
источник

FL

Fedor Lavrentyev in Data Engineers
У вас telnet срезолвил IPv6 адрес
источник

FL

Fedor Lavrentyev in Data Engineers
Hadoop не умеет IPv6, он должен форсить IPv4
источник

FL

Fedor Lavrentyev in Data Engineers
Попробуйте netstat -n
источник

FL

Fedor Lavrentyev in Data Engineers
SYN_SENT - это правильное подозрение
источник