Jak nauczyć się Apache Solr? Krok po kroku [Mapa drogowa]

Jak nauczyć się Apache Solr? Krok po kroku [Mapa drogowa]

Apache Solr to technologia fulltext search. Jedna z dwóch dominujących (obok Elasticsearch), dzięki którym zbudujemy zaawansowane wyszukiwarki. Niestety, w internecie niewiele jest miejsc, z których można się uczyć. Jednak warto! Solr to nietypowa technologia, bardzo ciekawa, a przy jej pomocy można zbudować wspaniałe rzeczy.

W dzisiejszym artykule chciałbym Ci przedstawić plan na to co zrobić, żeby nauczyć się Solr. Krok po kroku. Nie będę pisał o technikaliach, tylko dam swoistą mapę. Wraz z kilkoma wskazówkami;-). Kawa zaparzona? To lecimy! Zabieram Cię w “wyszukiwarkową podróż”;-).

Odcinek 1 – ogólna budowa Solr

Uwielbiam zaczynać “od ogółu do szczegółu”. Dlatego pierwsze co powinieneś poznac, to ogólna budowa Solr.

Mowa tu o następujących rzeczach:

  1. Co to w ogóle jest Solr?
  2. Ogólna budowa – architektura, struktury logiczne. Czym jest Zookeeper, czym jest Solr Cloud?
  3. Jak działa configset.

Odcinek 2 – Solr UI

W drugim odcinku naszej drogi warto przysiąść chwilkę nad Solr UI. To podstawowe miejsce pracy dla każdego Solrowca. Nie musisz tu siedzieć niewiadomo ile, po prostu zapoznaj się jakie możliwości daje Ci to narzędzie.

Kilka najważniejszych rzeczy:

  1. Ogólny przegląd
  2. Logi
  3. Monitoring fizycznych maszyn
  4. Tworzenie kolekcji
  5. Schema Designer
  6. Analiza w kolekcji

Odcinek 3 – Indexing

Indexing to proces zapisywania danych do Solr. Oczywiście nie jest to samo “upload” i heja!

W tym kroku warto pochylić się nad takimi rzeczami jak:

  1. Jak dane są układane, że mogą potem być bardzo szybko wyszukiwane?
  2. Jak indeksować dane pod względem technicznym? Narzędzie bin/post, requesty HTTP
  3. Indeksacja różnych formatów danych, ze szczególnym uwzględnieniem XML

Odcinek 4 – Przeszukiwanie

No wreszcie! Czas się nauczyć, jak się przeszukuje Solr. To oczywiście temat rzeka. Polecam się nie zagrzebać, tylko zrozumieć podstawy, najważniejsze funkcjonalności i pójść dalej. A na koniec zbudować sobie projekt z większymi zasobami i bawić się zaawansowanymi query.

  1. Ogólna budowa query. Co to jest, jak to się robi?
  2. Common Query Parameters
  3. Standard Query Parser i inne parsery
  4. Wildcard Search
  5. Fuzzy Search
  6. Proximity Search
  7. Zakresy/przedziały
  8. Facety

Odcinek 5 – SolrJ

W tym miejscu polecam zapoznać się z tym w jaki sposób komunikować się z Solr przez Javę. Pozwoli Ci to budować zaawansowane wyszukiwarki. Co więcej – jeśli opanujesz Solr w Javie ze Spring Bootem, znacząco zwiększysz swoją atrakcyjność na rynku.

Odcinek 6 – zbierz wszystko w całość i zbuduj coś wspaniałego!

Teraz wiesz już wszystko, co należy wiedzieć. Chociaż to oczywiście dopiero pewien szkielet. Czas zacząć go wypełniać treścią. Poszukaj dodatkowych mechanizmów, a przede wszystkim – zbuduj przydatny, pełnoprawny projekt. To pozwoli Ci się zetknąć z tym jak Solr działa w praktyce! No i będziesz mieć coś, czym się pochwalisz na rozmowie rekrutacyjnej czy na LinkedIn.

Swoją drogą… jeśli zrobisz coś fajnego, napisz mi na marek.czuma@riotechdatafactory.com!

Jeśli chcesz pójść zgodnie z tą mapą… mam dobrą wiadomość!

