spark笔记

spark简介

saprk 有六个核心组件:

SparkCore、SparkSQL、SparkStreaming、StructedStreaming、MLlib,Graphx

SparkCore

相当于Hadoop中的MapReduce,用于大规模离线批处理计算

SparkSQL

相当于Hive(稍微类似),用于交互式计算

注意:
1.交互式计算:用户界面中的查询条件进行过滤查询,然后交给SparkSQL进行处理,产生输出数据。速度比较快
2.交互式计算框架:Presto、Impala、Kylin、Druid等

SparkStreaming

相当于storm,用于实时流式计算。(准实时)

实时流式计算
1.实时:处理速度快,秒级别或毫秒级别
2.流式:处理数据比较少,但是是持续不断的,作业job不能停止。

StructedStreaming

类似SparkStreaming,不同点在于StructedStreaming基于SparkSQL,而SparkStreaming基于SpringCore。

Mllib

类似scikit-learning,Hadoop中的Mahout,用于分布式的机器学习算法

Graphx

用于图计算,主要适用于神经网络,图遍历之类的场景。

spark基本概念

application

应用程序,可以有多个job

job

一个作业,可以有多个stage阶段

stage

一个阶段,可以有多个task任务

task

一个任务,执行逻辑计算

clustermanager

集群管理器,譬如yarn、mesos、k8s、standalone等。

1.master
主节点,比如Yarn中的ResourceManager(RM)
2.worker
从节点,比如Yarn中的NodeManager(NM)

executor

1.执行器,一个运行某个stage中的各个task的进程。类似Yarn中的Container。

2.Yarn中的Container运行的一个task,task运行后就杀死进程。executor运行一个stage钟的所有taskset,整个stage阶段完成后就杀死进程。executor中有个线程池,每个线程运行一个task

driver

1.驱动器,有一部分功能类似于Yarn中的ApplicationMaster。

2.Driver功能:

a)将一个job中的各个 RDD串联起来,成为一个DAG(有向无环图)调度图
b)将DAG图拆分成各个Stage阶段(DAGScheduler)
c)类似于ApplicationMaster,任务申请与调度。(TaskScheduler)

spark分布式环境

配置

修改conf目录下的slaves、spark-default.conf、spark-env.sh

slaves:
slave1、slave2
spark-default.conf
spark.master spark://master:7077 (没有Ip映射写主机ip地址)
spark-env.sh
JAVA_HOME=xxxx (本机jdk目录)

启动

sbin/start-all.sh

访问

<master主机名/ip>:8080

说明

端口号:
7077:master rpc端口号
8080:master http端口号

注:rpc(remote process call)远程过程调用

启动流程

【start-all.sh】-> 加载【spark-config.sh】->调用
【start-master.sh】及【start-slaves.sh】->加载【spark-config.sh】及【load-spark-env.sh】->调用【spark-daemon.sh】->调用【spark-class.sh】或(【spark-submit.sh】->【spark-class.sh】)

运行模式

local、local-cluster、standalone、yarn、mesos

注:https://www.iteblog.com/archives/1223.html (yarn-client与yarn-cluster区别)

入门实例

单词统计

sc.textFile("/home/hduser/app/spark/README.md").flatMap(line=>line.split(" ")).map(word => (word,1)).reduceByKey((x,y) => x+y).collect()

RDD 概念

RDD:弹性分布式数据集,spark的第一个数据结构。只读的。

RDD特性

a)RDD是各个分区的集合,包含多个分区Partition

b)RDD的分区使用多种算子操作进行计算

c)RDD之间存在依赖关系
根据是否经过shuffle流程拆分成窄依赖和宽依赖 d)<k,v>形式的RDD需要重新分区,可指定分区器Partitioner,默认是HashPartitioner
单值形式的RDD中的分区数,依赖于父RDD中的分区数 e)数据本地性(RDD中的分区优先加载本地的数据)

创建RDD

集合并行化

val list = List(1,2,3,4,5)
val rdd = sc.parallelize(list)
rdd.collect

读取外部数据源

val rdd = sc.textFile(README.md)
rdd.collect

算子操作

rdd算子根据生成的数据类型分成transformation(转换)和action(动作)

tarnsformation

从RDD转换为另一个RDD

ation

将RDD中的数据进行输出

简单案例

开发工具

IDEA + maven

Manven简介

功能

maven:自动化构建工具

1.依赖包管理
2.自动构建(编译->测试->打包->安装->发布->运行)

安装配置

配置conf/setttings.xml

    <!—本地仓库位置-->
<localRepository>D:/repository</localRepository>
<!—配置中央仓库与远程仓库的镜像,主要原因是仓库访问比较慢,使用镜像快 mirrorOf如果是*,这个镜像是所有中央仓库和远程仓库的镜像;
mirrorOf如果是central,只是中央仓库的镜像
-->
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

配置环境变量

【计算机】->【高级系统设置】->【高级】->【环境变量】

MAVEN_HOME=D:\apache-maven

path=xxx;%MAVEN_HOME%\bin

测试

