首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

在 YARN 上運行 Spark 1.6.0:叢集模式部署與調優實戰

     編輯:Java 綜合教學

環境規劃

  • Hadoop 2.7.1:/data/hadoop/current
  • Scala 2.11.7:/data/scala(指向 scala-2.11.7)
  • Spark 1.6.0(預編譯 for Hadoop 2.6):/data/hadoop/spark
  • 僅需在提交端安裝 Spark,Worker 節點由 YARN 動態拉取

Scala 安裝與環境變數

tar 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

Spark 關鍵配置(spark-env.sh)

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 數

SparkSQL CLI 限制

spark-sql --master yarn **僅支援 client 模式**,因互動式需即時回顯結果,cluster 模式下 Driver 位置不固定無法互動。

常見錯誤與對策

錯誤原因修正
unknown queue: thequeueYARN 無此隊列改 --queue default 或建立對應隊列
SPARK_CLASSPATH was detected舊版環境變數殘留移除 spark-env.sh 中設定,改用 --driver-class-path

整合 Hive 讓 SparkSQL 直查 Hive 表

# 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 批次處理平台。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved