先安装 scala, spark 支持的是 scala 2.10 和 2.11, 下载 2.11版本
下载 对应的spark 版本的源码, 注意要选择 匹配hadoop 版本的 spark 版本
执行命令
hdfs dfs -mkdir /spark-logs
mkdir -p /opt/tmp/spark-work
mkdir -p /opt/logs/spark
cd /opt/spark/conf
cp spark-env.sh.template spark-env.sh
cp spark-defaults.conf.template spark-defaults.conf
cp slaves.template slaves
ln -s $HIVE_HOME/conf/hive-site.xml ./hive-site.xml
rm -rf /opt/spark/jars/slf4j-log4j12-*.jar # 删除有冲突的jar 包
修改spark-env 的相关配置 (配置项可选)
export SPARK_DIST_CLASSPATH=$($HADOOP_HOME/bin/hdfs classpath)
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
export SPARK_LAUNCH_WITH_SCALA=0
export SPARK_WORKER_MEMORY=26g
export SPARK_DRIVER_MEMORY=26g
export SPARK_MASTER_HOST=txz-data0
export SPARK_MASTER_WEBUI_PORT=18080
export SPARK_WORKER_DIR=/opt/tmp/spark-work # worker 工作目录
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_PORT=7078
export SPARK_LOG_DIR=/opt/logs/spark
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_PID_DIR=/opt/tmp/spark-work
修改spark-defaults.conf
spark.master spark://txz-data0:7077
spark.eventLog.enabled true
# spark 事件启动日志
spark.eventLog.dir hdfs://txz-data0:9820/spark-logs
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.executor.memory 12g
spark.driver.memory 12g
spark.executor.extraJavaOptions -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"
# 告诉 yarn 去哪里查看 spark 的history 地址
spark.yarn.historyServer.address txz-data0:19889
# spark job 执行日志
spark.history.fs.logDirectory hdfs://txz-data0:9820/spark-log
将spark 复制到 DN 所在的节点上,配置好 slaves
配置好 spark 环境变量
export SPARK_HOME=/opt/spark
export SPARK_LOG_DIR=/opt/logs/spark
export PATH=$SPARK_HOME/bin:$PATH
执行 /sbin/start-all.sh
启动spark, 访问 web 查看状态, 这里启动的是 spark 自带的 Standalone 模式
确认是否支持 hive ,执行 <SPARK_HOME>/bin/pyspark
from pyspark.sql import HiveContext
记得要删除有冲突的jar包, 如 /opt/spark/jars/slf4j-log4j12-*.jar
如果spark 构建在 HA HDFS上, 则需要指定好 HADOOP_CONF_DIR , 来帮助 Spark 找到正确的 core-site.xml 和 hdfs-site.xml