Flowman Maven Pluginin käyttäminen - Flowmanin dokumentaatio (2023)

Sisällysluettelon sivupalkki päälle/pois

Tämä dokumentaatio kuvaa virtaviivaisempaa kehitystyönkulkuaApache Mavenkäyttöönottotyökaluna. Maven valittiin yksinkertaisesti, koska voidaan olettaa, että tämä on olemassa Big Data -ympäristössä, joten vaaditaan lisäasennusta kehittäjäkoneille tai CI/CD-infrastruktuurille.

Flowman Maven Pluginin käyttäminen - Flowmanin dokumentaatio (1)

Toisin kuin kohdassa kuvattu konservatiivisempi lähestymistapaKlassinen työnkulku Mavenin kanssa, käytämme Flowman Maven -laajennusta, joka vähentää merkittävästi Mavenin monimutkaisuuttapom.xml.

1. Uuden projektin luominen Maven-arkkityypistä#

Ensin sinun on luotava uusi Flowman-projekti. Voit joko kopioida/liitä jostain virallisista Flowman-esimerkeistä tai luoda uuden projektin toimitetusta Maven-arkkityypistä. Tämä voidaan tehdä seuraavasti:

mvn arkkityyppi:generate \ -DarchetypeGroupId=com.dimajix.flowman.maven \ -DarchetypeArtifactId=flowman-archetype-quickstart \ -DgroupId= \ - DartifactId=

Tämä luo uuden hakemiston, joka näyttää seuraavalta:

├── config│ ├── oletusnimiavaruus.yml│ └── flowman-env.sh├── flow│ ├── config│ │ ├─│ │ │ ──│ s.ml. yml│ │ ├ ── yhteydet.yml│ │ └── ympäristö.yml│ ├── documentation.yml│ ├── työ│ │ └── main.yml│───ym. ml│ ├── malli│ │ ├── mittaukset-raw.yml│ │ └── mittaukset.yml│ ├── projekti.yml│ ├── schema│ │ └──son │ │ ───son. ├── dokumentaatio .yml│ │ └── mittaukset.yml│ ── testi│ └── test-measurements.yml├── käyttöönotto.xml├── pom.xml─d READ─.

Projekti tarjoaa runkorakenteen, jossa on seuraavat kokonaisuudet:

  • Pari suhdetta (yksi lähdemittaukset_raakaja kaksi pesuallastamitatjamittaukset_raaka)

  • Pari karttaa mittaustietojen poimimiseksimittaukset_raaka

  • Kaksi kohdetta purettujen mittausten kirjoittamiseen tiedostoina ja JDBC-tietokantaan

  • Yksipäätyö sisältää molemmat tavoitteet

  • Pieni testisarjavirtaus/testihakemistosta

  • Jotkut konfigurointivaihtoehdotflow/confighakemistosta

Mavenin rakennusprosessi#

Thepom.xmlarkkityypin luoma versio näyttää seuraavalta:

 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 Minun yhtiöni pika-aloitus 1.0-SNAPSSHOT pom pika-aloitus  UTF-8 UTF-8     com.dimajix.flowman.maven flowman-maven-plugin 0.1.0 totta  käyttöönotto.yml      com.dimajix.flowman.maven flowman-provider-aws 0.1.0     

Kuten näette, Maven-projekti näyttää melkein triviaalilta, muttaflowman-maven-pluginhuolehtii monista toiminnoista.

Käyttöönoton kuvaaja#

Mavenin lisäksipom.xmllöydät myös akäyttöönotto.ymltiedosto, joka sisältää Flowman Maven -laajennuksen pakkaustiedot. Sen sisältö näyttää seuraavalta:

virtausmies: # Määritä käytettävä Flowman-versio versio: 1.0.0 laajennuksia: # Määritä käytettävien lisäosien luettelo - flowman-avro - flowman-aws - flowman-mariadb - flowman-mysql# Luettelo Flowman-projekteja sisältävistä alihakemistoistahankkeita: - virtaus# Määritä mahdollisesti useita rakennettavia uudelleen jaettavia pakettejapaketteja: # Ensimmäinen paketti on nimeltään "distd" distd: # Paketti on "dist"-paketti, eli tar.gz-tiedosto, joka sisältää sekä Flowmanin että projektisi kiltti: dist # Toinen paketti on nimeltään "jard" puutarha: # Paketti on "fatjar"-paketti, eli yksi jar-tiedosto, joka sisältää sekä Flowmanin että projektisi kiltti: fatjar

