spark
文章平均质量分 68
浅汐王
这个作者很懒,什么都没留下…
展开
-
SparkSQL2.4.6 报错:org/codehaus/janino/InternalCompilerException
SparkSQL中执行了Dataset的action操作出现下面的异常:Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/janino/InternalCompilerException at org.apache.spark.sql.catalyst.expressions.codegen.GenerateSafeProjection$.create(GenerateSafeProjection.s原创 2020-09-17 10:09:13 · 24149 阅读 · 0 评论 -
JAVA代码实现编程式提交Spark任务
三种方法作为记录:1)直接调用SparkSubmit的main方法2)SparkLauncher类的launch方法或者startApplication方法3)使用RestSubmissionClient的run方法SparkSubmit提交任务 String[] param = { "--class", "org.apache.spark.examples.SparkPi", "--master", "local[2]", "/bigdata/spark-2.原创 2020-07-29 16:54:11 · 70807 阅读 · 2 评论 -
Livy的安装使用
Livy介绍(apache 孵化项目)官网:https://livy.incubator.apache.org/Livy是一个提供rest接口和spark集群交互的服务。它可以提交spark job或者spark一段代码,同步或者异步的返回结果;也提供sparkcontext的管理,通过restfull接口或RPC客户端库。Livy也简化了与spark与应用服务的交互,这允许通过web/mobile与spark的使用交互。其他特点还包含:长时间运行的SparkContext,允许多个spark原创 2020-07-29 15:32:42 · 70790 阅读 · 0 评论 -
解析ip到对应城市:ipdatabase
一、实现目的在解析网络访问日志的时候,ip是不可避免地分析KPI。而有时候需要把访问ip直接转换为对应城市,这样如果自己编写程序,就会浪费很多时间,在此介绍一个有效地开源github项目,可以实现ip到城市的映射。二、实现步骤1.使用github上已有的开源项目,从github上下载git clone git@github.com:wzhe06/ipdatabase.git2...原创 2020-02-18 10:59:50 · 70697 阅读 · 2 评论 -
Spark2.4.2报错总结
报错一:背景启动spark-shell后查询hive中的表信息,报错$SPARK_HOME/bin/spark-shellspark.sql("select * from student.student ").show()日志Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.ha...原创 2019-12-25 00:38:01 · 916 阅读 · 0 评论 -
[Spark版本更新]--2.3.0发行说明(一)
自从2017年12月1日发布spark-2.2.1以来,已有3个月时间。2018年2月28日,spark官方发布了一个大版本Spark-2.3.0,解决了1399个大大小小的问题。一、DataBricks做了相关说明今天,我们很高兴地宣布Databricks上的Apache Spark 2.3.0作为其Databricks Runtime4.0的一部分。我们要感谢Apache Spa...翻译 2019-12-24 15:08:38 · 1456 阅读 · 0 评论 -
[Spark--版本更新]----2.2.1发行说明
子任务[SPARK-21083] - 分析空表后存储零大小和行数 [SPARK-21489] - 更新发布文档指出Python 2.6的支持已被删除。 [SPARK-21720] - 用很多条件筛选谓词抛出stackoverflow错误 [SPARK-22494] - 合并和AtLeastNNonNulls可能导致64KB JVM字节码限制异常 [SPARK-2249...翻译 2019-12-24 15:04:21 · 239 阅读 · 0 评论 -
spark-2.2.0发行说明
一、Jira说明:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315420&version=12338275子任务[SPARK-1267] - 添加PySpark的pip安装程序 [SPARK-3249] - 修复ScalaDoc中的链接,导致“sbt / sbt unidoc”...翻译 2019-12-24 15:01:12 · 1041 阅读 · 0 评论 -
Spark 查看 job history 日志
SPARK_HOME/conf 下:spark-defaults.conf 增加如下内容spark.eventLog.enabled true spark.eventLog.dir hdfs://master:8020/var/log/spark spark.eventLog.compress truespark-env.sh 增加如下内容:export SPARK_HISTORY_OPTS=”-...原创 2018-02-24 17:30:42 · 1129 阅读 · 0 评论 -
Spark动态资源分配在yarn的配置
配置文件$SPARK_HOME/conf/spark-defaults.conf$HADOOP_HOME/conf/yarn-site.xml1、启用动态资源分配功能在spark-defaults.conf 中添加spark.dynamicAllocation.enabled=true配置其他参数:spark.dynamicAllocation.minExecutors 最小executor数量s...原创 2018-02-24 22:11:04 · 880 阅读 · 0 评论 -
RDD基本算子操作
1.1. Transformations1.1.1. 创建RDD1、数组创建RDD从普通数组创建RDD,里面包含了1到9这9个数字,它们分别在3个分区中。valrdd1= sc.parallelize(1 to 9, 3)rdd1:org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[1] at parallelize at<cons...原创 2018-03-30 16:40:38 · 471 阅读 · 0 评论 -
Spark job 的执行流程简介
我们可以发现,Spark 应用程序在提交执行后,控制台会打印很多日志信息,这些信息看起来是杂乱无章的,但是却在一定程度上体现了一个被提交的 Spark job 在集群中是如何被调度执行的,我会向大家介绍一个典型的 Spark job 是如何被调度执行的。我们先来了解以下几个概念:DAG: 即 Directed Acyclic Graph,有向无环图,这是一个图论中的概念。如果一个有向图无法从某个顶...原创 2018-03-30 19:11:28 · 731 阅读 · 0 评论 -
K-means 聚类算法原理
聚类分析是一个无监督学习 (Unsupervised Learning) 过程, 一般是用来对数据对象按照其特征属性进行分组,经常被应用在客户分群,欺诈检测,图像分析等领域。K-means 应该是最有名并且最经常使用的聚类算法了,其原理比较容易理解,并且聚类效果良好,有着广泛的使用。和诸多机器学习算法一样,K-means 算法也是一个迭代式的算法,其主要步骤如下:第一步,选择 K 个点作为初始聚类...原创 2018-03-31 13:19:22 · 1269 阅读 · 0 评论 -
Spark UI界面实现原理
当Spark程序在运行时,会提供一个Web页面查看Application运行状态信息。是否开启UI界面由参数spark.ui.enabled(默认为true)来确定。下面列出Spark UI一些相关配置参数,默认值,以及其作用。参数默认值作用描述spark.ui.enabledtrue是否开启UI界面spark.ui.port4040(顺序探查空闲端口)UI界面的访问端口号spark.ui.ret...原创 2018-04-13 20:59:17 · 1008 阅读 · 0 评论 -
Spark2.2.1 监控界面报错javax.servlet.http.HttpServletRequest.isAsyncStarted()Z
1、环境 Spark2.2.1,Hadoop2.6,Intellj,Scala2.112、pom文件<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version...原创 2018-09-10 23:14:02 · 648 阅读 · 0 评论 -
spark-submit上传jar包时间较长的解决
出现的场景:在spark-submit提交Spark作业时,发现上传Spark依赖到hdfs时间长达数分钟。这个日志之后在上传程序依赖的jar,根据不同网络负荷,需要耗时数十秒甚至数分钟,导致任务提交速度超级慢,在官网上查到出现这种现象的原因:https://spark.apache.org/docs/2.1.1/running-on-yarn.html其中有这么一句话:To ma...原创 2019-05-15 08:45:42 · 963 阅读 · 0 评论 -
Spark Streaming中如何实现Exactly-Once
Exactly-once 语义是实时计算的难点之一。要做到每一条记录只会被处理一次,即使服务器或网络发生故障时也能保证没有遗漏,这不仅需要实时计算框架本身的支持,还对上游的消息系统、下游的数据存储有所要求。此外,我们在编写计算流程时也需要遵循一定规范,才能真正实现 Exactly-once。本文将讲述如何结合 Spark Streaming 框架、Kafka 消息系统、以及 MySQL 数据库来实原创 2017-12-17 19:34:31 · 1471 阅读 · 0 评论 -
Structured Streaming
Spark2.0新增了Structured Streaming,它是基于SparkSQL构建的可扩展和容错的流式数据处理引擎,使得实时流式数据计算可以和离线计算采用相同的处理方式(DataFrame&SQL)。Structured Streaming顾名思义,它将数据源和计算结果都映射成一张”结构化”的表,在计算的时候以结构化的方式去操作数据流,大大方便和提高了数据开发的效率。Spark2原创 2017-12-12 15:20:08 · 529 阅读 · 0 评论 -
基于CentOS6.4环境编译Spark-2.1.0源码
1 写在前面的话有些小伙伴可能会问:Spark官网不是已经提供了Spark针对不同版本的安装包了吗,我们为什么还需要对Spark源码进行编译呢?针对这个问题我们到Spark官网: spark.apache.org来看下,如下图所示:Spark官网的确是提供了一些Hadoop版本的Spark安装包,但是提供的这些是否能够满足我们的要求呢?答案肯定是否定的,根据本人近几年做Spar转载 2017-10-19 16:44:10 · 207 阅读 · 0 评论 -
Spark-Sql版本升级对应的新特性汇总
SparkSQL的前身是Shark。由于Shark自身的不完善,2014年6月1日Reynold Xin宣布:停止对Shark的开发。SparkSQL抛弃原有Shark的代码,汲取了Shark的一些优点,如内存列存储(In-Memory Columnar Storage)、Hive兼容性等,重新开发SparkSQL。Spark-1.1 :2014年9月11日,发布Spark1.1.0。Sp原创 2017-10-12 12:58:54 · 342 阅读 · 0 评论 -
从RDD转换得到DataFrame
Spark官网提供了两种方法来实现从RDD转换得到DataFrame,第一种方法是,利用反射来推断包含特定类型对象的RDD的schema,适用对已知数据结构的RDD转换;第二种方法是,使用编程接口,构造一个schema并将其应用在已知的RDD上。在利用反射机制推断RDD模式时,需要首先定义一个case class,因为,只有caseclass才能被Spark隐式地转换为DataFrame。(有原创 2017-10-12 12:55:21 · 495 阅读 · 0 评论 -
列式存储的 parquet文件底层格式
列式存储是以什么基本格式来存储数据的?1.数据本身,2.数据的元数据,3.引擎Parquet表现上是树状数据结构,内部有元数据的Table,在具体的Parquet文件存储的时候有三个核心组成部分:A)Storage Format:Parquet定义了具体的数据内部的类型和存储格式B)对象模型转换器(object modelconverters):在Parquet中负责计算框架中原创 2017-10-12 12:53:36 · 1192 阅读 · 0 评论 -
RDD创建
RDD可以通过两种方式创建:* 第一种:读取一个外部数据集。比如,从本地文件加载数据集,或者从HDFS文件系统、HBase、Cassandra、Amazon S3等外部数据源中加载数据集。Spark可以支持文本文件、SequenceFile文件(Hadoop提供的 SequenceFile是一个由二进制序列化过的key/value的字节流组成的文本存储文件)和其他符合Hadoop InputF原创 2017-10-12 12:52:57 · 1090 阅读 · 0 评论 -
共享变量的使用
在默认情况下,当Spark在集群的多个不同节点的多个任务上并行运行一个函数时,它会把函数中涉及到的每个变量,在每个任务上都生成一个副本。但是,有时候,需要在多个任务之间共享变量,或者在任务(Task)和任务控制节点(Driver Program)之间共享变量。为了满足这种需求,Spark提供了两种类型的变量:广播变量(broadcast variables)和累加器(accumulators)。广原创 2017-10-12 12:51:57 · 1780 阅读 · 0 评论 -
DataFrame与RDD的区别
DataFrame的推出,让Spark具备了处理大规模结构化数据的能力,不仅比原有的RDD转化方式更加简单易用,而且获得了更高的计算性能。Spark能够轻松实现从MySQL到DataFrame的转化,并且支持SQL查询。图 DataFrame与RDD的区别从上面的图中可以看出DataFrame和RDD的区别。RDD是分布式的 Java对象的集合,比如,RDD[Perso原创 2017-10-12 12:47:28 · 4816 阅读 · 1 评论 -
Spark性能优化指南——基础篇
前言在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常广泛。在美团•大众点评,已经有很多同学在各种项目中尝试使用Spark。大多数同学(包括笔者在内),最初开始尝试使用Spark的原因很简单,主要就是为了让大数据计算作业的执行速转载 2017-10-14 22:10:30 · 170 阅读 · 0 评论 -
Spark性能优化指南——高级篇
前言继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。数据倾斜调优调优概述有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据转载 2017-10-14 22:11:34 · 194 阅读 · 0 评论 -
spark-alluxio生产环境的应用与实践
一、Alluxio由来起因 Alluxio(之前名为Tachyon)是世界上第一个以内存为中心的虚拟的分布式存储系统。它统一了数据访问的方式,为上层计算框架和底层存储系统构建了桥梁。 应用只需要连接Alluxio即可访问存储在底层任意存储系统中的数据。此外,Alluxio的以内存为中心的架构使得数据的访问速度能比现有常规方案快几个数量级。 在大数据生态系统中,Allux转载 2017-11-03 12:40:42 · 1159 阅读 · 0 评论 -
Spark参数配置
下面是整理的Spark中的一些配置参数,官方文档请参考Spark Configuration。Spark提供三个位置用来配置系统:Spark属性:控制大部分的应用程序参数,可以用SparkConf对象或者Java系统属性设置环境变量:可以通过每个节点的 conf/spark-env.sh脚本设置。例如IP地址、端口等信息日志配置:可以通过log4j.properties配置原创 2017-11-14 14:05:22 · 546 阅读 · 0 评论 -
Spark On YARN内存分配
说明按照Spark应用程序中的driver分布方式不同,Spark on YARN有两种模式: yarn-client模式、yarn-cluster模式。当在YARN上运行Spark作业,每个Spark executor作为一个YARN容器运行。Spark可以使得多个Tasks在同一个容器里面运行。下图是yarn-cluster模式的作业执行图,图片来源于网络:原创 2017-11-14 14:32:14 · 327 阅读 · 0 评论 -
SparkStreaming之foreachRDD
DStream中的foreachRDD是一个非常强大函数,它允许你把数据发送给外部系统。因为输出操作实际上是允许外部系统消费转换后的数据,它们触发的实际操作是DStream转换。所以要掌握它,对它要有深入了解。下面有一些常用的错误需要理解。经常写数据到外部系统需要创建一个连接的object(eg:根据TCP协议连接到远程的服务器,我们连接外部数据库需要自己的句柄)和发送数据到远程的系统为此,开发者原创 2017-12-08 15:25:22 · 288 阅读 · 0 评论 -
Spark on yarn的内存分配问题
问题描述在测试spark on yarn时,发现一些内存分配上的问题,具体如下。在$SPARK_HOME/conf/spark-env.sh中配置如下参数:SPARK_EXECUTOR_INSTANCES=4 在yarn集群中启动的executor进程数SPARK_EXECUTOR_MEMORY=2G 为每个executor进程分配的内存大小SPARK_DRIV转载 2017-12-01 09:39:05 · 917 阅读 · 0 评论 -
Spark(Accumulator)陷阱及解决办法
Accumulator简介Accumulator是spark提供的累加器,顾名思义,该变量只能够增加。 只有driver能获取到Accumulator的值(使用value方法),Task只能对其做增加操作(使用 +=)。你也可以在为Accumulator命名(不支持Python),这样就会在spark web ui中显示,可以帮助你了解程序运行的情况。Accumulator使用原创 2017-11-24 08:43:50 · 260 阅读 · 0 评论 -
Apache Spark:三种分布式部署方式比较
目前Apache Spark支持三种分布式部署方式,分别是standalone、spark on mesos和 spark on YARN,其中,第一种类似于MapReduce 1.0所采用的模式,内部实现了容错性和资源管理,后两种则是未来发展的趋势,部分容错性和资源管理交由统一的资源管理系统完成:让Spark运行在一个通用的资源管理系统之上,这样可以与其他计算框架,比如MapReduce,公用一原创 2017-09-30 16:42:23 · 1201 阅读 · 0 评论