/data/hadoop/current/data/scala(指向 scala-2.11.7)/data/hadoop/sparktar xzf scala-2.11.7.tgz -C /data
ln -s /data/scala-2.11.7 /data/scala
echo 'export SCALA_HOME=/data/scala' >> /etc/profile
echo 'export PATH=$SCALA_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
HADOOP_CONF_DIR=/data/hadoop/current/etc/hadoop
YARN_CONF_DIR=/data/hadoop/current/etc/hadoop
# 整合 Hive 時另加:
# export HIVE_HOME=/data/hadoop/hive
./bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
--driver-memory 4g \
--executor-memory 2g \
--executor-cores 1 \
--queue default \
lib/spark-examples*.jar 10
--deploy-mode cluster:Driver 運行於 YARN 容器內,適合生產排程--queue:對應 YARN Capacity/Fair Scheduler 隊列,**必須存在**--executor-cores:每 Executor 核心數,影響並行 Task 數spark-sql --master yarn **僅支援 client 模式**,因互動式需即時回顯結果,cluster 模式下 Driver 位置不固定無法互動。
| 錯誤 | 原因 | 修正 |
|---|---|---|
| unknown queue: thequeue | YARN 無此隊列 | 改 --queue default 或建立對應隊列 |
| SPARK_CLASSPATH was detected | 舊版環境變數殘留 | 移除 spark-env.sh 中設定,改用 --driver-class-path |
# spark-env.sh
export HIVE_HOME=/data/hadoop/hive
# 複製 hive-site.xml、hive-log4j.properties 到 $SPARK_HOME/conf/
./spark-sql --master yarn --driver-class-path /data/hadoop/hive/lib/mysql-connector-java-5.1.38-bin.jar
# 進入後 show tables 即可見 Hive 表
掌握 YARN Cluster 模式部署細節,配合資源隊列規劃與 Hive 整合,即可構建穩定高效的 Spark 批次處理平台。