![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SPARK
玉羽凌风
这个作者很懒,什么都没留下…
展开
-
sparksql和hive读取结果不一致
sparksql读不到表内容,但是hive却是可以,后来排查到是因为hive表有多级目录,所以需要配置下sparksql参数:spark.sql.hive.convertMetastoreParquet=falsemapred.input.dir.recursive=true如果是hive可配置mapreduce.input.fileinputformat.input.dir.recursive=truehive.mapred.supports.subdirectories=true原创 2021-11-04 11:56:58 · 1337 阅读 · 0 评论 -
spark-sql查询分区时会扫描全表的问题
背景同一个SQL在hive里执行正常,但是用sparksql执行异常,抛出如下错误:the operation is not valid for the object's storage class glacier原因在于,这个表是分区表,且设置了S3的存储自动生命周期,所以超过N天之前的数据就变成了glacier,无法直接用于检索。但是很好奇的是对于同样的hive语句是可以执行的,所以问题出在spark-sql,通过分析执行日志,发现spark-sql在执行where条件过滤的时候扫描了所有原创 2021-03-29 17:18:23 · 1711 阅读 · 0 评论 -
Spark的对象不可序列化(object not serializable)的一个解决方案
最近在公司开发了一个新项目。这个项目要求人工去编写配置文件,然后根据配置文件配置的函数去处理数据。学到的隐式转换终于排上用场了。假设这些函数就是对比两个Set内容,然后得到这俩Set的相关得分。如下,然后分别实现这些函数即可。 object ScoreFunction{ implicit class FunctionGetterFaster(val functionConf: String) extends AnyVal { def getFunc: (Set[Stri..转载 2020-10-17 22:47:05 · 2617 阅读 · 1 评论 -
yarn-cluster模式提交Spark任务,如何关闭client进程?
问题:最近现场反馈采用yarn-cluster方式提交spark application后,在提交节点机上依然会存在一个yarn的client进程不关闭,又由于spark application都是spark structured streaming程序(application常年累月的执行),最终导致spark application提交节点服务器资源被占满,当执行其他操作时,会出现以下错误...转载 2020-02-15 14:14:40 · 1661 阅读 · 0 评论 -
浅谈Spark On Yarn 中的延迟调度问题
延迟调度算法思想十分简单,为了实现data locality(即该task所需数据就在其运行的机器上),会尽量将task分布到有其所需数据的机器或者jvm中去,如果机器或者jvm已被占用就进行延迟等待,直到该机器或者jvm可以运行该task或者超过等待时限则将task运行到其他机器上。这个想法基于以下几点:1.往往数据比程序要大得多,分布式上处理的数据都是GB为单位的,将程序放到数据所在机器去...转载 2020-02-06 10:55:40 · 732 阅读 · 0 评论 -
Spark UI vs. Spark History Server UI
Is Job Running ?1. If you have Spark Applications Running, then you should be using SPARK UI. This UI is usually hosted on Spark Driver– In YARN cluster mode, the Driver is run on YARN Application...转载 2020-02-04 22:56:43 · 246 阅读 · 0 评论 -
Kafka+Spark Streaming+Redis实时计算整合实践
基于Spark通用计算平台,可以很好地扩展各种计算类型的应用,尤其是Spark提供了内建的计算库支持,像Spark Streaming、Spark SQL、MLlib、GraphX,这些内建库都提供了高级抽象,可以用非常简洁的代码实现复杂的计算逻辑、这也得益于Scala编程语言的简洁性。这里,我们基于1.3.0版本的Spark搭建了计算平台,实现基于Spark Streaming的实时计算。我们...转载 2019-11-04 23:20:39 · 470 阅读 · 0 评论 -
spark streaming中的广播变量应用
1. 广播变量我们知道spark 的广播变量允许缓存一个只读的变量在每台机器上面,而不是每个任务保存一份拷贝。常见于spark在一些全局统计的场景中应用。通过广播变量,能够以一种更有效率的方式将一个大数据量输入集合的副本分配给每个节点。Spark也尝试着利用有效的广播算法去分配广播变量,以减少通信的成本。一个广播变量可以通过调用SparkContext.broadcast(v)方法从一个初始...转载 2019-10-18 22:08:28 · 923 阅读 · 0 评论 -
spark深入:配置文件与日志
一、第一部分1、spark2.1与hadoop2.7.3集成,spark on yarn模式下,需要对hadoop的配置文件yarn-site.xml增加内容,如下:<property><name>yarn.log-aggregation-enable</name><value>true</value></proper...转载 2019-02-27 21:59:30 · 1007 阅读 · 0 评论 -
如何在 Amazon EMR 上设置 Spark SQL JDBC 连接
问题我想从 SQL 客户端对我的 Amazon EMR 集群运行 SQL 查询。我如何为 Spark Thrift 服务器配置 Java 数据库连接 (JDBC) 驱动程序,以便我能做到这一点?解决方法注意:以下步骤需要 SQuirrel SQL 客户端。下载并安装SQuirrel SQL,然后再继续。1. 在 Amazon EMR 集群的主节点上,运行以下命令以启动 Sp...转载 2019-03-04 22:57:07 · 674 阅读 · 0 评论 -
spark 通过client提交job无法打开spark driver ui(500错误)
我们在生产环境常用的提交job模式一般通过web,如livy等restful api方式提交job.或者是通过spark-shell直接提交,对于大部分企业来说,都是在集群之外通过在集群之外的client节点提交job的方式,本人使用的集群环境是aws emr,提交job的方式是第二种,但是在client节点执行spark-shell的时候,通过yarn后台点击job的application ma...原创 2019-03-02 21:45:00 · 1845 阅读 · 1 评论 -
Watch out for timezones with Sqoop, Hive, Impala and Spark
My head was spinning as I tried to accomplish a simple thing (as it seemed at first). I load data from 3 Oracle databases, located in different time zones, using Sqoop and Parquet. Then I load data to...转载 2019-02-26 21:34:16 · 353 阅读 · 0 评论 -
Spark运行常见问题
这是在运行spark时遇到的一些问题的小结,仅仅作参考,当时参考的具体地址也忘记了,如果想了解更详细的情况可以根据具体问题去搜索相关答案。1. 运行在yarn集群上时报错:Failed to send RPC5111091680910991783 to /192.168.xxx.xxxx:49208:java.nio.channels.ClosedChannelException解决...转载 2019-03-04 21:23:23 · 730 阅读 · 0 评论 -
SparkStreaming之checkpoint机制使用讲解
一 什么类型的数据需要使用checkpoint?Spark Streaming是最需要进行容错的,因为一般都是7 * 24小时运转,所以需要将足够的信息checkpoint到容错的存储系统上,比如HDFS,从而能够让他从失败中进行恢复。有两种数据需要被进行checkpoint:1、元数据checkpoint:# 配置信息:创建spark streaming应用程序的配置信息,比如Spa...转载 2019-04-09 23:59:37 · 2007 阅读 · 0 评论 -
Spark Streaming与Kafka如何保证数据零丢失
Spark Streaming 是一种构建在 Spark 上的实时计算框架,它扩展了 Spark 处理大规模流式数据的能力。Spark Streaming 的优势在于:能运行在1000+的结点上,并达到秒级延迟。使用基于内存的 Spark 作为执行引擎,具有高效和容错的特性。能集成 Spark 的批处理和交互查询。为实现复杂的算法提供和批处理类似的简单接口。为此,Spark S...转载 2019-04-18 21:32:57 · 1248 阅读 · 0 评论 -
Scala中Manifest、ClassTag、TypeTag的学习
Manifest介绍Manifest是scala2.8引入的一个特质,用于编译器在运行时也能获取泛型类型的信息。在JVM上,泛型参数类型T在运行时是被“擦拭”掉的,编译器把T当作Object来对待,所以T的具体信息是无法得到的;为了使得在运行时得到T的信息,scala需要额外通过Manifest来存储T的信息,并作为参数用在方法的运行时上下文def test[T] (x:T, m:M...转载 2019-04-24 09:36:10 · 1965 阅读 · 0 评论 -
利用spark基于parquet或者orc文件直接建hive表
如何快速的基于一个parquet文件进行建表?首先对于spark要SparkSession.enableHiveSupport()var df = spark.read.parquet("mypath/*.parquet");df.write.mode(SaveMode.Overwrite).saveAsTable("mytable")mytable可以加数据库名,如db.xxtab...原创 2019-04-29 14:36:24 · 2366 阅读 · 0 评论 -
spark sql 显示header
spark-sql --master=yarn --hiveconf hive.cli.print.header=true原创 2019-05-16 16:56:28 · 2096 阅读 · 3 评论 -
spark streaming job 失败后自动重启
#!/bin/bash -#===============================================================================# USAGE: ./monitor_analytics.sh# DESCRIPTION: monitor online on test# AUTHOR: Amos Ya...原创 2018-01-24 14:33:09 · 3237 阅读 · 5 评论 -
spark sql 在饿了么的应用实践
背景介绍目前"饿了么"spark主要应用在streaming、ETL和ML场景上,本文主要是分享我们ETL场景从hive SQL到spark SQL的迁移实践。在整个迁移过程中我们把线上多个版本的spark(1.5.2,1.6.3)统一推动升级到2.1.1,同时从Standalone运行模式迁移到了On YARN模式,以减少我们的维护成本。在安全控制上我们参考hive的权限系统开发了统一的权限...转载 2019-09-19 10:03:44 · 271 阅读 · 0 评论 -
Long-running Spark Streaming Jobs on YARN Cluster
A long-running Spark Streaming job, once submitted to the YARN cluster should run forever until it is intentionally stopped. Any interruption introduces substantial processing delays and could lead to...转载 2019-09-17 23:52:08 · 324 阅读 · 0 评论 -
spark使用supervisor守护进程
Install$ sudo apt-get install supervisor配置使用默认路径下配置(/etc/supervisord.conf) 指定目录supervisord.conf配置; supervisor config file[unix_http_server]file=/home/hadoop/supervisor/supervisor.sock ...转载 2019-09-10 16:36:53 · 945 阅读 · 0 评论 -
spark thrift server 查询日志留存
spark thrift server的web ui在运行时可以看到sql查询的提交用户,执行sql等信息image.pngimage.png但是当这个实例停掉或者异常终止以后,你再去spark history server的webui去查看,发现这部分信息就没有了……image.png究其原因,原来spark thrift server并没有将这部分数...转载 2019-09-08 23:14:34 · 790 阅读 · 0 评论 -
spark如何开启HTTP模式
1. HDFS配置:hadoop.proxyuser.HTTP.groups=*hadoop.proxyuser.knox.groups=*hadoop.proxyuser.knox.hosts=*2. Spark中:hive.server2.transport.mode binary修改为http...转载 2019-09-06 23:09:44 · 897 阅读 · 0 评论 -
spark 根据parquet文件 建表
def save_table(spark: SparkSession, partitionCondition:String, path: String, database: String, table_name: String, save_format: String = "PARQUET"): Unit = { val df: DataFrame = spark.read.parquet(...原创 2019-09-02 10:28:15 · 1305 阅读 · 0 评论 -
Spark SQL 相关
Spark SQL的简介1. 简介Spark SQL是用于处理结构化数据的模块。与Spark RDD不同的是,Spark SQL提供数据的结构信息(源数据)和性能更好,可以通过SQL和DataSet API与Spark SQL进行交互。2. 特点2.1 Spark程序和SQL可以无缝对接2.2 统一数据访问:使用相同方式链接到数据2.3 集成hive:在hive数据仓库中可...转载 2019-08-28 22:47:14 · 511 阅读 · 0 评论 -
Spark Streaming如何使用checkpoint容错
最近在做一个实时流计算的项目,采用的是Spark Steaming,主要是对接Spark方便,一个 Streaming Application 往往需要7*24不间断的跑,所以需要有抵御意外的能力(比如机器或者系统挂掉,JVM crash等)。为了让这成为可能,Spark Streaming需要 checkpoint 足够多信息至一个具有容错设计的存储系统才能让 Application 从失败中恢...转载 2019-01-08 15:09:27 · 594 阅读 · 0 评论 -
Spark Streaming对Exactly Once的实现原理
Exactly Once实现的整体性首先一个很重要的道理是: 整个系统对exactly once的保证,从来都不是靠系统中某一部分来实现就能搞定的,需要整个流式系统一起努力才可以实现。对Spark Streaming来说, Exactly once的实现,需要系统中三部分的整体保证: 输入源 --> Spark Streaming计算 ---> 输出操作 "...转载 2019-01-07 22:42:06 · 560 阅读 · 0 评论 -
spark streaming updateStateByKey
1、updateStateByKey(updateFun)2、updateFun因为数据量大所以使用HyperLogLogPlusval updateFuc = (values: Seq[String], state: Option[HyperLogLogPlus]) => { if (state.nonEmpty) { val hll = state.get ...转载 2018-06-29 10:44:37 · 355 阅读 · 0 评论 -
spark 里from_unixtime等时区问题
spark sql默认会用当前机器的时区,在产线环境下需要设置job的时区,或者直接在conf里配置好。在shell里可加入配置 --conf "park.sql.session.timeZone = UTC"或者在代码里设置spark.conf.set("spark.sql.session.timeZone", "UTC")...原创 2018-06-06 17:32:46 · 6532 阅读 · 0 评论 -
spark 读取的parquet文件schema改变了如何处理
当用spark.read.parquet("filepath").as[MyClass]时候,如果被读取的文件schema变了,比如增加了两列,这个时候直接读取会报错,那么有一种变通的方法就是spark.read.parquet("filepath").map(row => val field = if (e.isNullAt(e.fieldIndex("field"))) null els...原创 2018-05-25 14:46:17 · 4692 阅读 · 0 评论 -
Exactly Once Data Processing with Amazon Kinesis and Spark Streaming
The Kinesis Client Library provides convenient abstractions for interacting with Amazon Kinesis. Consumer checkpoints are automatically tracked in DynamoDB (Kinesis checkpointing) and it’s easy to spa...转载 2018-05-21 10:10:17 · 334 阅读 · 0 评论 -
Apache Spark Structured Streaming and watermarks
"watermark" should "discard late data and accept 1 late but within watermark with window aggregation" in { val testKey = "watermark-window-test" val inputStream = new MemoryStream[(Timestamp, String...转载 2018-05-14 16:32:01 · 744 阅读 · 0 评论 -
SPARK WITH KINESIS EXAMPLE SCALA CODE
object SparkKinesisExample extends Logging { def main(args: Array[String]) { val conf = new SparkConf().setAppName("Kinesis Read Sensor Data") conf.setIfMissing("spark.master", "local[*]...转载 2018-05-14 16:26:42 · 340 阅读 · 0 评论 -
spark dataset,dataframe学习
1.dataset to brodcast:import org.apache.spark.sql.functionsval df:DataFrame = your_data_frameval broadcasted_df = functions.broadcast(df)other_df.join(broadcasted_df)2.dataset joinval xs = Seq原创 2017-09-27 14:08:23 · 851 阅读 · 0 评论 -
Spark Streaming Logging Configuration
Spark Streaming applications tend to run forever, so their log files should be properly handled, to avoid exploding server hard drives. This article will give some practical advices of dealing with th转载 2017-10-19 14:10:42 · 773 阅读 · 0 评论 -
org.apache.spark.sql.AnalysisException: Try to map struct<>to Tuple1 异常
spark.read.parquet(mypath).as[MyEntity]会遇到下面异常org.apache.spark.sql.AnalysisException: Try to map struct to Tuple1, but failed as the number of fields does not line up.; at org.apache.spark.sql.ca原创 2017-10-01 21:34:23 · 3197 阅读 · 1 评论 -
深度剖析 Spark 分布式执行原理
让代码分布式运行是所有分布式计算框架需要解决的最基本的问题。Spark是大数据领域中相当火热的计算框架,在大数据分析领域有一统江湖的趋势,网上对于Spark源码分析的文章有很多,但是介绍Spark如何处理代码分布式执行问题的资料少之又少,这也是我撰写文本的目的。Spark运行在JVM之上,任务的执行依赖序列化及类加载机制,因此本文会重点围绕这两个主题介绍Spark对代码分布式执转载 2017-09-29 11:51:42 · 367 阅读 · 0 评论 -
Approximate Algorithms in Apache Spark: HyperLogLog and Quantiles
IntroductionApache Spark is fast, but applications such as preliminary data exploration need to be even faster and are willing to sacrifice some accuracy for a faster result. Since version 1.6, Spark ...转载 2018-06-29 16:00:45 · 499 阅读 · 0 评论 -
spark 分区类型自动推断
spark 读写分区列的数据类型是自动推断的。目前支持数字数据类型和字符串类型。有时用户可能不希望自动推断分区列的数据类型。对于这些用例,可以使用spark.sql.sources.partitionColumnTypeInference.enabled默认 的自动类型推断来配置true。当禁用类型推断时,字符串类型将用于分区列...原创 2018-06-25 20:29:20 · 1299 阅读 · 0 评论