Bardzo istotna kwestia. Jeśli podoba Ci się ta droga, tydzień temu zbudowałem kurs online, który ją “implementuje”.

Przejdziesz tam wszystkie te kroki (łącznie z projektem!), a nawet więcej!

Pokażę m.in. jak wykrywać w jakim języku jest napisana treść. Jak dodać zamianę walut czy jak analizować język polski!

A to wszystko bez stresu, bez spiny, w Twoim zaciszu domowym;-).

Sprzedaż kursu zamykam 10 listopada 2023!

Kliknij w link i kup dostęp.

Zapisz się na newsletter główny i otrzymuj dostęp do info prosto od RDF;-)

 

Loading
Spark: czemu jedna akcja tworzy wiele jobów?

Spark: czemu jedna akcja tworzy wiele jobów?

Zgłębiając kwestie wydajnościowe zauważyłem, że dzieje się coś dziwnego: jedna akcja generuje wiele jobów. Postanowiłem to sprawdzić i opisać tutaj:-). Śmiało, częstuj się. A jeśli artykuł okaże się przydatny – podziel się nim na LinkedIn… czy gdziekolwiek chcesz.

Kawka w dłoń i ruszamy!

Podstawy – jak działa aplikacja sparkowa?

Bardzo często mówiąc o tym, że piszemy w sparku, mówimy “muszę napisać joba sparkowego”, “mój job szedł 30 godzin!” i inne.

Cóż… według nomenklatury sparkowej, nie jest to poprawne. Co gorsza – może być nieco mylące. Okazuje się bowiem, że to co nazywamy “jobem sparkowym” (czyli cały kod który ma coś zrobić i jest uruchamiany przy użyciu sparka) to tak naprawdę “aplikacja” (application). Aplikacja natomiast składa się z… jobów.

Nie mówię, że masz dokonywać rewolucji w swoim słowniku. Sam zresztą też chwalę się ile to nie trwał “mój job”;-). Pamiętaj jednak, że prawdziwe joby siedzą pod spodem aplikacji.

No dobrze – ale czym dokładnie są te joby? I jak jest zbudowana aplikacja sparkowa? Oczywiście to nie miejsce na szkolenie (na listę oczekujących kursu online “Fundament Apache Spark” możesz zapisać się tutaj). Spróbujmy jednak bardzo pokrótce zrozumieć jak zbudowana jest taka aplikacja.

Zróbmy to w kilku krokach:

  1. Podczas pisania kodu posługujemy się dwoma rodzajami: akcjami i transformacjami:
    • transformacje pozwalają nam przetworzyć RDD/Dataset na inny RDD/Dataset. Nie są jednak wykonywane od razu (lazy evaluation)
    • akcje z kolei wykonują wspomniane wcześniej transformacje i tym samym kończą pewną robotę do zrobienia – czyli joba;-).
  2. Job, czyli praca do wykonania. No właśnie – mamy kilka transformacji, które składają się w jeden ciąg operacji dokonywanych na danych. Na końcu są np. zapisane na HDFS albo wyświetlone na ekranie. I to jest właśnie 1 job. Tak więc powiedzmy to sobie wreszcie – 1 akcja = 1 job, yeeeaahh!
  3. Czyli w aplikacji może być kilka jobów. To teraz kolejne zagłębienie. Job składa się ze… stage’y. Czyli z etapów. Jak to się dzieje? Wróćmy do transformacji – bo na tym etapie mamy tylko z transformacjami do czynienia (w końcu akcja kończy joba).
    • Transformacje też możemy podzielić!
    • Narrow Transformations – gdy transformacje z jednej partycji wyprowadzają dokładnie jedną partycję. Narrow Transformations (np. filtry) są dokonywane w pamięci.
      • przykłady: filter, map, union, sample, intersection
    • Wide Transformations – gd transformacje wyprowadzają z jednej partycji wejściowej kilka partycji wyjściowych. Tutaj, ponieważ wide transformations powodują shuffling, dane muszą zostać zapisane na dysk.
      • przykłady: groupBy, join, repartition (te trzy, szczególnie dwa pierwsze, to klasyki – postrachy inżynierów sparkowych)
    • No i właśnie dlatego, że wide transformations powodują shuffling (przemieszanie danych między partycjami/executorami/nodami), musi zakończyć się jakiś etap joba. Czyli stage;-).

