Ovu stranicu je najbolje pregledavati u modernom internet pregledniku s omogućenim JavaScriptom.

[PUS] 1. laboratorijska vježba - 2021/2022

Simke

Jel netko mozda imao problem da mu se program pokrene (running job), u clusteru pise state accepted, ali ne nista ne izvrti?


pepelko

Simke Mislim da je meni bio slican problem. Moguce da ti je do kolicine slobodnog prostora na disku. Trebas imati barem 10 % free space-a da bi ti se job izvrtio do kraja.


Simke

pepelko Izgleda da je do toga bilo, radi sada.. Hvala!


Ellie

Jel netko dobio ovakav error?

C:\hadoop-3.2.2\bin>hadoop jar VideoCount.jar VideoCount input/ output/
Usage: VideoCount <input path> <output path>
2021-12-04 18:47:11,622 WARN util.ShutdownHookManager: ShutdownHook '' timeout, java.util.concurrent.TimeoutException
java.util.concurrent.TimeoutException
        at java.util.concurrent.FutureTask.get(FutureTask.java:205)
        at org.apache.hadoop.util.ShutdownHookManager.executeShutdown(ShutdownHookManager.java:124)
        at org.apache.hadoop.util.ShutdownHookManager$1.run(ShutdownHookManager.java:95)

Ellie

Ellie
Evo, u slucaju da to bude jos nekom ovakav error.
Na kraju sam uspjela pokrenuti sve tako da sam koristila korake is ovog posta:
https://fer.studosi.net/d/2207-pus-1-laboratorijska-vjezba-20202021/26

(btw koristila sam Intellij i Windows)


Ducius

Treba li labos negdje predat ili se samo moramo pojavit sa kodom na predaju?


lkm

Ducius zna netko odg na ovo? Jesu rekli nesto na predavanjima?


Simke

Kakvo sortiranje se traži u 3.zadatku, tj. kakav bi trebao biti ispis ako je input isti kao za 2.zadatak?


Noggenfogger

Simke citala sam u proslogodisnjoj temi da su rekli da input u 3.zad je output 2.zad, ali to meni nema smisla, ja bi input za 3.zad stavila isti kao input za 2.zad pa da provjerim kak ste vi shvatili 3.zadatak: mi trebamo izbrojati koliko je posjeta, znaci nebitno koliko % videa se pogledalo bitno je da se otvorio link(posjetio), sto znaci da bi threshold bio 0 (ako je vise od 0% pogledan video je posjecen)? I onda samo sortirati silazno po value I guess kao i sto je u 2.zadatku output value-a od najveceg prema najmanjem? (Samo sto je u 2.zad sortirano uzlazno po kljucu pa se potrefilo da je value silazno sortiran)


svemia

Amon Jel treba prije tih naredbi pokrenut start-dfs i start-yarn? Dobivam samo “mkdir: Your endpoint configuration is wrong; For more details see: http://wiki.apache.org/hadoop/UnsetHostnameOrPort”. Cmd mi je u admin nacinu rada.


Ellie

bearyn
trebas pokrenut start-dfs.cmd i start-yarn.cmd
meni je izbacivalo tu gresku, ali sve je ok kad stavim “-p”, odnosno

hadoop fs -mkdir -p /user/[current login user]

to je po accepted answeru odavde:
https://stackoverflow.com/questions/20821584/hadoop-2-2-installation-no-such-file-or-directory


Luka14

dammitimmad
I ja sam to shvatio da treba gledat samo posjete, a ne i prag taj

Ali kako mozemo uopce ista sortirat ako se reduce poziva za svaki (key,value) i zapisuje svaki rezultat zasebno?


Noggenfogger

Kekec nisam htjela predlagati ideju dok mi nije proradilo, da ne bi jos na krivi put navela. Uglavnom ovo su korisni linkovi (zivot sam pretrazila, ovo bi trebalo biti dovoljno).

https://stackoverflow.com/questions/42886864/how-to-sort-data-in-descending-order-in-map-reduce
https://stackoverflow.com/questions/13557007/how-to-emit-in-the-close-method-of-reducer


Noggenfogger

lkm pise u obavijesti da ce se predaja odrzati u terminima i prostorijama blalba… tako da ne vjerujem da treba negdje uploadati, napisali bi obavijest da treba. koliko znam nitko od profesora na faksu nije samo na predavanjima rekao da treba uploadati nesto, a da za to nije bilo obavijesti/uputa na ferwebu.


frle10

Veles

Ja sam probao, i upravo sam uspio. Koristim Dockefile i docker-compose od ovog autora:
https://github.com/cupgit/docker-hadoop

Malo sam promijenio Dockerfile da mi umjesto verzije 3.0.3 skine zadnju, 3.3.1 i radi savrseno. Lijepo se digne Docker container i mogu pristupit nodeovima preko web sucelja…

Nisam jos pokusao napravit labos do kraja s ovim, ali mucio sam se cijeli dan bzvz ako ovo funkcionira. Ova metoda je bolesno lagana i radi na apsolutno svim sustavima koji god da imate (Windows, Linux, Mac OS X).

Taj image je napravljen da radi u pseudo-distributed modu isto kako u labosu pise da treba apparently tako da eto, preporucam svakome tko vec nije da to proba jer je masno lakse i gotovo u 20 minuta (ako vec imate instaliran Docker i docker-compose).


frle10

Ok, da ponudim ipak svima ovu alternativu za koju mi se stvarno cini da maksimalno olaksava stvari.
Repozitorij koji sam gore linkao je outdated i zahtijeva promjene, fixove. Ja sam to forkao na svoj profil i napravio potrebne promjene pa mozete cloneati moj repo:
https://github.com/frle10/docker-hadoop