Tämä käyttöönottokuvaaja luo kaksi pakettia käyttämällä Maven-koordinaatteja (groupId, artifactId ja version)pom.xmltiedosto. Jokainen paketti luodaan erilliseksi luokittelijaksi:

  • Thepuutarhapaketti luo Maven-artefaktin koordinaatteineenmy.company:quickstart:1.0-SNAPSHOT:jar:jard, eli

OmaisuusArvo
ryhmätunnusMinun yhtiöni
artefaktitunnuspika-aloitus
versio1.0-SNAPSSHOT
luokitinpuutarha
pakkauspurkki
  • Thedistdpaketti luo Maven-artefaktin koordinaatteineenmy.company:quickstart:1.0-SNAPSHOT:tar.gz:distdeli

OmaisuusArvo
ryhmätunnusMinun yhtiöni
artefaktitunnuspika-aloitus
versio1.0-SNAPSSHOT
luokitindistd
pakkaustar.gz

Käytämme myöhemmin näitä Maven-koordinaatteja käyttöönottovaiheessa halutun artefaktin hakemiseen artefaktivarastosta (kuten Nexus).

2. Logiikkasi toteuttaminen#

Tämän pienen projektin avulla voit nyt aloittaa liiketoimintalogiikkasi toteuttamisen. Projekti sisältää joitain ennalta määritettyjä suhteita, kartoituksia, töitä ja tavoitteita. Näistä ei ole sinulle suoraa hyötyä, mutta ne antavat sinulle ohjeita, kuinka voit toteuttaa logiikkasi Flowman-kehyksen kanssa.

Sinun tulisi keskittyä seuraaviin kokonaisuuksiin:

  • suhteet, jotka määrittelevät tietolähteet ja nielut

  • tavoitteet, jotka määrittelevät suoritettavat suoritustavoitteet

  • työt, jotka yhdistävät useita toisiinsa liittyviä kohteita yhdeksi suoritettavaksi työksi. Lisäksi saatat haluta säätää ympäristö- ja yhteysasetuksiaconfigalihakemistosta.

Kun olet ottanut käyttöön alkuperäisen logiikkasi, sinun on parempi poistaa kaikki osat alkuperäisestä luurangosta, erityisesti sinun pitäisi poistaa (tai korvata) kaikki kartoitukset, suhteet, työt ja kohteet.

3. Testaa logiikkasi#

Kun olet toteuttanut liiketoimintalogiikkasi ja siivonnut alkuperäiset runkosuhteet, kartoitukset jne., sinun tulee suorittaa ensimmäinen testi paikallisella koneellasi. Voit tehdä tämän joko käyttämällä paikallista Flowman-asennusta (hyvä lähestymistapa Linux-koneissa) tai ajaa Flowmania Docker-säilön sisällä (yksinkertaisin menetelmä kaikissa ympäristöissä, kuten Linuxissa, Windowsissa ja Mac OS:ssä).

Valitse, kuinka Flowman määritetään paikallisesti#

1. Käynnissä asennetun Flowmanin kanssa#

Jotta voit suorittaa testejä paikallisella Flowman-asennuksella, sinun on ensin määritettävä Flowman paikallisella koneellasiasiakirjoissa kuvatulla tavalla.

2. Juokse Dockerin kanssa#

Paljon yksinkertaisempi vaihtoehto kuin paikallisen Flowman-kehitysasennuksen määrittäminen on käyttää valmiita Dockerimageja. Tätä lähestymistapaa suositellaan erityisesti Windows-käyttäjille, mutta se on myös erittäin yksinkertainen Linux- ja Mac-käyttäjille.

satamatyöläinen juosta --rm - of -- Mount tyyppi=sitoa,lähde=,kohde=/opt/flowman/projekti dimajix/flowman:1.0.0-oss-spark3.3-hadoop3.3 lyödä

Flowman Shellin käyttö#

Kun olet päättänyt lähestymistavan (paikallinen asennus tai Docker) Flowmanin käyttämiseen, voit käynnistää Flowman-kuoren helposti

bin/flowshell -f 

Lue lisää Flowman Shellin käytöstävastaava dokumentaatio.

Aina kun muutat jotain projektissasi, voit helposti ladata projektin uudelleen shellissä kautta

hanke lataa uudelleen

4. Koko paketin rakentaminen#

Kun olet tyytyväinen tuloksiisi, voit rakentaa itsenäisen uudelleen jaettavan paketin Mavenin kautta

mvn puhdas Asentaa

