Centos7下Spark下载与安装

Centos7下Spark安装

  • 电脑系统:macOS 10.15.4
  • 虚拟机软件:Parallels Desktop14
  • 操作系统:CentOS 7
  • JDK版本:jdk1.8.0_162
  • Hadoop版本:hadoop-2.6.0-cdh5.9.3
  • Scala版本:scala-2.11.12
  • Spark版本:spark-2.4.6-bin-hadoop2.6

第一步:软件下载或编译

首先第一步先找到spark的下载地址:

在这里插入图片描述
在这里插入图片描述
解释:这里我选择的是spark的2.4.6的版本,原因是我的Hadoop安装的是2.6的版本,这里也可以自己的配置去选择。如果是选择2.4.6版本的话,则官网是给我们提供编译好的版本就不需要我们自己再编译。如上图所示,spark2.4.6均提供好Hadoop2.6和2.7的编译版本,但是低于2.6的版本就是需要我们自己下载源码再去编译。同时也要注意Scala的版本。

第二步:安装软件

(1)上传文件

将本机的安装包上传到虚拟机node1,上传方式:

scp 本机的文件绝对路径 caizhengjie@10.211.55.49:/opt/Hadoop

(2)解压文件

上传成功之后需要对文件赋予权限

chmod u+x spark-2.4.6-bin-hadoop2.6.tgz

解压文件:

tar -zxvf spark-2.4.6-bin-hadoop2.6.tgz

创建软链接:

ln -s spark-2.4.6-bin-hadoop2.6 spark

第三步:Spark的本地模式运行测试

进入spark目录下,这是开启spark

[caizhengjie@node1 spark]$ bin/spark-shell 

在这里插入图片描述
这是一个spark的本地模式的运行测试

下面我们做一个词频统计:
/opt/datas目录下,新建一个stu.txt文件,内容如下:

java python hadoop
spring python hadoop java c c++
hbase spark scala
scala python java
linux unix java php
mysql hive hue
scala> val rdd = spark.read.textFile("/opt/datas/stu.txt")
rdd: org.apache.spark.sql.Dataset[String] = [value: string]

统计行数

scala> rdd.count()
res2: Long = 6

以数组的方式返回文件中所有的单词

scala> val lines = rdd.flatMap(x => x.split(" ")).collect
lines: Array[String] = Array(java, python, hadoop, spring, python, hadoop, java, c, c++, hbase, spark, scala, scala, python, java, linux, unix, java, php, mysql, hive, hue)

给数组中的每个数据生成元祖对

scala> val lines = rdd.flatMap(x => x.split(" ")).map(x => (x,1)).collect
lines: Array[(String, Int)] = Array((java,1), (python,1), (hadoop,1), (spring,1), (python,1), (hadoop,1), (java,1), (c,1), (c++,1), (hbase,1), (spark,1), (scala,1), (scala,1), (python,1), (java,1), (linux,1), (unix,1), (java,1), (php,1), (mysql,1), (hive,1), (hue,1))

给数据分组统计

scala> val lines = rdd.flatMap(x => x.split(" ")).map(x => (x,1)).rdd.reduceByKey((a,b) => (a+b)).collect
lines: Array[(String, Int)] = Array((hbase,1), (scala,2), (spark,1), (hive,1), (hadoop,2), (php,1), (c++,1), (python,3), (mysql,1), (linux,1), (java,4), (hue,1), (spring,1), (c,1), (unix,1))

给数据分组统计并排序

scala> val lines = rdd.flatMap(x => x.split(" ")).map(x => (x,1)).rdd.reduceByKey((a,b) => (a+b)).map(x => (x._2,x._1)).sortByKey().collect
lines: Array[(Int, String)] = Array((1,hbase), (1,spark), (1,hive), (1,php), (1,c++), (1,mysql), (1,linux), (1,hue), (1,spring), (1,c), (1,unix), (2,scala), (2,hadoop), (3,python), (4,java))

第四步:Spark服务WEB监控页面

在这里插入图片描述
在启动spark-shell的时候,我们会发现有web访问的网址,端口号默认是4040
但是去浏览器查看的时候,要输入http://IP:4040

在这里插入图片描述
到此为止,spark的单节点的安装与测试到这里就已经结束了!最大的注意点就是spark的版本问题。

第五步:Spark核心概念简介

现在你已经用shell运行了你的第一段Spark程序,是时候对Spark编程作更细致的了解了。

从上层来看,每个 Spark 应用都由一个 驱动器程序 (driver program)来发起集群上的各种 并行操作。驱动器程序包含应用的 main 函数,并且定义了集群上的分布式数据集,还对这 些分布式数据集应用了相关操作。在前面的例子里,实际的驱动器程序就是 Spark shell 本 身,你只需要输入想要运行的操作就可以了。

驱动器程序通过一个 SparkContext 对象来访问 Spark。 这个对象代表对计算集群的一个连接。 shell 启动时已经自动创建了一个 SparkContext 对象,是一个叫作 sc 的变量。一旦有了 SparkContext, 你就可以用它来创建 RDD。我们可以在这些行上进行各种操 作,比如 count() 。

要执行这些操作,驱动器程序一般要管理多个 执行器 (executor)节点。比如,如果我们在 集群上运行 count() 操作,那么不同的节点会统计文件的不同部分的行数。由于我们刚才是 在本地模式下运行 Spark shell, 因此所有的工作会在单个节点上执行,但你可以将这个 shell 连接到集群上来进行并行的数据分析。下图展示了 Spark 如何在一个集群上运行。
在这里插入图片描述


以上内容仅供参考学习,如有侵权请联系我删除!
如果这篇文章对您有帮助,左下角的大拇指就是对博主最大的鼓励。
您的鼓励就是博主最大的动力!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

<一蓑烟雨任平生>

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值