Spark的安装和初体验

Spark的安装和初体验

电脑环境:
操作系统:win10
java:jdk1.8
python:python3.7
Hadoop:没装Hadoop(准备使用spark自带的集群计算模块,但是后面发现在win上使用还是需要下载hadoop避免一些编码上的错误)

下载地址:

http://spark.apache.org/downloads.html

这里选择了“spark-2.3.3-bin-hadoop2.7”版本的spark
————————————————————————————————————————
安装:直接解压

测试:
1.命令行进入spark文件夹的bin目录下,输入spark-shell进入scale shell。
结果:报错信息如下

ERROR Shell: Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

错误原因:spark内置的Hadoop组件适用于linux系统,在win上使用的话需要重新编译

解决方法:
1:下载hadoop2.8.3(进入官网download选择release(其他版本)),并下载winutil(对应的hadoop版本的)。
2:配置hadoop的环境路径(HADOOP_HOME=“HADOOP所在目录” , path添加;%HADOOP_HOME%\bin;)
参考博客:

https://blog.csdn.net/songhaifengshuaige/article/details/79480491


再次测试:
1:测试scala-shell
(1)命令行进入spark的bin目录:输入spark-shell
(2)输入val lines = sc.textFile("file = ///D:/spark/spark-2.3.3-bin-hadoop2.7/README.md") 注:读取文件的路径如果不是绝对路径的话就会在bin目录下寻找文件,绝对路径必须在路几个前面加上file = /// ,且路径中的 \ 符号会被识别为转义符,必须全部改成 / 符号。
(3)输入 lines.count() 结果:103
(4)输入 linees.first() 结果:res8: String = # Apache Spark

2:测试pyspark
(1)命令行进入spark的bin目录:输入pyspark
(2)输入lines = sc.textFile("D:\spark\spark-2.3.3-bin-hadoop2.7\README.md") //创建一个名伟lines的RDD(spark的基本单位)
(3)输入 lines.count() 输出:’# Apache Spark’
(4)输入 linees.first() 输出:103


spark核心概念简介:

每个spark应用都是由一个驱动器程序(driver program)来发起集群上的并行操作。驱动器程序包含应用的main函数,并且定义了集群上的分布式数据集,还对这些分布式数据集应用了相关操作。

spark启动时已经自动创建了一个SparkContext对象,是一个叫做sc的变量。一旦有了SparkContext,就可以用它来创建RDD。如用sc.textFile来创建一个代表文件中各行文本的RDD。

要执行这些操作,驱动器程序一般要管理多个执行器(excutor)节点。比如我们在集群上进行count()操作,那么不同节点会统计文件不同部分的行数。如果在本地模式下运行spark shell,所有工作都会在单个节点上进行。


初始化SparkContext:

可以现创建一个SparkConf对象来配置你的应用,然后基于这个SparkConf来创建一个SparkContext对象。多种语言如下


python版:

from pyspark import SparkConf , SparkContext
conf = SparkConf().setMaster("local").setAppName("My App")
sc = SparkContext(conf = conf)

然后在spark的bin目录下用spark-submit my_sript.py来运行python文件


scala版本

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
val conf = new SparkConf().setMaster("local").setAppName("My App")
 val sc = new SparkContext(conf)

java版本

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;
SparkConf conf = new SparkConf().setMaster("local").setAppName("My App");
JavaSparkContext sc = new JavaSparkContext(conf);

这些例子展示了创建SparkContext的最基本方法,你只需要传递连个参数:
(1)集群url:告诉spark如何连接到集群上。这里使用了local,这个特殊值可以使spark运行在单机单线程上而无需连接到集群。
(2)应用名:在例子中我们使用了My App。当连接到集群时,这个值可以帮助你在集群管理器的用户界面中找到你的应用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值