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.
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ähde
mittaukset_raaka
ja kaksi pesuallastamitat
jamittaukset_raaka
)Pari karttaa mittaustietojen poimimiseksi
mittaukset_raaka
Kaksi kohdetta purettujen mittausten kirjoittamiseen tiedostoina ja JDBC-tietokantaan
Yksi
pää
työ sisältää molemmat tavoitteetPieni testisarja
virtaus/testi
hakemistostaJotkut konfigurointivaihtoehdot
flow/config
hakemistosta
Mavenin rakennusprosessi#
Thepom.xml
arkkityypin 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-plugin
huolehtii monista toiminnoista.
Käyttöönoton kuvaaja#
Mavenin lisäksipom.xml
löydät myös akäyttöönotto.yml
tiedosto, 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.xml
tiedosto. Jokainen paketti luodaan erilliseksi luokittelijaksi:
The
puutarha
paketti luo Maven-artefaktin koordinaatteineenmy.company:quickstart:1.0-SNAPSHOT:jar:jard
, eli
Omaisuus | Arvo |
---|---|
ryhmätunnus | Minun yhtiöni |
artefaktitunnus | pika-aloitus |
versio | 1.0-SNAPSSHOT |
luokitin | puutarha |
pakkaus | purkki |
The
distd
paketti luo Maven-artefaktin koordinaatteineenmy.company:quickstart:1.0-SNAPSHOT:tar.gz:distd
eli
Omaisuus | Arvo |
---|---|
ryhmätunnus | Minun yhtiöni |
artefaktitunnus | pika-aloitus |
versio | 1.0-SNAPSSHOT |
luokitin | distd |
pakkaus | tar.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 yhteysasetuksia
config
alihakemistosta.
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äkohde
hakemistosta. Paketin tyyppi ja tiedot on määriteltykäyttöönotto.yml
tiedosto. Yllä oleva esimerkki luo seuraavat kaksi artefaktia:
The
puutarha
paketti luo Maven-artefaktin koordinaatteineenmy.company:quickstart:1.0-SNAPSHOT:jar:jard
, eli
Omaisuus | Arvo |
---|---|
ryhmätunnus | Minun yhtiöni |
artefaktitunnus | pika-aloitus |
versio | 1.0-SNAPSSHOT |
luokitin | puutarha |
pakkaus | purkki |
The
distd
paketti luo Maven-artefaktin koordinaatteineenmy.company:quickstart:1.0-SNAPSHOT:tar.gz:distd
eli
Omaisuus | Arvo |
---|---|
ryhmätunnus | Minun yhtiöni |
artefaktitunnus | pika-aloitus |
versio | 1.0-SNAPSSHOT |
luokitin | distd |
pakkaus | tar.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ä adist
paketti, kun taas ihmiset, joilla on palvelimeton infrastruktuuri (Azure Synapse, AWS EMR serverless) pitävät todennäköisesti parempana täysin itsenäistäfatjar
paketti.
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/tmp
hakemistoon, 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.gz
tiedosto, 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