千家信息网

Spark如何安装、配置及基础使用

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下Spark如何安装、配置及基础使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!7. Spark此主题介
千家信息网最后更新 2026年11月03日Spark如何安装、配置及基础使用

小编给大家分享一下Spark如何安装、配置及基础使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

7. Spark

此主题介绍Spark的安装、配置及基础使用。

Spark基本信息

官网:http://spark.apache.org/官方教程:http://spark.apache.org/docs/latest/programming-guide.html

7.1. 环境准备

# 切换到工作空间cd /opt/workspaces# 创建Spark数据目录mkdir data/spark# 创建Spark日志目录mkdir logs/spark

官方教程

http://spark.apache.org/docs/latest/spark-standalone.html

7.2. 安装

wget http://mirrors.hust.edu.cn/apache/spark/spark-1.6.1/spark-1.6.1-bin-hadoop2.6.tgztar -zxf spark-1.6.1-bin-hadoop2.6.tgzrm -rf spark-1.6.1-bin-hadoop2.6.tgzmv spark-1.6.1-bin-hadoop2.6 ./frameworks/spark

7.3. 配置(伪分布式)

vi ./frameworks/spark/conf/spark-env.sh

export SPARK_MASTER_IP=bdexport SPARK_MASTER_PORT=7077export MASTER=spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}# 指定Spark数据目录export SPARK_LOCAL_DIRS=/opt/workspaces/data/spark/# 指定Spark日志目录export SPARK_LOG_DIR=/opt/workspaces/logs/spark/# 指定JDK目录export JAVA_HOME=/opt/env/java# 指定Scala目录export SCALA_HOME=/opt/env/scala

7.4. 启动与停止

./frameworks/spark/sbin/start-all.sh

7.5. 测试

# 执行圆周率计算示例./frameworks/spark/bin/run-example  org.apache.spark.examples.SparkPi./frameworks/spark/bin/spark-submit \  --class org.apache.spark.examples.SparkPi \  --master spark://bd:6066\  --deploy-mode cluster \  --driver-memory 512M \  --executor-memory 256M \  #如果运行出错请改大些  ./frameworks/spark/lib/spark-examples-1.6.1-hadoop2.6.0.jar \  1000

7.6. Word Count


http://spark.apache.org/docs/latest/quick-start.html

Word Count

./frameworks/spark/bin/spark-shell// 基础版val textFile = sc.textFile("./frameworks/spark/README.md")val words = textFile.flatMap(line => line.split(" "))val exchangeVal = words.map(word => (word,1))val count = exchangeVal.reduceByKey((a,b) => a + b)count.collect// 优化版sc.textFile("./frameworks/spark/README.md").flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).collect// 带排序sc.textFile("./frameworks/spark/README.md").flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).map(_.swap).sortByKey(false).map(_.swap).collect// 最终版val wordR="""\w+""".rsc.textFile("./frameworks/spark/README.md").flatMap(_.split(" ")).filter(wordR.pattern.matcher(_).matches).map((_,1)).reduceByKey(_ + _).map(_.swap).sortByKey(false).map(_.swap).saveAsTextFile("hdfs://bd:9000/wordcount")

可以访问 http://:8080 查看作业

7.7. 参数说明

  • 在哪配置:

Spark properties (Spark属性)在应用程序中通过SparkConf 对象设置,或通过Java系统属性设置。
Environment variables (环境变量)指定各节点的设置,如IP地址、端口,配置文件在conf/spark-env.sh中。
Logging (日志)可以通过log4j.properties配置日志。

  • Spark properties

在代码中指定配置

val conf = new SparkConf()             // 指定使用2个本地线程来运行,本地模式下,我们可以使用n个线程(n >= 1),但在像Spark Streaming这样的场景下,我们可能需要多个线程             .setMaster("local[2]")             .setAppName("CountingSheep")val sc = new SparkContext(conf)

在脚本中指定配置

./bin/spark-submit --name "My app" --master local[4] --conf spark.eventLog.enabled=false  --conf "spark.executor.extraJavaOptions=-XX:+PrintGCDetails -XX:+PrintGCTimeStamps" myApp.jar

Table 1. 常用配置

属性名称默认值说明

spark.app.name


Spark应用的名字

spark.driver.cores

1

在cluster模式下运行driver进程的核数

spark.driver.memory

1g

driver进程可以用的内存总量(如:1g,2g),client模式下无效果,必须要在命令行里用 -driver-memory 或者在默认属性配置文件里设置

spark.executor.memory

1g

单个executor使用的内存总量(如,2g,8g)

