
spark
懂什么
努力学习中
展开
-
spark学习笔记3 spark应用程序之间的调度
1、调度配置Standalone集群模式:默认情况下,提交给Standalone集群的应用程序以FIFO(first in, first out)顺序执行,同时,每个应用程序都会尝试使用所有可用的节点。你可以通过设置属性spark.cores.max来限制应用程序能使用的节点数目,或者,对于那些未设置该属性的应用程序,还可以通过设置属性spark.deploy.defaultCores来改变默原创 2016-09-12 19:37:08 · 915 阅读 · 0 评论 -
spark partition和hdfs block的关系
背景:最近遇到了一个问题,一个程序利用hive sql 读取数据时出现了轻微的数据倾斜(每个task的输入data 大小类似,但是executor的数据大小有差距),我怀疑是每个partition的数据大小不同,导致的这个问题。(但我想的很明显是错的,如果使用的是textfile,每个task处理的就是一个partition的数据,而每个partition的数据应该是 每个block的数据)。而现...原创 2018-03-28 18:57:57 · 4084 阅读 · 0 评论 -
repartition和coalesce优化使用
def coalesce(self, numPartitions, shuffle=False): """ Return a new RDD that is reduced into `numPartitions` partitions. >>> sc.parallelize([1, 2, 3, 4, 5], 3).glom().collect() [[...原创 2018-03-28 18:57:25 · 1826 阅读 · 1 评论 -
rdd
一、rdd的特性1、RDD是Spark提供的核心抽象,全称为Resillient Distributed Dataset,即弹性分布式数据集。2、RDD在抽象上来说是一种元素集合,包含了数据。它是被分区的,分为多个分区,每个分区分布在集群中的不同节点上,从而让RDD中的数据可以被并行操作。(分布式数据集)3、RDD通常通过Hadoop上的文件,即HDFS文件或者Hive表,来进行创建;有时也可以通...转载 2018-03-28 18:56:38 · 395 阅读 · 0 评论 -
mysql执行顺序
(1)from (2) on (3) join (4) where (5)group by(开始使用select中的别名,后面的语句中都可以使用)(6) avg,sum.... (7)having (8) select (9) distinct (10) order by 从这个顺序中我们不难发现,所有的 查询语句都是从from开始执行的,在执行过程中,每个步骤都会为下一个步骤生成一个虚拟表,这...转载 2018-03-28 18:55:15 · 720 阅读 · 0 评论 -
hive索引和分区
Hive的索引目的是提高Hive表指定列的查询速度。没有索引时,类似'WHERE tab1.col1 = 10' 的查询,Hive会加载整张表或分区,然后处理所有的rows,但是如果在字段col1上面存在索引时,那么只会加载和处理文件的一部分。与其他传统数据库一样,增加索引在提升查询速度时,会消耗额外资源去创建索引和需要更多的磁盘空间存储索引。总结:索引表的基本包含几列:1. 源表的索引列;2. ...原创 2018-03-28 18:54:40 · 644 阅读 · 0 评论 -
hdfs之namenode中储存的数据
转至元数据结尾创建: 杨晨,最新修改于: 三月 22, 2018转至元数据起始主服务器管理文件的 命名空间 凡是对文件系统命名或其他属性的修改信息都会保存到这里。 比如,有个名为Eva的文件放在目录/usr下,现在要将他改名为zuo,移动到/usr/local目录下,这些修改日志都会被 NameNode的edit log文件记录。存放HDFS的 元数据 信息 即文件系统的目录树以及追踪集群...转载 2018-03-28 18:53:37 · 3506 阅读 · 0 评论 -
executor & task lost
转至元数据结尾创建: 杨晨 于 三月 23, 2018转至元数据起始我的程序在运行过程中会出现很多executor lost的情况,但是需要注意的是并不是每一次都会出现这样的情况,而是出现这种问题之后,重跑时可能就不会出现这种情况。初步判断应该是程序的运行资源有问题,driver和task之间的通信出现问题。--这只是可能的情况,等待测试结合博客任务倾斜理解,即任务执行慢就换一个节点执行错误提示e...转载 2018-03-28 18:52:44 · 695 阅读 · 0 评论 -
任务倾斜 (注意和数据倾斜的差异)
转至元数据结尾转至元数据起始数据倾斜指的是某个节点的数据太大,数据跑不完。而任务倾斜则是节点出问题,任务跑的慢。正好和目前出现的executor&task lost相呼应。task倾斜原因比较多,网络io,cpu,mem都有可能造成这个节点上的任务执行缓慢,可以去看该节点的性能监控来分析原因。开启spark的推测机制后如果某一台机器的几个task特别慢,推测机制会将任务分配到其他机器执行,...原创 2018-03-28 18:50:40 · 495 阅读 · 0 评论 -
spark基本概念(总结和理解)
基本概念和任务的执行流程1、基本概念https://www.cnblogs.com/superhedantou/p/5699201.html2、执行流程https://blog.youkuaiyun.com/thomas0yang/article/details/50352261这个针对yarn的 ,可惜图挂了https://www.jianshu.com/p/42fff40bfe31补充...转载 2017-06-28 20:00:32 · 664 阅读 · 0 评论 -
spark学习笔记5 spark容错性
一般来说,分布式数据集的容错性有两种方式:数据检查点和记录数据的更新。 面向大规模数据分析,数据检查点操作成本很高,需要通过数据中心的网络连接在机器之间复制庞大的数据集,而网络带宽往往比内存带宽低得多,同时还需要消耗更多的存储资源。 因此,Spark选择记录更新的方式。 但是,如果更新粒度太细太多,那么记录更新成本也不低。 因此,RDD只支持粗粒度转换,即在大量记录上执行的单个操作。 将创建RDD原创 2016-09-12 21:42:57 · 1011 阅读 · 0 评论 -
spark学习笔记4 spark的io机制
挑战1:数据分区分散在多个计算机系统中。挑战2:spark处理的数据量大。spark不仅要考虑本地主机的io开销,还要考虑数据在主机之间的传输开销。寻址方式也要改变。1、序列化序列化是将对象转换为字节流,本质上可以理解为将链表存储的非连续空间的数据存储转化为连续空间存储的数组中。 这样就可以将数据进行流式传输或者块存储。 相反,反序列化就是将字节流转化为对象。序列化的目的是原创 2016-09-12 20:56:15 · 778 阅读 · 0 评论 -
spark学习笔记1 spark算子
1、map和flatMap的区别Spark 中 map函数会对每一条输入进行指定的操作,然后为每一条输入返回一个对象。而flatMap函数则是两个操作的集合——正是“先映射后扁平化”: 操作1:同map函数一样:对每一条输入进行指定的操作,然后为每一条输入返回一个对象 操作2:最后将所有对象合并为一个对象2、mapPartitions该函数和map函数类似,原创 2016-09-11 19:30:55 · 369 阅读 · 0 评论 -
spark学习笔记2 spark应用执行机制
spark的主要模块:调度与任务分配 i/o模块 通信控制模块 容错模块 shuffle模块1、应用转换流程action算子触发job提交,提交到spark的job生成RDD DAG,经过DAGScheduler转化为stage DAG,每个stage中产生相应的task集合,taskscheduler讲任务分发到executor执行。每个任务对应相应的一个数据块,使用用户定义的函数处原创 2016-09-12 17:37:07 · 307 阅读 · 0 评论 -
Spark排错与优化
这篇文章里的一些经验是很棒的,值得学习。https://blog.youkuaiyun.com/lsshlsw/article/details/49155087https://blog.youkuaiyun.com/duan_zhihua/article/details/77422372转载 2018-03-29 12:07:33 · 209 阅读 · 0 评论