I można by kilka rzeczy dodać, ale tyle wystarczy, a nawet może zbyt wiele.

Nie mogłem jednak się powstrzymać. Uff… liczę, że jeszcze ze mną jesteś!

Ale dlaczego jedna akcja tworzy wiele jobów?!

Wspomniałem wyżej, że jednej akcji odpowiada jeden job w aplikacji. Jakie było moje zdziwienie, gdy zobaczyłem co następuje.

Oto mój kod. Przykładowy, ćwiczeniowy, prosty do zrozumienia (zmienna spark to instancja SparkSession):

val behaviorDF: Dataset[Row] = spark.read
  .option("header", "true")
  .csv(pathToBehaviorFile)

behaviorDF.show()
val brandCountDF: Dataset[Row] = behaviorDF.groupBy("brand")
  .count()
  .as("brandCount")

val userIdCount: Dataset[Row] = behaviorDF.groupBy("user_id")
  .count()
  .as("userCount")

val behaviorsWithCounts: Dataset[Row] = behaviorDF.join(brandCountDF, "brand")
  .join(userIdCount, "user_id")

behaviorsWithCounts.show(20)

 

Jak widać mamy dwie akcje:

  1. behaviorDF.show() – linijka 23 (w rzeczywistości)
  2. behaviorsWithCounts.show(20) – linijka 35 (w rzeczywistości).

Czyli z grubsza powinny być 2, może 3 joby (jeśli liczyć także wczytywanie danych).

Co zastałem w Spark UI?

WHAAAT…

Jak to się stało?

Czemu mam… 5 różnych jobów do akcji z linijki 35?

Otóż – mogą być za to odpowiedzialne dwie rzeczy:

  1. DataFrame to abstrakcja zbudowana na RDD. 1 akcja odpowiada 1 jobowi, ale… na RDD. Dataframe czasami “pod spodem” może wykonywać jeszcze inne akcje. JEDNAK TO NIE TO BYŁO MOJE ROZWIĄZANIE. Dotarłem do takiego wyjaśnienia więc się nim dzielę. U mnie natomiast DUŻO WAŻNIEJSZY okazał się pkt 2.
  2. Włączone Adaptive Query Execution – czyli mechanizm optymalizacyjny Apache Spark. Może być włączony albo wyłączony. Od Sparka 3.2.0 AQE włączone jest domyślnie!

Po ustawieniu prostej konfiguracji “spark.sql.adaptive.enabled” na “false”, jak poniżej…

val spark: SparkSession = SparkSession.builder()
  .appName("spark3-rdf-tests")
  .config("spark.sql.adaptive.enabled", false)
  //      .master("local[*]")
  .getOrCreate()

 

… i uruchomieniu aplikacji raz jeszcze, efekt w 100% pokrył się z moją wiedzą teoretyczną.

OMG CO ZA ULGA

UWAGA! Warto pamiętać, że AQE jest z zasady dobrym pomysłem. Nie wyłączaj tego, jeśli nie wiesz dokładnie po co to chcesz robić.

Ja na przykład wyłączam w celach edukacyjnych;-)


Szkolenie z Apache Spark – może tego właśnie potrzebujesz?

Jeśli reprezentujesz firmę i potrzebujecie solidnie przeczołgać się ze Sparka… jesteśmy tu dla Was!

Mamy solidnie sprawdzoną formułę.

I własny klaster, na którym poeksperymentujecie;-)

Więcej informacji na tej stronie.

Możesz też po prostu napisać na: kontakt@riotechdatafactory.com !


Co to jest Adaptive Query Execution?

No to teraz pokrótce: co to jest Adaptive Query Execution?

Przeczytasz o tym w dokumentacji Sparka, o tutaj.

Mówiąc jednak prosto i zwięźle: Adaptive Query Execution to mechanizm zawarty w Spark SQL, który pozwala zoptymalizować pracę aplikacji. AQE dokonuje optymalizacji bazując na “runtime statistics”. Temat samych statystyk będę poszerzał w przyszłości tutaj lub na kanale YouTube. Zapisz się na newsletter, żeby nie przegapić;-). I przy okazji zgarnij jedynego polskiego ebooka wprowadzającego w branżę Big Data (i to kompleksowo!).