Tämä suorittaa kaikki testit ja luo (mahdollisesti useita) paketteja, jotka ovat sisälläkohdehakemistosta. Paketin tyyppi ja tiedot on määriteltykäyttöönotto.ymltiedosto. Yllä oleva esimerkki luo seuraavat kaksi artefaktia:

  • Thepuutarhapaketti luo Maven-artefaktin koordinaatteineenmy.company:quickstart:1.0-SNAPSHOT:jar:jard, eli

OmaisuusArvo
ryhmätunnusMinun yhtiöni
artefaktitunnuspika-aloitus
versio1.0-SNAPSSHOT
luokitinpuutarha
pakkauspurkki
  • Thedistdpaketti luo Maven-artefaktin koordinaatteineenmy.company:quickstart:1.0-SNAPSHOT:tar.gz:distdeli

OmaisuusArvo
ryhmätunnusMinun yhtiöni
artefaktitunnuspika-aloitus
versio1.0-SNAPSSHOT
luokitindistd
pakkaustar.gz

Minkä tyyppinen paketti on parempi (dist vai fatjar), riippuu infrastruktuuristasi ja käyttöönottoputkistosta. Ihmiset, joilla on oma Hadoop-klusteri (Cloudera, AWS EMR), ovat todennäköisesti tyytyväisiä adistpaketti, kun taas ihmiset, joilla on palvelimeton infrastruktuuri (Azure Synapse, AWS EMR serverless) pitävät todennäköisesti parempana täysin itsenäistäfatjarpaketti.

Huomautus Windows-käyttäjille: Maven suorittaa myös kaikki testit Flowman-projektissasi. Hadoop-riippuvuus vaatii nsWinUtilsasentaaksesi koneellesi, lue lisääWindows-ympäristön määrittäminen.

5. Työntäminen etävarastoon#

Tämä vaihe tulisi mahdollisesti suorittaa CI/CD-liukuhihnan kautta (esimerkiksi Jenkins). Tietysti yksityiskohdat riippuvat suuresti infrastruktuuristasi, mutta periaatteessa seuraava komento tekee työn:

mvn ottaa käyttöön

Tämä ottaa pakatun itsenäisen uudelleenjaettavaan arkiston käyttöön etätietovaraston hallinnassa, kuten Nexuksessa. Tietysti sinun on määritettävä asianmukaiset tunnistetiedot Mavenissasisettings.xml(tämä on käyttäjäkohtaiset asetustiedostot, ei osa projektia).

6. Käyttöönotto tuotantoon#

Tämä on vaikein osa ja riippuu täysin rakennus- ja käyttöönottoinfrastruktuuristasi ja kohdeympäristöstäsi (Kubernetes, Cloudera, EMR,…). Mutta yleensä seuraavat vaiheet on suoritettava:

1. Hae uudelleenjaettava paketti etävarastosta#

Voit käyttää Mavenia uudelleen hakemaan oikean paketin kautta

mvn riippuvuus: get - Dartifakti=:::: -Ddest=

Esimerkiksi esimerkkimme tar.gz-paketin lataamiseen tiedostoon/tmphakemistoon, sinun on suoritettava seuraava komento:

mvn riippuvuus: get - Dartifakti=my.company:quickstart:1.0:tar.gz:distd -Ddest=/tmp

2. Pura jakelukelpoinen pakkaus sopivaan paikkaan#

Jos vedit atar.gztiedosto, joka sisältää täyden Flowman "dist"-paketin, sinun on asennettava se. Voit helposti purkaa paketin, jolloin saat täydellisen Flowman-asennuksen (miinus Spark ja Hadoop):

terva xvzf --dist-bin.tar.gz

3. Käytä infrastruktuuria#

Asennushakemistossa voit helposti suorittaa Flowmanin kautta

bin/flowexec -f virtaus testata juosta

Tai voit tietysti myös käynnistää Flowman Shellin kautta

bin/flowshell -f virtaus

References

Top Articles
Latest Posts
Article information

Author: Carlyn Walter

Last Updated: 08/06/2023

Views: 5485

Rating: 5 / 5 (50 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Carlyn Walter

Birthday: 1996-01-03

Address: Suite 452 40815 Denyse Extensions, Sengermouth, OR 42374

Phone: +8501809515404

Job: Manufacturing Technician

Hobby: Table tennis, Archery, Vacation, Metal detecting, Yo-yoing, Crocheting, Creative writing

Introduction: My name is Carlyn Walter, I am a lively, glamorous, healthy, clean, powerful, calm, combative person who loves writing and wants to share my knowledge and understanding with you.