摘要:
先说说概念 正向代理服务器就是我们平常说的代理服务器,一般在IE-Internet选项-连接-局域网设置,目的是通过代理服务器可以访问互联网上服务器的资源等 反向代理服务器,是用在服务器的主机前面的,用户接受外部的访问,在用户和真正的主机服务器之间加了一道屏障 目前有许多反向代理软件,比较有名的有 阅读全文
摘要:
Shuffle是MR的核心和最重要的地方,也是性能弹性最大的地方 在Spark中,1.1版本之前,框架默认采用的shuffle是hash,1.1之后,默认采用了sort 从下图可以看出在数据量小,mapper和reducer都比较小的时候,二者的性能几乎一样,当数据量大的情况下,sort shuff 阅读全文
摘要:
Tuple和List一样,是长度不变,内容也不可变的 Tuple的元素个数不能大于22个,否则编译出错 通过下标_n取数据,这是和List,Array的不同点 Tuple 不像List一样有map、flatMap 等方法直接操作元素,只能通过混入的ProductN(n代表1-22的数字) 的prod 阅读全文
摘要:
RDD的好处很多,缺点在于不支持增量的迭代计算,比如在task的前半段只做一半数据的处理,后续的task再加上后一半处理,这种需求不支持 还有就是不支持细粒度的更新和写操作 rdd.Partitions() : 需要知道数据分配在哪里,返回一个array,里面是partition对象,该对象指向了数 阅读全文
摘要:
在spark中,原始的sortByKey是以map为操作对象,按照key进行排序,value跟随 如果我们要设置多维排序,就需要自定义这个key对象 下面以三维度为例: 该class需要 extends Ordered[T] with Serializable , 然后将这个类的对象作为sortBy 阅读全文
摘要:
List是长度不可变,内容也不可变的 初始化: val days = List("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday",1,2,3,4,5,6,7) // 通过apply创建val so 阅读全文
摘要:
初始化: val a = Array(1,2,3,4,"5","6") // Array 是不可变长的,但是内容是可变化的 val ab = ArrayBuffer(1,2,3,"4") // ArrayBuffer可变长 def abc (array : Array[Any]){} 添加: ab 阅读全文
摘要:
1. 我们发现计算步骤特别耗时,就在之前进行persist 2. 如果我们的计算链条特别长,就在之前进行persist 3. 在checkpoint之前,必须进行persist checkpoint是属于transform操作,也就是说,在最后的action被触发后,计算完成,框架发现在中间有一个c 阅读全文
摘要:
Chef 是一个面向开发dev和运维人员ops的自动化管理工具 大白话: chef就是一个针对不同系统的安装脚本代码化的管理工具。 安装脚本这个大家都知道,代码化的意思是把各式各样的脚本语言以统一的ruby语言来封装编写,代码化还有一个好处就是可以用git来管理 架构/工作流程 chef serve 阅读全文