Repositori ini merupakan tugas besar mata kuliah Big Data dan AI yang menerapkan 4 model berbeda untuk mendeteksi money-laundering dan dihubungkan melalui clustering PySpark. Adapun dataset yang digunakan adalah : IBM Transactions for Anti-Money Laundering
Note: XGBoost dan CatBoost tidak dilakukan pada cluster karena tidak didukung oleh PySpark, sehingga dhasil prediksi machine learning diambil dari notebook XGBoost dan CatBoost yang terpisah.
- Mirekel Ilham Akbar - 103012330486 (Merge Notebook dan setup PySpark)
- Ilham Fadhillah Sanni - 103012300263 (Model Random Forest)
- Bimantara Ardi Winata - 103012300282 (Model CatBoost)
- Ezra Hafizh Raditya - 103012330244 (Model XGBoost)
- Kayla Zahra Nafaiza - 103012300219 (Model SVM)
┌─────────────────────────────────────────────────────┐
│ spark://<MASTER_IP>:7077 │
│ │
│ [Master Node] ←──── Jupyter Notebook (driver) │
│ │ │
│ ┌────┴────┐ │
│ │Worker 1 │ RAM: 8GB │ Dataset: lokal │
│ │Worker 2 │ RAM: 8GB │ Dataset: lokal │
└──┴─────────┴────────────────────────────────────────┘
- Python
- JDK17
- Apache Spark
- Jupyter notebook (master) Note : Pastikan versi python dan JDK yang digunakan worker dan master sama untuk menghindari inkompabilitas
Pastikan setiap worker memiliki library berikut :
- PySpark
- XGBoost
- CatBoost
- Scikit-learn
- Matplotlib
- Seaborn
- Pandas
- Numpy
- PyArrow
Library tersebut dapat diinstal melalui cmd dengan menggunakan command berikut :
pip install pyspark xgboost catboost scikit-learn matplotlib seaborn pandas numpy pyarrow
| Variable | Value |
|---|---|
JAVA_HOME |
C:\Program Files\Java\jdk-17 (sesuaikan dengan direktori JDK terinstal) |
SPARK_HOME |
C:\spark (sesuaikan dengan direktori spark terinstal) |
HADOOP_HOME |
C:\spark (sesuaikan dengan direktori spark terinstal) |
PATH |
Tambahkan %SPARK_HOME%\bin dan %JAVA_HOME%\bin |
- Clone repository ini dengan menjalankan git clone
<url>pada cmd - Letakkan CSV (atau parquet jika sudah konversi) pada path direktori yang sama pada setiap worker dan master
- Pada notebook unified, sesuaikan IP Master dan Path CSV serta parquet
MASTER_IP = "<IP Master>" # ← IP master node (sesuaikan) DRIVER_IP = "<IP Master>" # ← IP yang dipakai driver untuk bindPada windows, IP dapat dicek melalui cmd dengan menjalankanCSV_PATH = "<PATH CSV>" # ← Sesuaikan PARQUET_PATH = "<PATH Parquet>" # ← Sesuaikanipconfig - Pada master, buka direktori tempat PySpark diinstal dan jalankan spark master melalui cmd dengan command berikut :
.\bin\spark-class.cmd org.apache.spark.deploy.master.Master --host <IP Master> --port 7077 --webui-port 8080 - Cek spark master pada
<IP Master>:7077dan<IP Master>:8080. Pastikan keduanya berjalan - Pada setiap worker, buka direktori tempat PySpark diinstal dan jalankan spark worker melalui cmd dengan command berikut :
.\bin\spark-class.cmd org.apache.spark.deploy.worker.Worker spark://<IP Master>:7077 --host <IP Worker> --port 7078 --webui-port 8081
- Pada master, buka cmd pada direktori tempat notebook diletakkan dan jalankan jupyter notebook
- Jalankan notebook (Cell konversi CSV -> .parquet cukup dijalankan sekali saja)
- Clone repository ini dengan menjalankan git clone
<url>pada cmd - Pada PC mana saja, buka cmd pada direktori tempat notebook diletakkan dan jalankan jupyter notebook
- Pilih notebook XGboost / CatBoost dan jalankan pada jupyter notebook