Spark-Notebook 集群与云平台配置指南
概述
本文将详细介绍如何在不同的集群环境和云平台上配置和运行Spark-Notebook项目。Spark-Notebook是一个基于Web的交互式数据分析环境,支持Apache Spark。我们将重点讲解在安全YARN集群、Amazon EMR(不同版本)以及Mesosphere DCOS上的配置方法。
安全YARN集群配置
基本配置
在安全YARN集群上运行Spark-Notebook需要特别注意Kerberos认证和资源管理。以下是关键配置步骤:
-
环境变量设置:
export HADOOP_CONF_DIR=/etc/hadoop/ # 可选调试模式 # export HADOOP_JAAS_DEBUG=true
-
内存调优:
- 显式设置
spark.yarn.am.memoryOverhead
和spark.yarn.executor.memoryOverhead
值 - 添加
spark.yarn.archive
(可使用与Spark、Scala和Hadoop版本完全相同的Apache Spark归档文件)
- 显式设置
示例笔记本元数据
{
"customSparkConf": {
"spark.app.name": "Notebook",
"spark.master": "yarn-client",
"spark.executor.memory": "4G",
"spark.driver.memory": "4G",
"spark.yarn.am.memoryOverhead": "1024",
"spark.yarn.executor.memoryOverhead": "1024",
"spark.yarn.driver.memoryOverhead": "1024",
"spark.warehouse.dir": "/users/spark/warehouse",
"spark.yarn.archive": "hdfs:/user/spark/spark_yarn_archive.zip"
}
}
Kerberos认证
对于安全集群访问,Spark-Notebook需要有效的Kerberos凭据:
-
在启动Spark-Notebook前执行
kinit
-
设置cron任务定期更新凭据:
kinit -V -k -t /some-path/spark.headless.keytab -r 7d spark@somerealm.com
-
多用户场景下,需要配置用户模拟功能
Amazon EMR配置
Amazon EMR提供了托管Hadoop和Spark服务。我们将介绍不同EMR版本的配置方法。
EMR 3.x版本
环境信息
- YARN集群管理器
- Hadoop 2.4.0
- Spark 1.3.1
- Hive 0.13.1
- Scala 2.10.4
安装与配置
-
安装Spark-Notebook:
wget [预构建包URL] tar xvzf spark-notebook-0.6.0-scala-2.10.4-spark-1.3.1-hadoop-2.4.0-with-hive-with-parquet.tgz mv spark-notebook-0.6.0-scala-2.10.4-spark-1.3.1-hadoop-2.4.0-with-hive-with-parquet spark-notebook
-
配置application.conf:
custom { sparkConf { spark.local.dir="/mnt/spark,/mnt1/spark" spark.driver.extraClassPath="..." spark.master="yarn-client" # 其他配置... } }
-
运行命令:
export HADOOP_CONF_DIR=/home/hadoop/conf export EXTRA_CLASSPATH=/home/hadoop/share/hadoop/common/lib/hadoop-lzo.jar:/home/hadoop/hive/conf ./bin/spark-notebook -Dconfig.file=./conf/application.conf -Dhttp.port=8989
EMR 4.x版本
EMR 4.x系列有多个子版本,配置略有不同。
4.0版本环境
- Hadoop 2.6.0
- Spark 1.4.1
- Hive 1.0.0
4.2版本环境
- Hadoop 2.6.0
- Spark 1.5.2
- Hive 1.0.0
关键配置差异
-
类路径设置:
- 4.2版本需要更详细的类路径配置
- 增加了额外的Java选项
-
运行环境变量:
export SPARK_LOCAL_IP=$(ec2-metadata -o | cut -d ' ' -f2) export SPARK_LOCAL_HOSTNAME=$(ec2-metadata -h | cut -d ' ' -f2) export CLASSPATH_OVERRIDES=...
-
Spark Assembly路径:
- 不同版本对应不同的assembly jar路径
Mesosphere DCOS配置
虽然文档中未详细说明,但Spark-Notebook也可以配置在Mesosphere DCOS(基于Mesos)上运行。关键配置包括:
- 设置
spark.master
为Mesos master地址 - 配置适当的资源分配
- 确保网络连接和端口访问
最佳实践
-
持久化运行:
- 使用
screen
或nohup
保持会话
screen -m -d -S "snb" bash -c '...'
- 使用
-
访问方式:
- SSH端口转发(推荐)
- 安全组开放端口(不推荐生产环境)
-
监控:
- 通过YARN UI监控应用状态
- 检查Spark事件日志
总结
本文详细介绍了Spark-Notebook在不同集群环境和云平台上的配置方法。关键点包括:
- 安全YARN集群需要Kerberos认证和适当的内存配置
- Amazon EMR不同版本需要特定的依赖和配置
- 持久化运行和安全的访问方式是生产环境的关键考虑因素
通过遵循这些指南,您可以在各种环境中成功部署和使用Spark-Notebook进行大数据分析。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考