- 博客(8)
- 资源 (1)
- 收藏
- 关注
转载 Kafka高性能架构之道
本文转发自技术世界,原文链接 http://www.jasongj.com/kafka/high_throughput/ 本文从宏观架构层面和微观实现层面分析了Kafka如何实现高性能。包含Kafka如何利用Partition实现并行处理和提供水平扩展能力,如何通过ISR实现可用性和数据一致性的动态平衡,如何使用NIO和Linux的sendfile实现零拷贝以及如何通过顺序读...
2018-03-28 11:10:26 275
原创 Spark DataFrame transformation操作报错问题
在Spark2.0之后版本中,当对DataFrame对象进行transformation操作的时候,编译阶段不会报错,但是运行阶段就会抛出异常,提示这样的错误信息:<console>:26: error: Unable to find encoder for type stored in a Dataset. Primitive types (Int, String, etc...
2018-03-23 17:22:16 588
原创 Spark Streaming 流计算状态管理
spark流计算的数据是以窗口的形式,源源不断的流过来的。如果每个窗口之间的数据都有联系的话,那么就需要对前一个窗口的数据做状态管理。spark有提供了两种模型来达到这样的功能,一个是updateStateByKey,另一个是mapWithState ,后者属于Spark1.6之后的版本特性,性能是前者的数十倍。 updateStateByKey 通过源码查看发现,这个模型的核...
2018-03-22 15:27:15 3747
原创 利用伴生对象构建Scala单例
在Scala语法中,并没有静态成员,所以并不能像Java一样构建单例。但是他拥有伴生对象的特性,所以可以利用这一点来达到同样的目的。 伴生对象类型为object,名称和class保持一致,那么这个object就是此class的伴生对象。class和object之间可以互相访问各自的成员变量,且object内的成员变量都是静态的。下面贴一下代码,具体如何实现。class Student...
2018-03-21 10:54:38 336
原创 Scala的高阶函数使用总结
函数在Scala语言中有着举足轻重的地位,它和类,变量同样属于一等公民的地位,函数可以脱离类而独立存在,同时自己也可以作为参数传递给其他函数。 匿名函数scala> val sayHello = (name: String) => println("my name is:" + name) sayHello: String => Unit = <functio...
2018-03-20 12:56:22 3274
原创 Scala隐式转换几种使用场景
Scala提供的隐式转换的特性的作用,简单说就是:当Scala编译器进行类型匹配时,如果找不到合适的类型,那么隐式转换会让编译器在作用范围内自动推导出合适的类型,在代码重构设计上,可以避免冗余的代码,使得代码非常优雅。 使用场景一:隐式参数scala> def sayHello(age: Int)(implicit name: String) = println("my na...
2018-03-19 20:40:04 3166
转载 Java8 新特性之流式数据函数式编程
一. 流式处理简介在我接触到java8流式处理的时候,我的第一感觉是流式处理让集合操作变得简洁了许多,通常我们需要多行代码才能完成的操作,借助于流式处理可以在一行中实现。比如我们希望对一个包含整数的集合中筛选出所有的偶数,并将其封装成为一个新的List返回,那么在java8之前,我们需要通过如下代码实现:List<Integer> evens = new ArrayList<&g...
2018-03-19 14:30:41 1836
原创 parquet研究及与spark的联合使用
这段时间因为项目,对parquet做了一系列研究,从写入跟踪到合并及spark使用等等场景。 选择parquet来对流数据进行序列化,用于后续离线分析的理由有以下几点: 1、流数据一般格式比较杂乱,可以跳过不符合条件的数据,只读取需要的数据,降低IO数据量。 2、网络流量数据量非常的庞大,即使过滤部分,还是非常吓人,parquet压缩编码可以降低磁盘存储空间。由于同一列的...
2018-03-19 11:23:26 2427 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人