公司动态

Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)(Linux环境 腾讯云 CentOS Linux release 7.5.1804)

📅 2026/8/1 23:50:28
Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)(Linux环境 腾讯云 CentOS Linux release 7.5.1804)
我使用的安装文件是 spark-3.0.0-bin-without-hadoop.tgz 以下内容均以此版本进行说明。使用 without 版本的安装包要进行 spark 和 hadoop 的关联配置【hadoo的版本是3.1.3】。spark-3.0.0-without 单机版1. 安装1.1 解压1.2 配置1.3 Local模式2. 第一个spark案例1. 安装1.1 解压我使用的是之前下载的安装包也可以去官网下载选择 Spark 版本【最新版本是3.1.2】和对应的 Hadoop 版本后再下载。# 解压安装包并移动到/usr/local/下tar-zxvfspark-3.0.0-bin-without-hadoop.tgzmv./spark-3.0.0-bin-without-hadoop/ /usr/local/spark1.2 配置配置环境变量的方法比较多这里统一将环境变量放在 /etc/profile.d/my_env.sh 内。# 配置环境变量[roottcloud spark]# vim /etc/profile.d/my_env.sh# 添加 SPARK_HOME 和 binexportSPARK_HOME/usr/local/sparkexportPATH$PATH:$SPARK_HOME/bin# 使得配置的环境变量立即生效# 首先是要赋权限【只操作一次就行】chmodx /etc/profile.d/my_env.shsource/etc/profile.d/my_env.sh配置 ${SPARK_HOME}/conf/spark-env.sh 文件关联 spark-without-hadoop 和 hadoop【非without版本无需配置】[roottcloud conf]# cp spark-env.sh.template spark-env.sh[roottcloud conf]# vim spark-env.sh# 添加以下内容# 实际就是执行时在 CLASSPATH 中加入 Hadoop 的 Jar 包 【要根据Hadoop的安装路径配置】export SPARK_DIST_CLASSPATH$(/usr/local/hadoop-3.1.3/bin/hadoop classpath)1.3 Local模式Local 模式是最简单的一种运行方式它采用单节点多线程方式运行适合日常测试开发使用。# 启动spark-shell[roottcloud spark]# spark-shell --master local[*]2021-07-3014:55:56,588 WARN util.NativeCodeLoader: Unable to load native-hadoop libraryforyour platform... using builtin-java classes where applicable Setting default log level toWARN.To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). Spark context Web UI available at http://tcloud:4040 Spark context available assc(masterlocal[*], appidlocal-1627628171095). Spark session available asspark.Welcome to ____ __ / __/__ ___ _____/ /__ _\\/ _\/ _ / __/ _/ /___/ .__/\_,_/_/ /_/\_\version3.0.0 /_/ Using Scala version2.12.10(Java HotSpot(TM)64-Bit Server VM, Java1.8.0_251)Typeinexpressions to have them evaluated. Type :helpformoreinformation. scalalocal只启动一个工作线程local[k]启动 k 个工作线程local[*]启动跟 cpu 数目相同的工作线程数。进入 spark-shell 后程序已经自动创建好了上下文 SparkContext 等效于执行了下面的 Scala 代码val confnew SparkConf().setAppName(Spark shell).setMaster(local[*])val scnew SparkContext(conf)2. 第一个spark案例词频统计案例应该是大部分学习 spark 的同学测试的第一个案例安准备一个词频统计的文件样本 word.txt 内容如下hadoop,spark,hive spark,hive,hbase,kafka hadoop,hive,spark在 scala 交互式命令行中执行如下 Scala 语句【就这么一句就能实现词频统计 Java开发能想象到吗 】sc.textFile(file:///home/spark/testFile/word.txt).flatMap(_.split(,)).map((_,1)).reduceByKey(__).saveAsTextFile(file:///home/spark/testFile/wordCount)词频统计的结果[roottcloud testFile]# cat ./wordCount/part-00000(spark,3)(hive,3)(hadoop,2)(kafka,1)(hbase,1)同时还可以通过 Web UI 查看作业的执行情况访问端口为 4040