Provisioning, Spark / Hms

Jeonghak Choยท2025๋…„ 6์›” 1์ผ

Provisioning

๋ชฉ๋ก ๋ณด๊ธฐ
33/44

๐Ÿ“— ํ”„๋กœ๋น„์ €๋‹ - Spark / Docker

๐Ÿณ๏ธโ€๐ŸŒˆ [๊ถ๊ธˆํ•œ์ ]

  • Hive 4.0.1์— ์—ฐ๊ฒฐํ•˜์—ฌ Spark๋กœ Query๋ฅผ ๋‚ ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•

๐Ÿ”—[๋ชฉ์ฐจ]

Spark ์„ค์น˜

1๏ธโƒฃ ์ค€๋น„

hms ์„ค์น˜

HMS ํ”„๋กœ๋น„์ €๋‹

2๏ธโƒฃ ์„ค์ •

๋„์ปค ๋„คํŠธ์›Œํฌ ์ƒ์„ฑ

docker network create mynetwork

3๏ธโƒฃ ์„ค์น˜

Spark Master ์„ค์น˜

docker run -d \
  --name spark-master \
  -e SPARK_MODE=master \
  -p 8080:8080 \
  -p 7077:7077 \
  --network mynetwork \
  bitnami/spark:3.5.1

Spark Worker ์„ค์น˜

docker run -d \
  --name spark-worker \
  -e SPARK_MODE=worker \
  -e SPARK_MASTER_URL=spark://spark-master:7077 \
  --link spark-master \
  -p 8081:8081 \
  --network mynetwork \
  bitnami/spark:3.5.1

4๏ธโƒฃ ๊ฒ€์ฆ - ์„ค์น˜ ํ™•์ธ

Spark Shell ์‹คํ–‰

docker exec -it spark-master spark-shell \
  --master spark://spark-master:7077 \
  --conf spark.hadoop.hive.metastore.uris=thrift://hms:9083 \
  --conf spark.sql.catalogImplementation=hive

Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
25/06/01 08:35:14 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Spark context Web UI available at http://e4bcb6bf79eb:4040
Spark context available as 'sc' (master = spark://spark-master:7077, app id = app-20250601083515-0000).
Spark session available as 'spark'.
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 3.5.1
      /_/

Using Scala version 2.12.18 (OpenJDK 64-Bit Server VM, Java 17.0.12)
Type in expressions to have them evaluated.
Type :help for more information.

scala>

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ํ™•์ธ

spark-shell \
  --conf spark.sql.catalog.myhive=hive \
  --conf spark.hadoop.hive.metastore.uris=thrift://localhost:9083

spark-shell \
  --master spark://spark-master:7077 \
  --conf spark.hadoop.hive.metastore.uris=thrift://hms:9083 \
  --conf spark.sql.catalogImplementation=hive

scala> spark.conf.get("spark.sql.catalogImplementation")
res0: String = hive

scala> spark.conf.get("spark.hadoop.hive.metastore.uris")
res1: String = thrift://localhost:9083

scala> spark.sql("SHOW DATABASES").show()
+---------+
|namespace|
+---------+
|  default|
|     mydb|
+---------+

0๊ฐœ์˜ ๋Œ“๊ธ€