命令行中执行 mvn –v

正确显示

Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: C:\Program Files\apache-maven-3.6.0\bin\..
Java version: 12, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-12
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

spark笔记 环境配置的更多相关文章

  1. windows下spark开发环境配置

    http://www.cnblogs.com/davidwang456/p/5032766.html windows下spark开发环境配置 --本篇随笔由同事葛同学提供. windows下spark ...

  2. Spark 单机环境配置

    概要 Spark 单机环境配置 JDK 环境配置 Spark 环境配置 python 环境配置 Spark 使用示例 示例代码 (order_stat.py) 测试用的 csv 文件内容 (order ...

  3. Windows下Spark单机环境配置

    1. 环境配置 a)  java环境配置: JDK版本为1.7,64位: 环境变量配置如下: JAVA_HOME为JDK安装路径,例如D:\software\workSoftware\JAVA 在pa ...

  4. spark开发环境配置

    以后spark,mapreduce,mpi可能三者集于同一平台,各自的侧重点有所不用,相当于云计算与高性能计算的集合,互补,把spark的基础看了看,现在把开发环境看看,主要是看源码,最近Apache ...

  5. [Struts2学习笔记] -- 环境配置

    在创建好WebProject后,就可以开始进行Struts2的环境配置,可以到Struts2官网下载,本环境使用struts-2.3.24.1版本. 首先导入必要的jar包到WebProject的/W ...

  6. mac下spark单机环境配置笔记

    1.安装scala 从http://www.scala-lang.org下载scala-2.11.7.tgz并解压缩 将解压缩的文件夹用mv指令移动到/usr/local/share mv [scal ...

  7. Hadoop/Spark开发环境配置

    修改hostname bogon 为localhost 查看ip地址 [training@bogon ~]$ sudo hostname localhost [training@bogon ~]$ h ...

  8. 02-tornado学习笔记-环境配置

    Ubuntu16.04开发环境 1.ubuntu默认root用户没有激活,激活root用户,就要为root用户创建密码   $sudo passwd root   2.修改主机名   $vi /etc ...

  9. Metasploit学习笔记——环境配置

    <Metasploit渗透测试魔鬼训练营>书56页开始配置网络环境,一共五台机器,攻击机换成了自己更常用的kali,配置方法和back track相同. kali(攻击机) 10.10.1 ...

随机推荐

  1. Servlet 容器

    Servlet容器主要是JavaWeb应用提供运行时环境,所以也可以称之为JavaWeb应用容器,或者Servlet/JSP容器.Servlet容器主要负责管理Servlet.JSP的生命周期以及它们 ...

  2. Codechef July Challenge 2019 Hit the Coconuts

    假设现在有一堆数,我想要保证能取出一个,至少需要敲 (数的个数)*(这些数里的最小值)那么把这些数从大到小排序,$dp[i][j]$ 表示前 $i$ 个里面保证能取出 $j$ 个需要敲的次数.$dp[ ...

  3. OpenCV 学习笔记(10)HSV颜色空间及颜色空间转换(RGB-HSV)

    1.1 颜色空间介绍 RGB 颜色空间是大家最熟悉的颜色空间,即三基色空间,任何一种颜色都可以由该三种 颜色混合而成.然而一般对颜色空间的图像进行有效处理都是在 HSV 空间进行的,HSV(色 调 H ...

  4. MongoDB mongoimport 从csv导入数据指定字段类型

    mongoimport:指定字段的类型,防止将数字型的字符串导入成数值类型 1.正常模式导入 mongoimport -d idpad_zl -c trs_action_dzwl_zm --type ...

  5. luogu_4317: 花神的数论题

    花神的数论题 题意描述: 设\(sum(i)\)表示\(i\)的二进制数中\(1\)的个数. 给定一个整数\(N\),求\(\prod_{i=1}^Nsum(i)\). 输入描述: 输入包含一个正整数 ...

  6. artillery 学习一 简单使用

    artillery 是一个不错的负载测试套件,功能很强大,支持多协议 安装 npm install -g artillery --unsafe-perm 运行一个简单的快速测试 artillery q ...

  7. JS的ES6扩展

    1.字符串扩展 1. includes(str) : 判断是否包含指定的字符串 2. startsWith(str) : 判断是否以指定字符串开头 3. endsWith(str) : 判断是否以指定 ...

  8. public private protected 修饰符整理

    1.public定义的类或方法:任何类的实例都可以访问 2.private定义的属性和方法:只能该类内部使用:如果子类要访问父类的private属性:必须实现__set()和__get()方法: 3. ...

  9. React-HelloWorld

    React-HelloWorld 最简单的React示例如下: ReactDOM.render( <h1>Hello,world!</h1>, document.getelem ...

  10. 20190815网络与信息安全领域专项赛线上赛misc WriteUp

    目录 签到题 题目内容 使用工具 解题步骤 七代目 题目下载地址 使用工具 解题步骤 亚萨西 题目下载链接 使用工具 解题步骤 24word 题目下载链接 使用工具 解题步骤 感想 几星期前报了名却完 ...