AQE ma 3 podstawowe funkcjonalności:

  1. Łączenie partycji po shufflingu – dzięki temu mechanizmowi bardziej wydajnie dobierane są partycje. Widać to m.in. na powyższym przykładzie – gdy porównasz liczby partycji w obu przypadkach.
  2. Dzielenie partycji ze “skośnościami” po shufflingu (data skewness) – spark będzie optymalizował partycje, które podlegają “skośności” (są zbyt duże, co wychodzi dopiero po shufflingu).
  3. Zamiana “sort-merge join” na “broadcast join” – zamienia jeśli statystyki którakolwiek strona joina jest mniejsza niż poziom pozwalający na taką operację.

W praktyce AQE daje zauważalne rezultaty. Widać to dość symbolicznie na mojej małej aplikacji (ładuję tam jedynie 5 gb z hakiem), gdzie wynik z ~5.4 min zszedł do ~5 min.

Minusy? Przede wszystkim mniejsza czytelność podczas monitoringu joba. Co z jednej strony może wydać się śmieszne, ale w rzeczywistości, gdy musimy zoptymalizować jakąś bardzo złożoną aplikację – może zrobić się uciążliwe.

Podsumowanie

Podsumowując:

  1. Od Sparka 3.2.0 domyślnie włączony jest Adaptive Query Execution.
  2. To mechanizm, który pozwala na bardzo konkretną optymalizację. Powoduje niestety pewne “zaszumienie” monitoringu aplikacji.
  3. W efekcie zamiast zasady 1 akcja = 1 job, nasza aplikacja będzie bardziej porozbijana.
  4. Można to wyłączyć (aby nie zachęcać do pójścia “na łatwiznę” – jak to zrobić zostało zawarte w tekście;-)). Nie rób jednak tego bez solidnej argumentacji.
  5. Zapisz się na newsletter i przeczytaj ebooka, który pokaże Ci Big Data z kilku różnych storn. A jak Ci się spodoba, napisz o tym w sieci żeby i inni wiedzieli:-).

Jeśli natomiast szukasz czegoś, co pokaże Ci podstawy Sparka od A do Z… 

Może sprawdzisz kurs “Fundament Apache Spark”?

“Podobno” niektórzy od tego kursu… zaczęli całą przygodę z branżą;-).

Jak oczyścić dane w sparku? Castowanie, funkcje, nulle, regexpy itd. [wideo]

Jak oczyścić dane w sparku? Castowanie, funkcje, nulle, regexpy itd. [wideo]

Dziś kontynuujemy temat pierwszego kontaktu z danymi. W wideo opowiadam nieco o rzutowaniu (cast), funkcjach jak split, regexpach czy walce z nullami. Oczywiście wszystko z wykorzystaniem Apache Spark. Zapraszam!

A! Ważna informacja… tylko do końca stycznia można zakupić kurs “Fundament Apache Spark”. Nie zwlekaj z poznaniem jednej z najważniejszych technologii w branży.

Podstawowy problem, czyli… “how to clean data in spark?”

Przypominam jeszcze, jeśli nie jesteś członkiem newslettera, po zaciągnięciu się na nasz okręt dostajesz na wejściu prawie 140 stron ebooka o Big Data! Nie zwlekaj;-)

 

Loading
Jak załadować dane do Apache Spark? [Wideo]

Jak załadować dane do Apache Spark? [Wideo]

Po przerwie wracam z… poradnikami! Do końca stycznia zajmujemy się jeszcze Apache Spark, bo i do końca stycznia można zakupić kurs “Fundament Apache Spark”.

Dzisiaj zajmiemy się takimi tematami jak:

  • Zapoznawanie się z danymi
  • Ładowanie danych do Sparka z csv
  • Wstępna obróbka danych i łączenie różnych źródeł w jeden dataset

A to wszystko na danych z Twittera;-).

Podstawowy problem czyli… “How to load data in Spark”?

