加载中
Scala的相等性

Scala和java中的相等性 - scala java == 归约相等性 对象一致性 equals 归约相等性 归约相等性 eq 对象一致性 无 - 对象一致性 归约相等性 java == equals Scala eq ==和equals 简而言之, ...

04/01 22:03
43
Scala的运算符

在Scala中运算符的表示法不局限于字符, 中缀运算符可以是任何方法接受参数的方法 前缀运算符放在值的前面,只能是 + - ! ~ 四者之一, 方法名为unary_*(*为运算符) 后缀运算符是任何不接受参...

04/01 00:07
73
Scala的for

在for循环中 使用<-作为生成器 使用if作为过滤器 可以使用yield关键字将结果以集合的方式返回 val arr = Array((1,2,2), (2,3,4), (3,4,2), (4,1,3)) val result = for(t <- arr if t._2 > ...

03/30 21:50
54
Scala的implicit与implicitly

Scala中的implicit、implicitly用于隐式转换与隐式参数 规则: 只有标记为implicity才可用 被插入的隐式转换必须是当前作用域的单个标识符,或者跟隐式转换的源类型或目标类型有关联 每次只能...

03/25 23:37
162
使用SparkLauncher提交Spark作业

通常情况下,使用spark-submit来提交作业。 是否有办法使用代码动态地提交作业? 本文使用SparkLauncher提供了一种解决方法。 提交Spark Application val handle: SparkAppHandle = newSpark...

02/25 20:47
731
NIO 阻塞IO与非阻塞IO

阻塞IO 服务端没有收到有效的消息使, 会保持阻塞状态 , 可以使用多线程解决阻塞问题 客户端 final SocketChannel sChannel = SocketChannel.open(new InetSocketAddress("127.0.0.1", 888...

2019/10/02 20:15
54
NIO Channel

Channel 管道 Channel用于源节点与目标节点的连接 在java nio中负责缓冲区中数据的传输。 Channel本身不存储数据, 因此需要配合缓冲区进行传输。 在传统IO中, 若有大量IO操作, 会占用cpu...

2019/10/02 19:53
23
直接缓冲区与非直接缓冲区

缓冲区 缓冲区是在内存空间中预留的一部分存储空间,它们用来缓冲输入或输出的数据。 在java NIO中负责数据的存取,缓冲区就是数组。用于存储不同类型的数据 根据数据类型不同(boolean除外)...

2019/10/02 19:19
257
kafka的有序性

kafka只能保证Partition内部的有序, 不能保证全局的有序性。 严格的全局有序 将Partition数设为1, 所有数据写到同一个Partition中, 保证了有序性, 但是牺牲了kafka的性能。 业务的局部有...

2019/09/22 19:48
253
kafka文件存储与定位数据的原理

kafka的相对offset 每个分区的文件存储在各自分区的目录中。 每个分区的offset都从1开始。 每个分区将数据切分成多个segment(段), 每个段对应了两个文件:log和index 第一组命名为:00000...

2019/09/22 19:06
825
Spark kryo序列化

Spark中序列化的目的:序列化后数据更小,更便于传输和存储, 但是会耗用更多的cpu资源。 Spark中数据共有两种序列化方式: java :(默认) 兼容性好, 但是慢、较大。 Kryo :快, 较小, 但是...

2019/08/19 22:13
346
Spark Core 实现排序的三种方式

一、普通的实现方式 val data: RDD[String] = sc.parallelize(Array("aa 200 3000", "bb 200 4000", "cc 999 3000", "dd 10 20000")) data.map(x => { val splits: Array[String] = x.split(...

2019/08/18 23:06
189
Spark on yarn 资源调优

Spark作业在运行的时候应该分配足够多的资源, 在一定范围内, 增加资源和性能提升是成正比的。 提交到Yarn上时, 相关配置: --driver-memory Driver的内存 --executor-memory Executor的内存...

2019/08/18 22:59
218
Kafka消费者分区分配策略

当有多个消费者和多个分区时, 该如何分配它们?配置项partition.assignment.strategy决定了分配策略。 range (默认) 配置为org.apache.kafka.clients.consumer.RangeAssignor 对于每一个Top...

2019/08/18 18:07
322
Spark的宽依赖与窄依赖

窄依赖(Narrow Dependency): 一个父RDD的Partition只能被子RDD的某一个Partition使用一次 宽依赖(Wide Dependency):发生了Shuffle。一个父RDD的Partition只能被子RDD的某一个Partition使用...

2019/08/18 13:18
16
Spark persist 持久化

持久化算子可以将计算结果保存起来, 不必重新计算。 相关源码 持久化算子cache, persist, unpersist源码如下: /** * Persist this RDD with the default storage level (`MEMORY_ONLY`). *...

2019/08/18 12:01
64
Spark Application

名称 解释 Application 被提交的Spark作业。由一个Driver和多个Executor构成。 Driver program 运行main主函数并创建SparkContext的进程。 Cluster manager 获取资源的额外服务 Worker node ...

2019/08/18 10:33
24
flume写到HDFS处理小文件问题

当使用hdfs sink时 有可能会产生严重的小文件问题。 通过配置rollInterval, rollSize, rollCount三个参数来缓解小文件问题。 a1.sinks.hdfssink.type = hdfs a1.sinks.hdfssink.hdfs.path .....

2019/08/17 23:24
114
Spark on yarn

yarn 的执行流程 Spark Application Spark与MapReduce的区别 MapReduce是基于进程的, mapTask、reducerTask 都是进程。当task完成了, 这个进程就结束了。 Spark是基于线程的, 多个task并行...

2019/08/17 22:20
48
Spark 累加器 Accumulator

Spark的累加器Accumulator中, Executor内只能做add操作, 只有Driver才能读取它的值。 val doubleAcc: DoubleAccumulator = sc.doubleAccumulator("doubleAcc") val collAcc: CollectionAccu...

2019/08/17 16:32
64

没有更多内容

加载失败,请刷新页面

返回顶部
顶部