首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >2018-08-08

2018-08-08

作者头像
sparkle123
发布2018-08-15 15:20:34
发布2018-08-15 15:20:34
4620
举报

1、spark程序停-启,实时数据量一下子太多,如何处理 2、spark程序数据丢失,如何处理?duration是多少?

Checkpointing

一个流应用程序必须全天候运行,所有必须能够解决应用程序逻辑无关的故障(如系统错误,JVM崩溃等)。为了使这成为可能,Spark Streaming需要checkpoint足够的信息到容错存储系统中, 以使系统从故障中恢复。

Metadata checkpointing:保存流计算的定义信息到容错存储系统如HDFS中。这用来恢复应用程序中运行worker的节点的故障。元数据包括 Configuration :创建Spark Streaming应用程序的配置信息 DStream operations :定义Streaming应用程序的操作集合 Incomplete batches:操作存在队列中的未完成的批 Data checkpointing :保存生成的RDD到可靠的存储系统中,这在有状态transformation(如结合跨多个批次的数据)中是必须的。在这样一个transformation中,生成的RDD依赖于之前 批的RDD,随着时间的推移,这个依赖链的长度会持续增长。在恢复的过程中,为了避免这种无限增长。有状态的transformation的中间RDD将会定时地存储到可靠存储系统中,以截断这个依赖链。 元数据checkpoint主要是为了从driver故障中恢复数据。如果transformation操作被用到了,数据checkpoint即使在简单的操作中都是必须的。

3、kafka的consume group概念,kafka工作原理 4、spark去重 5、hbase读写流程 6、乐观锁,悲观锁,并发 7、命令行查看java进程 8、java程序崩溃,没有日志,如何排查问题

启动java时把输出重定向到文件,java xxx >> logfile 2>&1; echo $? >> logfile。另外有时java退出是coredump了,ulimit -c 把core打开

9、hbase,hive,hadoop调优 10、hadoop小文件处理,spark小文件处理 11、jvm内存 12、hbase模糊查询

惰性操作/延迟计算(Lazy Evaluation) RDD的创建和转换方法都是惰性操作,并不会立即执行 例如,当使用SparkContext的textFile方法从HDFS中读取文件时,Spark并不会马上从硬盘中读取文件,数据只有在必要时才会被加载 Spark仅仅记录了这个RDD是怎么创建的,在它上面进行操作又会创建怎样的RDD等信息,为每个RDD维护其血统信息,在需要时创建或重建RDD Spark对RDD的计算,在第一次使用action操作的时候才会执行 Spark通过内部记录metadata表,以表明transformations操作已经被响应了

缓存 回顾RDD的创建有两种方法,可以从存储系统中读取数据,也可以从现有RDD(集合)的转换操作而来

默认每次在RDDs上面进行action操作时,Spark都遍历这个调用者RDD的血统关系图,执行所有的转换来创建它重新计算RDDs 如果想要重复利用一个RDD(直接利用之前计算出的某个RDD结果),可以使用cache()/persist()

cache 把RDD存储在集群中执行者的内存中,实际上是将RDD物化在内存中

persist 是一个通用版的cache方法,通过传参的方法告知,缓存级别、缓存在哪:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.08.09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档