Przypominam jeszcze, jeśli nie jesteś członkiem newslettera, po zaciągnięciu się na nasz okręt dostajesz na wejściu prawie 140 stron ebooka o Big Data! Nie zwlekaj;-)

 

Loading
Apache Spark – Jak ŁATWO i PRZYJEMNIE zacząć programować? [wideo] [jesień]

Apache Spark – Jak ŁATWO i PRZYJEMNIE zacząć programować? [wideo] [jesień]

Jak zacząć naukę z Apache Spark? W dzisiejszy wideo nurkujemy w kod. Pokazuję od A do Z jak pracować z danymi na bardzo, bardzo prostym przykładzie. Zobaczysz jak stworzyć ultra prostą aplikację sparkową oraz jak na bazie prawdziwego datasetu policzyć średnie ceny pizzy w amerykańskich sieciówkach.

Jak zacząć z Apache Spark?

Przy okazji: niedługo opublikuję kurs online ze Sparka.

Zapisz się tutaj na specjalny newsletter, nie przegap okienka w którym kurs się ukaże.

I otrzymaj oczywiście zniżkę;-)

Przypominam jeszcze, jeśli nie jesteś członkiem newslettera, po zaciągnięciu się na nasz okręt dostajesz na wejściu prawie 140 stron ebooka o Big Data! Nie zwlekaj;-)

 

Loading
Co to jest Spark? Dla kompletnie zielonych. [wideo] [jesień]

Co to jest Spark? Dla kompletnie zielonych. [wideo] [jesień]

Co to jest Apache Spark? Po co go używamy? Jak on działa? O tym wszystkim w nowym wideo z serii jesiennej!

Przy okazji: niedługo opublikuję kurs online ze Sparka.

Zapisz się tutaj na specjalny newsletter, nie przegap okienka w którym kurs się ukaże.

I otrzymaj oczywiście zniżkę;-)

Co to jest Apache Spark? Wideo dla początkujących

Przypominam jeszcze, jeśli nie jesteś członkiem newslettera, po zaciągnięciu się na nasz okręt dostajesz na wejściu prawie 140 stron ebooka o Big Data! Nie zwlekaj;-)

 

Loading
Hadoop i kod (Java API). Krótki poradnik od 0 [wideo] [jesień]

Hadoop i kod (Java API). Krótki poradnik od 0 [wideo] [jesień]

Czas na ostatnie wideo na temat Hadoopa. Pokazuję w nim jak operować na plikach HDFS, wykorzystując Javę. Zapraszam serdecznie!

HDFS i Java API – samo mięso

Ankieta o której mówię jest dostępna pod tym linkiem.

Tutaj pobierzesz maszynę wirtualną, która będzie pomocna przy ćwiczeniach Hadoopa.

Zachęcam do subskrypcji kanału na YouTube!

Dzięki temu nie przegapisz żadnego wideo z serii jesiennej!

Wideo obejrzysz tutaj:

Ankieta o której mówię jest dostępna pod tym linkiem.

 

Przypominam jeszcze, jeśli nie jesteś członkiem newslettera, po zaciągnięciu się na nasz okręt dostajesz na wejściu prawie 140 stron ebooka o Big Data! Nie zwlekaj;-)

 

Loading
HDFS w praktyce – poradnik DLA POCZĄTKUJĄCYCH (HDFS Shell i budowa) [wideo] [jesień]

HDFS w praktyce – poradnik DLA POCZĄTKUJĄCYCH (HDFS Shell i budowa) [wideo] [jesień]

W poprzednim wideo poznaliśmy to czym jest Hadoop. Dzisiaj pociągniemy temat, ale już dużo bardziej praktycznie. Zależało mi bardzo na tym, żeby pokazać jak ta praktyka ma się do rzeczywistości. Pokazałem więc między innymi jak architektura którą omawiałem w poprzednim wideo, ma się do mojego klastra z którego korzystam na co dzień.

Przede wszystkim jednak – wskazałem w jaki sposób popracować z plikami wykorzystując do tego HDFS Shell.

Zapraszam do oglądania!

Jak działa HDFS? Sama praktyka

Poniżej wideo o którym mówię. Poprzednie wprowadzające do Hadoopa – można obejrzeć pod tym linkiem.

