Spark初体验(配置超详细)

本文详细记录了Spark环境配置、Java代码编写、服务启动和任务提交的全过程,包括更换Linux镜像库、卸载与安装JDK、Scala和Spark,以及配置maven。通过一个简单的计数程序演示了Spark与Java的结合使用,强调了版本一致性和环境配置的重要性。

一乡二里共三夫子不识四书五经六义竟敢教七八九子十分大胆!
十室九贫 凑得八两七钱六分五毫四厘 尚且三心二意 一等下流

spark

前言

  这里,不谈spark原理,作用,使用场景等,只是一个spark与java打通的一个过程。看似简单,整整花了哥两天的时间,版本号的坑,服务器的坑等等,头胀的能飘起来~!按照我下面说的环境和步骤去做,保证你99%能一次跑过,因为我是一边写此篇一边在新的虚拟机配置。一切都ok~

环境

名称 版本号
Linux CentOS Linux release 7.0.1406 (Core)
jdk 1.8.0_121 OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)
scala Scala code runner version 2.10.4 – Copyright 2002-2013, LAMP/EPFL
spark spark-1.6.2-bin-hadoop2.6

环境部署(超详细)

最好把当前Linux的镜像库文件更换掉,这里我用的是163的 传送门 讲解得很详细

卸掉默认的jdk版本

[root@localhost ~]# rpm -qa|grep jdk
java-1.7.0-openjdk-headless-1.7.0.51-2.4.5.5.el7.x86_64
java-1.7.0-openjdk-1.7.0.51-2.4.5.5.el7.x86_64

得到目前jdk的版本,然后删除

yum -y remove java java-1.7.0-openjdk-headless-1.7.0.51-2.4.5.5.el7.x86_64

然后安装下载好的jdk,用到的软件都放在了文末,或者自己去下载或者去各自的官网下载

tar -xvzf jdk-8u121-linux-x64.tar.gz 

解压好之后,创建个软连接,方便以后更改版本

ls -sf /usr/local/software/jdk1.8.0_121/ /usr/local/jdk

按照此方法分别对scala和spark操作,配置后结果如下

.
├── bin
├── etc
├── games
├── include
├── jdk -> /usr/local/software/jdk1.8.0_121
├── lib
├── lib64
├── libexec
├── sbin
├── scala -> /usr/local/software/scala-2.10.4
├── share
├── software
├── spark -> /usr/local/software/spark-1.6.2-bin-hadoop2.6
└── src

然后将其分别添加到系统的全局变量

vi /etc/profile

在文件的最末端添加下面代码,注意格式

export JAVA_HOME=/usr/local/jdk
export SCALA_HOME=/usr/local/scala
export SPARK_HOME=/usr/local/spark
export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH

最后一定要执行下面命令,作用就是即时生效

source /etc/profile

然后就可以查看版本号了

java -version
scala -version

到此,spark的环境就部署好了,我这边代码依赖管理用的是maven,还需要配置下maven环境,
这里我直接用的yum安装了

yum install maven

等待安装完毕,在改一下maven的中央仓库镜像地址,否咋,spark需要的几个jar包会下载到你怕为止.
这里maven的地址可以通过mvn -version去查看

Maven home: /usr/share/maven
Java version: 1.8.0_121, vendor: Oracle Corporation
Java home: /usr/local/software/jdk1.8.0_121/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-123.el7.x86_64", arch: "amd64", family: "unix"

都给你列出来了233333
然后修改mirrors

 vi /usr/share/maven/c
### 如何在头歌平台首次使用 Apache Spark #### 初步准备 Apache Spark 是一种快速通用的大规模数据处理引擎,支持多种编程语言接口(如 Python Scala)。对于初学者来说,可以通过 PySpark 来入门 Spark 的基本操作。PySpark 提供了与 Spark 集成的 Python API,使得数据分析更加直观高效。 要开始使用 Spark 进行初步体验,可以遵循以下方法: #### 下载与安装 Spark 首先需要下载 Spark 并完成基础配置。可以从官方站点获取最新版本Spark 压缩包,并将其解压至本地目录[^2]。 随后需设置环境变量 `SPARK_HOME` 指向 Spark 解压后的根路径,并将 `$SPARK_HOME/bin` 添加到系统的 PATH 中。 #### 启动 Spark 本地模式 如果仅希望在单机环境中测试 Spark 功能,则无需启动完整的集群模式。可以直接通过 pyspark shell 或者提交脚本的方式运行程序。例如,在终端执行如下命令即可进入交互式的 PySpark Shell: ```bash pyspark ``` #### 编写第一个 PySpark 应用程序 下面展示一个简单的 WordCount 实现案例作为入门练习。该例子统计了一组单词出现次数。 ```python from pyspark import SparkConf, SparkContext if __name__ == "__main__": conf = SparkConf().setAppName("word_count").setMaster("local[*]") sc = SparkContext(conf=conf) input_data = ["hello world", "this is a test", "hello again"] rdd_lines = sc.parallelize(input_data) words_rdd = rdd_lines.flatMap(lambda line: line.split()) word_pairs_rdd = words_rdd.map(lambda word: (word, 1)) result_counts = word_pairs_rdd.reduceByKey(lambda x, y: x + y).collect() for word, count in result_counts: print(f"{word}: {count}") sc.stop() ``` 上述代码片段展示了如何创建 RDD 数据结构以及应用转换函数 flatMap()、map() reduceByKey() 对文本进行分割计数[^1]。 #### 推荐资源 除了实际动手编码外,《大数据处理框架 Apache Spark 设计与实现》一书提供了深入的技术剖析,适合进一步研究 Spark 架构原理及其内部工作机制[^3]。 ---
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值