https://github.com/moscicky/data-warehouse
https://github.com/moscicky/data-warehouse
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/moscicky/data-warehouse
- Owner: moscicky
- Created: 2020-01-17T18:21:05.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-01-22T16:30:27.000Z (over 6 years ago)
- Last Synced: 2025-04-04T14:49:46.926Z (about 1 year ago)
- Language: Scala
- Size: 1.48 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### Data warehouse

### Tworzenie jara
1. Stwórz obiekt ETLa z metodą main w pakiecie `executables`. Wykorzystaj klasę ETL.
Ważne żeby dodać `enableHiveSupport()` i parametryzować ścieżki do plików jak w przykładzie.

1. Wybierz `File > Project Structure > Artifacts`
Kliknij `+` w lewym górnym rogu. Wybierz `JAR` a następnie
`empty`

1. Kliknij `+` wybierz `Module Output` a następnie `data-warehouse`

1. Wybierz `Build > Build Artifacts...`. Z listy wybierz swojego jara
i kliknij `Build`.

1. Jar zostanie umieszczony w folderze `out/artifcats`
### Odpalanie na klastrze
1. wgraj pliki wejściowe na swój bucket do folderu `warehouse-input` na google storage:
AirQuality.csv
CityofLondonPoliceOutcomes.txt
CityofLondonPoliceRecords.csv
MetropolitanPoliceServiceOutcomes.txt
MetropolitanPoliceServiceRecords.csv
Norm.csv
Source.csv
Pliki `Norm.csv` oraz `Source.csv` znajduja się w katalogu `src/main/scala/warehouse/data`
1. z shella VMki na klastrze przekopiuj pliki z bucketa na klaster
gsutil cp -r gs:///warehouse-input .
1. stwórz folder na pliki wejściowe na hdfs
hadoop fs -mkdir -p input
1. przekopiuj pliki wejściowe z klastra na hdfs
hadoop fs -copyFromLocal warehouse-input/* input/
1. (opcjonalnie) przekopiuj jara na klaster
gsutil cp -r gs:///etl.jar .
1. odpal spark-shella i włącz tryp wklejania
spark-shell
:paste
1. wklej zawartość pliku `SparkShellLoad.scala`
1. klinij enter i `crtl + d`, obiekty powinny się utworzyć
1. stwórz schemat tabel
val schema = new SchemaCreator(spark)
schema.createAll()
1. wyjdź ze spark shella `crl + d`
1. odpal etla wskazując ścieżkę do maina. PRZYKŁAD:
spark-submit --class warehouse.executables.TimeTableEtl \
--master yarn --num-executors 5 --driver-memory 512m \
--executor-memory 512m --executor-cores 1 etl.jar input true
zmieniająć parametr `--class` na jedną z klas w `executables` uruchamiamy wybranego ETLA
Ostatnie dwa argumenty oznaczają
1) folder z plikami wejściowymi
2) czy używać małych wersji plików
### Odpalanie wszystkiego
```
spark-submit --class warehouse.executables.TimeTableEtl \
--master yarn --num-executors 5 --driver-memory 512m \
--executor-memory 512m --executor-cores 1 etl.jar input false
spark-submit --class warehouse.executables.SourceTableEtl \
--master yarn --num-executors 5 --driver-memory 512m \
--executor-memory 512m --executor-cores 1 etl.jar input false
spark-submit --class warehouse.executables.AirPollutionTypeEtl \
--master yarn --num-executors 5 --driver-memory 512m \
--executor-memory 512m --executor-cores 1 etl.jar input false
spark-submit --class warehouse.executables.CrimeTypeEtl \
--master yarn --num-executors 5 --driver-memory 512m \
--executor-memory 512m --executor-cores 1 etl.jar input false
spark-submit --class warehouse.executables.LocationEtl \
--master yarn --num-executors 5 --driver-memory 512m \
--executor-memory 512m --executor-cores 1 etl.jar input false
spark-submit --class warehouse.executables.OutcomeTypeEtl \
--master yarn --num-executors 5 --driver-memory 512m \
--executor-memory 512m --executor-cores 1 etl.jar input false
spark-submit --class warehouse.executables.CrimeTableEtl \
--master yarn --num-executors 5 --driver-memory 512m \
--executor-memory 512m --executor-cores 1 etl.jar input false
spark-submit --class warehouse.executables.AirQualityTableEtl \
--master yarn --num-executors 5 --driver-memory 512m \
--executor-memory 512m --executor-cores 1 etl.jar input false
```
### Zeppelin
Zaimportuj plik `Zeppelin_Analysis.json` do Zeppelina i uruchom.