Tutaj pobierzesz maszynę wirtualną, która będzie pomocna przy ćwiczeniach Hadoopa.

Zachęcam do subskrypcji kanału na YouTube!

Dzięki temu nie przegapisz żadnego wideo z serii jesiennej!

Wideo obejrzysz tutaj:

 

Przypominam jeszcze, jeśli nie jesteś członkiem newslettera, po zaciągnięciu się na nasz okręt dostajesz na wejściu prawie 140 stron ebooka o Big Data! Nie zwlekaj;-)

 

Loading
Co to jest (i jak działa) Hadoop? DLA KOMPLETNIE ZIELONYCH [Wideo] [jesień]

Co to jest (i jak działa) Hadoop? DLA KOMPLETNIE ZIELONYCH [Wideo] [jesień]

Niedawno zacząłem nową serię – serię jesienną, gdzie zgłębiamy podstawy technologii Big Data. Będziemy kroczek po kroczku poznawać absolutne podstawy. Celem jest “zahaczka” dla każdego, kto chce ruszyć z tematem, ale nie ma pomysłu jak to zrobić:-).

W pierwszym wideo odpowiadałem na pytanie “co to jest Big Data?”obejrzysz pod tym linkiem.

Co to jest Hadoop?

Drugie wideo to rozpoczęta miniseria o Hadoopie. Konkretnie:

  • Co to jest Hadoop
  • Jakie komponenty zawiera Hadoop
  • Jak działa Hadoop
  • Jak powstał – czemu jest tak bardzo ważny?
  • Jaka jest architektura HDFS?

Zachęcam do subskrypcji kanału na YouTube!

Dzięki temu nie przegapisz żadnego wideo z serii jesiennej!

Wideo obejrzysz tutaj:

 

Przypominam jeszcze, jeśli nie jesteś członkiem newslettera, po zaciągnięciu się na nasz okręt dostajesz na wejściu prawie 140 stron ebooka o Big Data! Nie zwlekaj;-)

 

