2.Spark
Spark开发
SuperBigData~
大数据行业热爱者,欢迎交流学习,共同进步
展开
-
Spark中读取文件Error while running command to get file permissions : java.io.IOException: (null) entry报错
读取文件问题原创 2023-09-26 20:10:39 · 953 阅读 · 1 评论 -
spark shuffle优化-参数调优
spark shuffle优化-参数调优常用参数列举:spark.reducer.maxSizeInFlight spark.shuffle.compress spark.shuffle.file.buffer spark.shuffle.io.maxRetries spark.shuffle.io.retryWait调优参数一定要设置合理,效率才能事半功倍...原创 2020-05-02 21:34:54 · 351 阅读 · 0 评论 -
一文带你走进Spark中HashShuffle详解机制
Spark中HashShuffle机制一.Shuffle概述二.HashShuffle机制①HashShuffle概述②没有优化之前的HashShuffle机制③优化后的HashShuffle三.Sort-Based Shuffle三种机制①BypassMergeSortShuffleWriter (Bypass机制)②SortShuffleWriter(普通机制)③UnsafeShuffleW...原创 2020-05-02 20:20:38 · 902 阅读 · 0 评论 -
大数据中常见的端口
原创 2020-04-28 22:08:49 · 248 阅读 · 1 评论 -
sparkstreaming中windowoperations原语
美图欣赏:一.背景应用背景:计算的批次间隔不变,但每次展示的结果范围是多个批次间隔的范围,此时最好用SparkStreaming提供的窗口操作实现使用:需要提供两个重要的参数:窗口长度、滑动间隔二.代码实现import org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.streaming.{Dura...原创 2020-04-15 00:21:14 · 209 阅读 · 0 评论 -
sparkstreaming中transform原语
美图欣赏:一.背景借助transform原语可以操作DStream里的RDD,也就是可以用算子的方式间接操作DStream,大大丰富了DStream的api二.代码案例import org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream}import org.apache.spark.streaming.{...原创 2020-04-15 00:16:55 · 296 阅读 · 0 评论 -
sparkstreaming消费kafka数据
美图欣赏:一.sparkstreaming消费kafka数据代码实现package day15import java.langimport org.apache.kafka.clients.consumer.ConsumerRecordimport org.apache.kafka.common.serialization.StringDeserializerimport org...原创 2020-04-14 23:43:41 · 1028 阅读 · 0 评论 -
SparkStreaming中UpdataStateByKey批次累加算子
美图欣赏:一.SparkStreaming中UpdataStateByKey批次累加算子import org.apache.spark.{HashPartitioner, SparkConf, SparkContext}import org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream}import org.a...原创 2020-04-11 19:55:46 · 393 阅读 · 0 评论 -
解决spark中读取本地文件报Unable to open a test connection to the given database错误
美图欣赏:一.程序读取本地的json文件object InputOutputDemo { def main(args: Array[String]): Unit = { val spark = SparkSession.builder() .appName(this.getClass.getName) .master("local[2]") ...原创 2020-04-02 17:27:27 · 1219 阅读 · 0 评论 -
SparkSession的三种创建方式
美图欣赏:一.SparkSession的三种创建方式import org.apache.spark.SparkConfimport org.apache.spark.sql.SparkSession/** * sparksql的初始化 */object SparkSQLDemo { def main(args: Array[String]): Unit = { ...原创 2020-03-31 14:10:58 · 1600 阅读 · 0 评论 -
Spark中创建DataFrame三种方式
美图欣赏:一.背景:在老的版本中,SparkSQL提供两种SQL查询起始点,一个叫SQLContext,用于Spark自己提供的SQL查询,一个叫HiveContext,用于连接Hive的查询,SparkSession是Spark最新的SQL查询起始点,实质上是SQLContext和HiveContext的组合,所以在SQLContext和HiveContext上可用的API在SparkS...原创 2020-03-31 13:36:41 · 954 阅读 · 0 评论 -
spark中自定义分区排序(解决数据倾斜问题)
美图欣赏:一.背景我们都知道Spark内部提供了HashPartitioner和RangePartitioner两种分区策略,这两种分区策略在很多情况下都适合我们的场景。但是有些情况下,Spark内部不能符合咱们的需求,这时候我们就可以自定义分区策略(注:默认是HashPartitioner分区)二.如何实现要实现自定义的分区器,你需要继承 org.apache.spark.Par...原创 2020-03-27 17:43:24 · 680 阅读 · 0 评论 -
Spark集群启动流程
美图欣赏:一.Spark集群启动流程图(1)Spark集群启动流程:1、调用start-all.sh脚本 ,开始启动Master2、Master启动以后, preStart方法调用了一个定时器,定时的检查超时的Worker.(定时器默认时间为60s)3、启动脚本会解析slaves配置文件,找到启动Worker的相应节点,开始启动Worker4、Worker服务启动后开始调用pre...原创 2020-03-22 20:23:48 · 1056 阅读 · 1 评论 -
用Spark开发基站停留时间Top2
美图欣赏:一.介绍根据用户产生日志的信息,在那个基站停留时间最长 19735E1C66.log 这个文件中存储着日志信息 文件组成:手机号,时间戳,基站ID连接状态(1连接 0断开) lac_info.txt 这个文件中存储基站信息 文件组成 基站ID, 经,纬度在一定时间范围内,求所用户经过的所有基站所停留时间最长的Top2 思路:1.获取用户产生的日志信息并切分2.用户在...原创 2020-03-21 14:04:18 · 375 阅读 · 0 评论 -
日期转换为具体的时间的pom依赖
美图欣赏:日期转换为具体的时间的pom依赖:<dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.0</version></dependency>...原创 2020-03-21 13:18:13 · 434 阅读 · 0 评论 -
Spark中RDD的对象传递(序列化问题)
美图欣赏:一.新鲜一感即使生活在阴沟,也要记得仰望星空二.RDD的对象传递1.先说下一般什么是在Driver端执行,什么是在Executor端执行(1)Driver端执行:初始化的过程就是例如:val conf = new SparkConf().setAppName(“test”).setMaster(“local[*]”)val sc = new SparkCont...原创 2020-03-18 20:06:30 · 1219 阅读 · 0 评论 -
Spark中如何统计pv,uv的数量?
美图欣赏:一.新鲜一感你本来是有机会的,但是你输了,你不能总是活在过去二.pv , uv 的概念pv、uv属于统计网站的访问量pv:用用户请求的ip地址来计算用户访问的网站的页面的次数该需求的统计具有真实性,是衡量网站流量的重要指标uv:可以理解为访问某网站的电脑的数量网站判断来访电脑的身份是通过来访电脑的cookies实现的,往往是按天来统计如果更换了ip后但不清除co...原创 2020-03-16 23:32:07 · 1138 阅读 · 0 评论 -
Spark中combineByKey countByKey countByValue foreach foreachPartition filterByRange flatMapValues等算子集合
美图欣赏:一.新鲜一感同是风华正茂,怎敢甘拜下风二.Spark中算子1.combineByKey算子源码:(createCombiner: V => C, mergeValue: (C, V) => C, mergeCombiners: (C, C) => C)(1)案例一scala> val rdd4 = sc.parallelize(List("do...原创 2020-03-15 22:43:11 · 300 阅读 · 0 评论 -
spark中repartition, coalesce, partitionBy, repartitionAndSortWithinPartitions 四种重分区算子
美图欣赏:一.背景spark中一共有四种重分区算子:1.repartition2.coalesce3.partitionBy4.repartitionAndSortWithinPartitions二.spark中map,mapPartitions,mapPartitionsWithIndex,sortBy ,sortByKey 算子1.创建一个集合(默认设置是俩分区)在...原创 2020-03-15 11:01:28 · 2107 阅读 · 0 评论 -
spark中 groupByKey,reduceByKey,cogroup,sample,groupBy,cartesian, union 算子
美图欣赏:一.背景RDD支持两种操作:转化操作和行动操作。RDD 的转化操作是返回一个新的 RDD的操作,比如 map()和 filter(),而行动操作则是向驱动器程序返回结果或把结果写入外部系统的操作。比如 count() 和 first()。Spark采用惰性计算模式,RDD只有第一次在一个行动操作中用到时,才会真正计算。Spark可以优化整个计算过程。默认情况下,Spark ...原创 2020-03-14 15:43:05 · 1145 阅读 · 0 评论 -
将jar包运行在集群(从hdfs输入到hdfs输出)
美图欣赏:一.背景一般写好的程序,都会将在集群上运行二.程序简单的用wordcount来测试下,到集群运行。(从hdfs输入到hdfs输出)需要注意几点:1.既然从hdfs中读取,那么就需要传入一个args(0),作为输入val lines: RDD[String] = sc.textFile(args(0))2.输出到hdfs中,也需要传一个args(1),作为输出s...原创 2020-03-12 17:06:27 · 1572 阅读 · 0 评论 -
Netty原理及代码实现
美图欣赏:一.Netty原理分析RpcEndpoint:RPC端点 ,Spark针对于每个节点(Client/Master/Worker)都称之一个Rpc端点 ,且都实现RpcEndpoint接口,内部根据不同端点的需求,设计不同的消息和不同的业务处理,如果需要发送(询问)则调用Dispatcher。RpcEnv:RPC上下文环境,每个Rpc端点运行时依赖的上下文环境称之为RpcEnv...原创 2020-03-10 19:45:39 · 585 阅读 · 0 评论 -
Spark MLlib
美图欣赏:机器学习库(MLlib)MLlib是Spark的机器学习(ML)库。其目标是使实用的机器学习可扩展且容易。在较高级别,它提供了以下工具:ML算法:常见的学习算法,例如分类,回归,聚类和协作过滤 特征化:特征提取,变换,降维和选择 管道:用于构建,评估和调整ML管道的工具 持久性:保存和加载算法,模型和管道 实用程序:线性代数,统计信息,数据处理等声明:基于...原创 2020-02-05 15:22:47 · 433 阅读 · 0 评论 -
Spark SQL简介
美图欣赏:1.Spark SQL简介Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。为什么要学习Spark SQL?我们已经学习了Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduce的程序的复杂性,由于MapRed...原创 2020-02-01 23:43:24 · 324 阅读 · 0 评论 -
Spark中求网站的访问量
美图欣赏:一.数据样式:二.要求求出访问量最高的两个网页要求显示:网页名称、访问量三.代码实现:import org.apache.spark.{SparkConf, SparkContext}object TomcatLogCount extends App { //获取spark的sc var conf = new SparkCo...原创 2020-02-01 16:01:04 · 800 阅读 · 0 评论 -
Spark中aggregate算子和aggregateByKey算子
美图欣赏:aggregate复杂例子:scala> import scala.math._import scala.math._scala> var rdd1 = sc.parallelize(List("12","34","567","8901"),2)rdd1: org.apache.spark.rdd.RDD[String] = ParallelCol...原创 2020-01-31 21:56:06 · 340 阅读 · 1 评论 -
spark中mapPartitionsWithIndex高级算子和aggregate高级算子
美图欣赏:一.spark中高级算子:比较复杂,功能是比较丰富**mapPartitionsWithIndex**对RDD的每个分区操作,可以获取到分区号scala> def fun1(index:Int,itea:Iterator[Int]):Iterator[String] = { | itea.toList.map(x => "[partid:" +...原创 2020-01-28 16:23:56 · 573 阅读 · 0 评论 -
RDD的依赖关系和Spark任务中的Stage
美图欣赏:一.RDD的依赖关系RDD和它依赖的父RDD(s)的关系有两种不同的类型,即窄依赖(narrow dependency)和宽依赖(wide dependency)。窄依赖指的是每一个父RDD的Partition最多被子RDD的一个Partition使用总结:窄依赖我们形象的比喻为独生子女宽依赖指的是多个子RDD的Partition会依赖同一个父RDD...原创 2020-01-28 16:11:02 · 294 阅读 · 0 评论 -
Spark中RDD的缓存机制
美图欣赏:RDD的缓存机制:默认将数据缓存在内存中 1、提高性能 2.缓存使用的函数cache,Persist,**标识RDD可以被缓存** cache函数底层调用Persist storage level:标识缓存的位置 MEMORY_ONLY...原创 2020-01-26 18:43:30 · 791 阅读 · 1 评论 -
sparkRDD中Transformation算子
美图欣赏:RDD算子(函数):1.Transformation:延时计算,Lazy修饰,不会立即触发计算。重点scala> var rdd1 = sc.parallelize(List(2,4,6,1,9,6,7))rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at para...原创 2020-01-23 21:49:25 · 487 阅读 · 0 评论 -
Spark中Transformation算子和Action算子详细介绍
美图欣赏:一.Transformation算子 RDD中的所有转换都是延迟加载的,也就是说,它们并不会直接计算结果。相反的,它们只是记住这些应用到基础数据集(例如一个文件)上的转换动作。只有当发生一个要求返回结果给Driver的动作时,这些转换才会真正运行。这种设计让Spark更加有效率地运行。 转换 含义 m...原创 2020-01-23 19:23:59 · 1010 阅读 · 0 评论 -
spark打包程序提交任务
美图欣赏:一.操作:拷贝一个全类名:程序:import org.apache.spark.{SparkConf, SparkContext}/** * * Scala的word count * */object WordCountScala extends App { //获取spark的环境,setAppName定义应用程序的名字,s...原创 2020-01-22 16:53:09 · 897 阅读 · 0 评论 -
揭秘Spark中RDD算子是什么
1、RDD基础 RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升了查询速度。二.官网...原创 2020-01-21 19:53:49 · 467 阅读 · 0 评论 -
spark shell提交
spark-shell(REPL)(1.)直接运行spark-shell启动的是本地的命令:[root@bigdata111 ~]#spark-shellSpark context available as 'sc' (master = local[*], app id = local-1577740473039).scala> sc.textFile("/opt/...原创 2020-01-21 15:18:24 · 245 阅读 · 0 评论 -
Spark任务提交流程
一.Spark任务提交流程图:二.分析流程1.客户端先向主节点请求2.主节点进行任务分配,接收请求3.主节点任务分配完成,客户端开始真正提交到work节点运行 ...原创 2020-01-21 11:46:56 · 338 阅读 · 0 评论 -
Spark submit提交求PI
一. spark提交任务方式:1.第一种方法:spark-submit:提交任务的,使用spark Demo求PI,蒙特卡洛求PI(圆周率)[root@bigdata111 spark-2.1.0-bin-hadoop2.7]# ./bin/spark-submit --master spark://bigdata111:7077 --class org.apache.spar...原创 2020-01-21 11:25:10 · 3291 阅读 · 2 评论 -
Spark用Java编写WordCount
一.Spark用Java编写WordCountimport org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.JavaSparkContex...原创 2020-01-20 19:31:07 · 480 阅读 · 0 评论 -
搭建spark的完全分布式
一.Spark Standalone全分布的部署配置文件:conf/spark-env.shexport JAVA_HOME=/opt/module/jdk1 export SPARK_MASTER_HOST=bigdata111 export SPARK_MASTER_PORT=7077 下面的可以不写,默认 export SPARK_WORKER_CORES=1 export...原创 2020-01-13 16:55:01 · 693 阅读 · 0 评论 -
搭建spark的伪分布式
一.Spark的安装与部署一.Spark的安装部署方式有以下几种模式:Standalone(常用) YARN(常用) Mesos Amazon EC2(1)Spark Standalone伪分布的部署配置文件:conf/spark-env.sh export JAVA_HOME=/opt/module/jdk export SPARK_MASTER_HOST=bigdat...原创 2020-01-13 16:36:18 · 385 阅读 · 0 评论 -
Spark用Scala编写WordCount
Spark编写WordCount案例:import org.apache.spark.{SparkConf, SparkContext}/** * * Scala的word count * */object WordCountScala extends App { //获取spark的环境,setAppName定义应用程序的名字,setMaster制定任务运行的模式, ...原创 2020-01-13 09:59:15 · 496 阅读 · 0 评论