Svakako, postupak je sljedeci:

  1. Instalirajte Docker (https://docs.docker.com/desktop/windows/install/). Ako ste na Windowsima, instalacija automatski obuhvaca i Docker Engine i docker compose, oboje vam treba. Ako ste na Linuxu, docker-compose se zasebno instalira, pretpostavit cu da ako koristite Linux vjv znate otic na net i kopirat par naredbi u terminal.

  2. Pokrenite Docker na racunalu (na Windowsima trebate imati tray icon dolje di se vidi da je pokrenut, na Linuxu treba bit startan dockerd service).

  3. Klonirajte ovaj moj repozitorij koji sam linkao

  4. Pozicionirajte se u direktorij repozitorija u vasem najdrazem terminalu/command promptu

  5. Pokrenite naredbu docker-compose up -d (ako ste slucajno setupali docker-compose V2, naredba je slicna, samo bez crtice –> “docker compose up -d”)

  6. Gledajte kako se magija odvija pred vasim ocima 🙂 Ovo radi neovisno o vasem host OS-u

NOTE: Ovo samo digne hadoop u pseudo-distributed modu.. nedostatak ove metode je sto vjerojatno necete moc koristit iste naredbe za pokretanje Java programa kao sto je u uputama, jer je Hadoop u docker containeru i onda treba kopirat program u njega i iz containera pokrenut te naredbe. To se sve moze, npr. naredba docker exec -it ime_containera vas ubacuje u shell od hadoopa nakon sto ga dignete.


frle10

Frle

Zivcira me sto ne mogu edit objave napravit iz nekog razloga nakon 5 minuta od objavljivanja… Jos jedan update da ipak objasnim detaljno kako mozete doc do svega sto treba s ovom metodom:

  1. Instalirajte Docker (https://docs.docker.com/desktop/windows/install/). Ako ste na Windowsima, instalacija automatski obuhvaca i Docker Engine i docker compose, oboje vam treba. Ako ste na Linuxu, docker-compose se zasebno instalira, pretpostavit cu da ako koristite Linux vjv znate otic na net i kopirat par naredbi u terminal.

  2. Pokrenite Docker na racunalu (na Windowsima trebate imati tray icon dolje di se vidi da je pokrenut, na Linuxu treba bit startan dockerd service).

  3. Klonirajte ovaj moj repozitorij koji sam linkao (https://github.com/frle10/docker-hadoop)

  4. Pozicionirajte se u direktorij repozitorija u vasem najdrazem terminalu/command promptu

  5. Pokrenite naredbu docker-compose up -d (ako ste slucajno setupali docker-compose V2, naredba je slicna, samo bez crtice –> “docker compose up -d”)

  6. Gledajte kako se magija odvija pred vasim ocima 🙂 Ovo radi neovisno o vasem host OS-u

  7. Kad napravite svoj Java program i kompajlirate ga, taj .jar file treba kopirati u hadoop container. To radite s naredbom “docker cp put/do/java/programa/program.jar <container_id>:/program.jar”. Dakle, prvi argument naredbe cp je put do .jar filea vaseg programa na vasem racunalu, a drugi argument je put gdje ce se kopirat u containeru. container_id nadete tako da upisete “docker container list” i nadete hadoop (bit ce samo on ako ne koristite inace docker) i kopirate mu container id.

  8. Hadoop je u docker containeru, pa sad ne mozete koristit naredbe iz uputa samo tako za pokretanje vasih programa. Iduci korak je moci uci u shell od containera, da mozete koristiti hadoop naredbe. To se radi sa “docker-compose exec hadoop bash”. Kad ste u tome, mozete pokretati naredbe kao u uputi (ako ste uspjesno kopirali svoj file u container u koraku prije). Iz tog shella mozete izac sa “exit 0”.

To bi trebalo bit to, nisam jos niti sam probao sve od ovog ali tako planiram radit. Ak neko uspije prije mene nek javi 😃


Dekan

Frle Kako si napravio ovu mrezu “xapp” koju koristis u docker-compose.yml?


Murin

Ima netko prijedlog kako da se povezem na svoj kompjuter preko laptopa i tako predam labos, jer fakat mi se ne da ponovo to raditi, radije bi se propucao

Je li teamviewer okej ili ima neko bolje rjesenje?


Zabe

Kolko je vremenski zahtjevan labos?


tera

Nakon potrošena 2 dana na desetke razlicitih java errora totalno slučajno sam naišao na mogućnost pozivanja bilo kakvih executable/binary/script fajlova kao mappera i reducera - Streaming, čime je moguće koristiti bilo koji jezik.
U dokumentaciji stoji primjer koji koristi /bin/cat kao mapper i /usr/bin/wc kao reducer:
https://hadoop.apache.org/docs/current3/hadoop-streaming/HadoopStreaming.html
Kolko vidim u uputama nigdje eksplicitno ne piše da mora bit java pa ću ja probat ovako, kaj bu bu.

Ako neko želi koristit C# ko ja, microsoft ima neki basic tut kako napisat mapper i reducer program (ostatak tutoriala nije primjenjiv jer koriste HDInsight): https://docs.microsoft.com/en-us/azure/hdinsight/hadoop/apache-hadoop-dotnet-csharp-mapreduce-streaming

Inače, u bilo kojem jeziku da se radi, program samo treba čitati sa STDIN i output na STDOUT
Napisao bi detaljnije upute, ali radim još jedan labos


« Prethodna stranica Sljedeća stranica »