Loading
Użytkownicy, grupy, uprawnienia – Linux na skróty. [Notatka techniczna #1]

Użytkownicy, grupy, uprawnienia – Linux na skróty. [Notatka techniczna #1]

Być może to absurdalne, ale co jakiś czas muszę sobie przypominać naprawdę podstawowe rzeczy. Takie, do których aż głupio się przyznać. Z jednej strony z pewnością nie jest to powód do dumy i należy nad tym pracować. Z drugiej – pozwala mi to nabrać odpowiedniej pokory. I przydaje się ona szczególnie podczas szkoleń, gdy widzę jak kursanci nie pamiętają podstawowych poleceń, składni itd. Najgłupszą rzeczą którą mógłbym zrobić byłoby irytowanie się na nich. Fakt, że sam ma takie problemy pomaga mi lepiej podejść w takich sytuacjach;-).

Dzisiaj o takich “głupotkach” w kontekście linuxa.

Baza wiedzy

Dzisiaj jeden ze sposobów na poradzenie sobie z tym. Baza Wiedzy – coś co bardzo, bardzo polecam. Nie polegamy jedynie na głowie, ale spisujemy to co mamy zapamiętać w jednym miejscu, do którego możemy zajrzeć. To może być zwykły zeszyt, może być dokument na Google Drive – cokolwiek. Dzięki temu nie tylko mamy do czego się odnieść, ale też powtarzamy sobie zapisując “po swojemu”. Dzisiaj wyjątkowo taką bazą wiedzy chcę się podzielić. Wpadłem na pomysł, że raz na jakiś czas będę robił notatki techniczne.

Takie notatki techniczne nie będą tutorialem, ale skrótowym zapisem teorii lub wykonania czegoś, co po raz kolejny muszę odkrywać na nowo.

Kawa w dłoń i lecimy z tematem. Dzisiaj notatka o Linuxie. A konkretnie o użytkownikach, grupach i uprawnieniach.

Aha, warto nadmienić że ja pracuję obecnie na Ubuntu. No to lecimy już serio.

Uprawnienia w Linux (centos, ubuntu, obojętnie)

Typy uprawnień:

  1. Read
  2. Write
  3. Execute

Typy pliku:

  1. d – Folder (directory)
  2. s – Plik specjalny (special file)
  3. – (zwykły plik – regular file, oznaczany jako taki właśnie myślnik)

Jak sprawdzić uprawnienia?

Wchodzimy w odpowiedni folder w którym chcemy sprawdzić uprawnienia plików (i folderów).

Wpisujemy polecenie ls -l

Interesuje nas to co jest po lewej stronie konkretnego pliku – czyli 10 znaków.

Dla pliku Bogata Polska Emerytura:

  1. Pierwszy znak określa jaki to rodzaj pliku: “-” czyli zwykły plik
  2. Kolejne 3 określaja uprawnienia właściciela: “rw-” czyli właściciel może czytać i zapisywać (read, write).
  3. Kolejne 3 określają uprawnienia innych członków grupy: “r–” czyli mogą oni jedynie czytać (read)
  4. Kolejne 3 określają uprawnienia wszystkich innych osób: “r–” czyli także muszą zadowolić się przeczytaniem (read)

Warto dodać, że użytkownik i grupa są widoczny w kolejnych rubrykach – tutaj to właściciel root (po lewej) i grupa także root (po prawej).

Zmiana uprawnień w linuxie

  1. Zmiana właściciela pliku: chown <user> <file or directory>
  2. Zmiana grupy pliku (analogicznie do [1]): chgrp <groupname> <file or directory>
  3. Zmiana właściciela i grupy w tym samym momencie: chown <new owner>:<new group> <file or directory>

Grupy

Są dwa rodzaje grup: primary (każdy ma dokładnie jedną) i secondary (zero lub więcej).

Polecenia:

  1. Tworzenie nowej grupy: groupadd <group name>
  2. Wylistowanie wszystkich grup: getent group
  3. Wylistowanie wszystkich grup użytkownika:
    • swoje grupy: group
    • grupy użytkownika username: groups username
  4. Tworzenie nowego użytkownika (username) z primary group (users) i secondary groups (wheel, developers): useradd -g users -G wheel,developers username
    • ja osobiście wolę bardziej wysokopoziomowe narzędzie adduser i utworzenie tam użytkownika, a następnie operacje na grupach
  5. Dodawanie istneijącego użytkownika do grupy: usermod -a -G <group name> <user name>
    • -a oznacza append. Bez tego użytkownik zostanie dodany do grupy, ale usunięty z innych
    • -G oznacza że chcemy dodać do grupy
  6. Usuwanie użytkownika z grupy: gpasswd -d <user name> <group name>
  7. Usuwanie grupy: groupdel <group name>
    • Ważne: grupa musi być pusta
  8. Czyszczenie grupy z wszystkich użytkowników: groupmems -p -g <group name>

Tworzenie użytkownika w Linux (centos, ubuntu, obojętnie)

Polecenia:

  1. Podstawowe utworzenie użytkownika: useradd -m username
    • Tu tworzymy użytkownika z grupą “username”
    • -m wymusza utworzenie razem z katalogiem domowym (domyślnie /home/username)
  2. Tworzenie z pominięciem hasła: adduser –disabled-password –gecos “” username
    • dostępne tylko na ubuntu i centos!
    • Pamiętajmy, żeby zabezpieczyć dostępem przez ssh.
  3. Tworzenie z uprawnieniami admina: usermod -aG sudo username
  4. Usuwanie użytkownika: deluser username
  5. Usuwanie wraz z usunięciem home directory: deluser –remove-home username
  6. Zmiana hasła:
    • swojego: passwd (trzeba tu podać obecne hasło a potem nowe)
    • innego użytkownika (jako root): passwd username (podajemy tylko nowe)

Nie uciekaj!!

I to tyle! Mam nadzieję, że notatka pomocna. Mi na pewno pomoże w przyszłości :D. Zapraszam Cię, zostań w naszej społeczności big datowej na dłużej.

Specjalnie dla Ciebie przygotowałem ebooka “Szlakiem Big Data”. Opisuję tam naszą branżę z wielu różnych stron. W sam raz dla początkujących.

A być może zaciekawi Cię podcast “Big Data Po Polsku”! Daj znać jak Ci się podoba;-)

Zapisz się na newsletter i bądźmy w kontakcie!

 

Loading