2024-08-05 23:23:34 +02:00
|
|
|
x-spark-common:
|
|
|
|
&spark-air
|
|
|
|
build:
|
|
|
|
context: .
|
|
|
|
dockerfile: spark.Dockerfile
|
|
|
|
target: spark
|
|
|
|
|
|
|
|
services:
|
|
|
|
spark:
|
|
|
|
<<: *spark-air
|
|
|
|
environment:
|
|
|
|
- SPARK_MODE=master
|
|
|
|
ports:
|
|
|
|
- '7077:7077'
|
|
|
|
configs:
|
|
|
|
- source: run_sql
|
|
|
|
target: /spark-script/run_sql.sh
|
|
|
|
mode: 0755
|
|
|
|
- source: create_table
|
|
|
|
target: /spark-script/create-table.sql
|
|
|
|
mode: 0755
|
|
|
|
- source: query_table
|
|
|
|
target: /spark-script/query-table.sql
|
|
|
|
mode: 0755
|
|
|
|
spark-worker:
|
|
|
|
<<: *spark-air
|
|
|
|
environment:
|
|
|
|
- SPARK_MODE=worker
|
|
|
|
- SPARK_MASTER_URL=spark://spark:7077
|
|
|
|
- SPARK_WORKER_MEMORY=1G
|
|
|
|
- SPARK_WORKER_CORES=1
|
2024-08-06 00:02:20 +02:00
|
|
|
|
2024-08-05 23:23:34 +02:00
|
|
|
configs:
|
|
|
|
run_sql:
|
|
|
|
content: |
|
|
|
|
set -ex
|
|
|
|
|
|
|
|
spark-sql --packages org.apache.iceberg:iceberg-spark-runtime-3.2_2.12:1.1.0,org.apache.hadoop:hadoop-aws:3.3.2\
|
|
|
|
--master spark://spark:7077 \
|
|
|
|
--conf spark.sql.catalog.demo=org.apache.iceberg.spark.SparkCatalog \
|
|
|
|
--conf spark.sql.catalog.demo.type=hadoop \
|
|
|
|
--conf spark.sql.catalog.demo.warehouse=s3a://hummock001/iceberg-data \
|
|
|
|
--conf spark.sql.catalog.demo.hadoop.fs.s3a.endpoint=http://minio-0:9301 \
|
|
|
|
--conf spark.sql.catalog.demo.hadoop.fs.s3a.path.style.access=true \
|
|
|
|
--conf spark.sql.catalog.demo.hadoop.fs.s3a.access.key=hummockadmin \
|
|
|
|
--conf spark.sql.catalog.demo.hadoop.fs.s3a.secret.key=hummockadmin \
|
|
|
|
--conf spark.sql.defaultCatalog=demo \
|
|
|
|
-f /spark-script/$1.sql
|
|
|
|
|
|
|
|
query_table:
|
|
|
|
content: |
|
|
|
|
SELECT * from demo.demo_db.demo_table;
|
|
|
|
create_table:
|
|
|
|
content: |
|
|
|
|
drop table if exists demo.demo_db.demo_table;
|
|
|
|
|
|
|
|
CREATE TABLE demo.demo_db.demo_table
|
|
|
|
(
|
|
|
|
user_id bigint,
|
|
|
|
ad_id bigint,
|
|
|
|
click_timestamp timestamp,
|
|
|
|
impression_timestamp timestamp
|
|
|
|
) TBLPROPERTIES ('format-version'='2');
|
|
|
|
name: iceberg
|