spark.master


集群管理器URL

  • Environment variables

环境变量在${SPARK_HOME}/conf/spark-env.sh脚本中设置

Table 2. 常用配置

模式属性名称默认值说明

JAVA_HOME


Java安装目录


SCALA_HOME


Scala安装目录


SPARK_LOCAL_IP


本地绑定的IP


SPARK_LOG_DIR

${SPARK_HOME}/logs

日志目录

standalone

SPARK_MASTER_IP

(当前IP)

Master IP

standalone

SPARK_MASTER_PORT

7077(6066)

Master 端口

standalone

MASTER


默认Master URL

standalone

SPARK_WORKER_CORES

所有

每个节点使用的CPU core上限

standalone

SPARK_WORKER_MEMORY

本节点所有内存减去1GB

每个节点使用的内存上限

standalone

SPARK_WORKER_INSTANCES

1

每个节点启动的worker实例个数

standalone

SPARK_WORKER_PORT

随机

Worker绑定的端口


如果你的slave节点性能非常强劲,可以把SPARK_WORKER_INSTANCES设为大于1;相应的,需要设置SPARK_WORKER_CORES参数限制每个worker实例使用的CPU个数,否则每个worker实例都会使用所有的CPU。
  • Logging

日志在${SPARK_HOME}/conf/log4j.properties中设置

  • Hadoop集群配置

使用HDFS时需要从Hadoop中复制hdfs-site.xml、 core-site.xml到Spark的classpath中


http://spark.apache.org/docs/latest/configuration.html

7.8. 资源调度

standalone目前只支持简单的先进先出(FIFO)调度器。这个调度器可以支持多用户,你可以控制每个应用所使用的最大资源。默认情况下,Spark应用会申请集群中所有的CPU。

在代码中限制资源

val conf = new SparkConf()             .setMaster(...)             .setAppName(...)             .set("spark.cores.max", "10")val sc = new SparkContext(conf)

在配置文件 spark-env.sh中限制资源

export SPARK_MASTER_OPTS="-Dspark.deploy.defaultCores="

7.9. 性能调优


http://spark.apache.org/docs/latest/tuning.html

7.10. 硬件配置

每个节点:
* 4-8块磁盘
* 8G以上内存
* 千兆网卡
* 8-16核CPU

至少3个节点


http://spark.apache.org/docs/latest/hardware-provisioning.html

7.11. 整合Hive

  • 在spark-env.sh中添加配置项

    # Hive目录export HIVE_HOME=$HIVE_HOME

SPARK_CLASSPATH

有些教程中说要添加
export SPARK_CLASSPATH=$HIVE_HOME/lib/mysql-connector-java-x.jar:$SPARK_CLASSPATH
但目前版本不需要此配置,并且添加上去会导致zeppelin运行出错:
org.apache.spark.SparkException: Found both spark.driver.extraClassPath and SPARK_CLASSPATH. Use only the former.

  • 复制Hive的几个配置文件

    cp ./frameworks/hive/conf/hive-site.xml ./frameworks/spark/confcp ./frameworks/hive/conf/hive-log4j.properties ./frameworks/spark/conf
  • 启动thriftserver,用于对外提供JDBC服务

    ./frameworks/spark/sbin/start-thriftserver.sh
  • 测试连接

    ./frameworks/spark/bin/beeline!connect jdbc:hive2://bd:10000show tables;

以上是"Spark如何安装、配置及基础使用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

配置 目录 节点 日志 内存 属性 基础 文件 模式 资源 应用 运行 实例 教程 环境 端口 篇文章 线程 集群 调度 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳恒合互联网络科技有限公司 北京互联网科技公司 互联网科技媒体 互联网科技小额贷款 互联网高科技股票 互联网科技视频素材 互联网科技宣传片 华脉科技工业互联网产品 青海省互联网新科技 隆华科技工业互联网 互联网之后的科技是什么 昭通互联网科技选哪家 江阴互联网智能科技产品进口 中国互联网十大科技股排名 996高科技互联网公司 领航科技大厦互联网公司 互联网科技包装股份有限公司上市 山东大美朱楼互联网科技有限公司 互联网科技企业商标注意事项 科技发展第三阶段互联网时代 深圳市人人互联网科技有限公司 互联网与科技发展 北京互联网科技 北京互联网科技有限公司 互联网科技公司招聘 科技赋能互联网健康 崇明区互联网教育科技售后服务 合肥互联网科技公司公章图片 美国五大互联网科技公司市值多少 互联网领先科技成果宣传视频
0