Spark
Jiang锋时刻
这个作者很懒,什么都没留下…
展开
-
大数据学习之Spark——00Spark项目的pom.xml文件
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&g原创 2020-07-21 21:27:49 · 398 阅读 · 0 评论 -
大数据学习之Spark——01Spark概述
一. Spark初始1. 什么是SparkSpark是一种基于内存的快速, 通用, 可扩展的大数据分析引擎Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。Spark是Scala编写,方便快速编程。2. 总体技术栈Spark Co原创 2020-07-21 22:30:41 · 296 阅读 · 0 评论 -
大数据学习之Spark——02Spark集群安装
一. 安装JDK由于之前的集群安装的是jdk1.7的版本, 所以这里操作相对会麻烦一点安装jdk1.8版本注意:要修改族和组修改配置文件因为之前安装过jdk1.7,如果还是把$PATH,写在前面,不会生效export JAVA_HOME=/usr/java/jdk1.8.0_181export PATH=$JAVA_HOME/bin:$PATH分发给其他虚拟机之前安装jdk时在” /usr/bin”目录下有一个java的连接:进入他指向的连接地址:原创 2020-07-21 22:31:56 · 146 阅读 · 0 评论 -
大数据学习之Spark——03Spark代码初体验(Word Count)
1. Scala代码代码1package com.hjf.coreimport org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}object WordCount { def main(args: Array[String]): Unit = { val conf: SparkConf = new SparkConf() conf.setMaster("local").setApp原创 2020-07-21 23:05:12 · 121 阅读 · 0 评论 -
大数据学习之Spark——04RDD概述及创建
一. RDD概述1. 什么是RDDRDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象。代码中是一个抽象类,它代表一个不可变、可分区、里面的元素可并行计算的集合。2. RDD的五大特性RDD是由一系列partition组成算子(函数)是作用在RDD的partition上的RDD之间有依赖关系分区器是作用在k, v格式的RDD上partition提供数据计算的最佳位置, 利于数据处理的本地化. “计算移动, 数据不移动”原创 2020-07-22 10:28:59 · 286 阅读 · 0 评论 -
大数据学习之Spark——05RDD算子
RDD整体上分为Value类型和Key-Value类型一. Value类型1. map(func)作用:返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成案例:将原RDD中的元素都乘以22. flatMap(func)作用:类似于map,但是每一个输入元素可以被映射为0或多个输出元素(所以func应该返回一个序列,而不是单一元素)案例:3. groupBy(func)作用:分组,按照传入函数的返回值进行分组。将相同的key对应的值放入一个迭代器.原创 2020-07-22 16:54:50 · 235 阅读 · 0 评论 -
大数据学习之Spark——06RDD持久化(控制算子)
一. RDD缓存1. 说明RDD通过persist方法或cache方法可以将前面的计算结果缓存,默认情况下 persist() 会把数据以序列化的形式缓存在 JVM 的堆空间中。但是并不是这两个方法被调用时立即缓存,而是触发后面的action时,该RDD将会被缓存在计算节点的内存中,并供后面重用。通过查看源码发现cache最终也是调用了persist方法,默认的存储级别都是仅在内存存储一份,Spark的存储级别还有好多种,存储级别在object StorageLevel中定义的。2. cac原创 2020-07-23 10:56:21 · 196 阅读 · 0 评论 -
大数据学习之Spark——07数据的读取与保存
Spark的数据读取及数据保存可以从两个维度来作区分:文件格式以及文件系统。文件格式分为:Text文件、Json文件、Csv文件、Sequence文件以及Object文件;文件系统分为:本地文件系统、HDFS、HBASE以及数据库。一. 文件类数据读取与保存1. Text文件2. JSON文件import scala.util.parsing.json.JSON val line: RDD[String] = sc.textFile("./data/person.json") .原创 2020-07-23 20:34:20 · 177 阅读 · 0 评论 -
大数据学习之Spark——08任务提交
一. Standalone模式提交1. Standalone-client提交任务1. 提交命令命令1:./spark-submit --master spark://node01:7077 --class org.apache.spark.examples.SparkPi ../examples/jars/spark-examples_2.11-2.3.1.jar 10命令2:./spark-submit --master spark://node01:7077 --de原创 2020-07-24 09:41:08 · 141 阅读 · 0 评论 -
大数据学习之Spark——09Spark Shuffle
一. Spark Shuffle概念1. 背景reduceByKey会将上一个RDD中的每一个key对应的所有value聚合成一个value,然后生成一个新的RDD,元素类型是<key,value>对的形式,这样每一个key对应一个聚合起来的value。2. 问题聚合之前,每一个key对应的value不一定都是在一个partition中,也不太可能在同一个节点上,因为RDD是分布式的弹性的数据集,RDD的partition极有可能分布在各个节点上。3. 如何聚合Shuffl原创 2020-07-24 10:17:10 · 115 阅读 · 0 评论 -
大数据学习之Spark——10(待补充)
-挖坑原创 2020-07-24 10:38:59 · 94 阅读 · 0 评论 -
大数据学习之Spark——11Spark SQL概述
1. 什么是SparkSQLSpark SQL是Spark用来处理结构化数据的一个模块,它提供了2个编程抽象:DataFrame和DataSet,并且作为分布式SQL查询引擎的作用。我们已经学习了Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduc的程序的复杂性,由于MapReduce这种计算模型执行效率比较慢。所有Spark SQL的应运而生,它是将Spark SQL转换成RDD,然后提交到集群执行,执行效率非常快!Hive是Shark的前身原创 2020-07-24 10:57:58 · 218 阅读 · 0 评论 -
大数据学习之Spark——12DataFrame/DataSet
一. 创建DataFrame1. 读取json文件创建DataFrame1. 说明json文件中的json数据不能嵌套json格式数据。DataFrame是一个一个Row类型的RDD,df.rdd()/df.javaRdd()。可以两种方式读取json格式的文件。df.show()默认显示前20行数据。DataFrame原生API可以操作DataFrame(不方便)。注册成临时表时,表中的列默认按ascii顺序显示列。2. 案例Scala代码val conf: SparkCon原创 2020-07-24 21:30:52 · 274 阅读 · 0 评论