Spark Streaming Kafka开发现在很成熟了
来源:互联网 发布:java api接口开发 编辑:程序博客网 时间:2024/06/07 06:18
现在spark streaming流处理很成熟了,基于kafka的官方也提供了2种API。一种是Receiver-based Approach,一种是Direct Approach (No Receivers)。第二种方式性能比较高,是以后的趋势,但目前还叫实验版。
第一种构造方法是:
val kafkaStream = KafkaUtils.createStream(streamingContext,
[ZK quorum], [consumer group id], [per-topic number of Kafka partitions to consume])
我们一般这么用:
val ths = (1 to numThreads.toInt).map { i =>
KafkaUtils.createStream(ssc, zkQuorum, group, topicMap)
}
val kafkaStreams = ssc.union(ths)
启动多个,然后在合并,这是为了让receiver更分散。
第二种是:
val directKafkaStream = KafkaUtils.createDirectStream[
[key class], [value class], [key decoder class], [value decoder class] ](
streamingContext, [map of Kafka parameters], [set of topics to consume])
用法如下:
val kafkaStreams = KafkaUtils.createDirectStream[String, String, StringDecoder, StringDecoder](ssc, kafkaParams, topicSet)
处理结果呢?一般都怎么放?在storm中一般在bolt中写mysql,hive,kafka,hbase。都有,我感觉hbase比较方便一点。当然回写kafka好像也不错。可以试试。
写Hbase:
kafkaStreams.foreachRDD(rdd => {
rdd.foreachPartition(par => {
val conf = HBaseConfiguration.create()
val conn = HConnectionManager.createConnection(conf)
val table: HTableInterface = conn synchronized {
conn.getTable(“Your Table”)
}
table.setAutoFlushTo(false)
table.setWriteBufferSize(10 * 1024 * 1024L)
val list = new java.util.ArrayListPut
par.foreach(a => {
/ ** 业务逻辑
…
**/
val put = new Put(xxx)
list.add(put)
})
table.put(list)
table.flushCommits()
table.close()
conn.close()
})
})
如果感觉处理不过来,可以试试设置如下参数:
spark.streaming.receiver.maxRate // 第一种方式
spark.streaming.kafka.maxRatePerPartition // 第二种方式
建议:流处理最好不要on yarn(特指动态资源分配方式提交到yarn)
- Spark Streaming Kafka开发现在很成熟了
- Spark Streaming和Kafka整合开发指南
- Spark Streaming和Kafka整合开发指南
- Zookeeper+Kafka+Spark streaming单机整合开发
- Spark Streaming整合Kafka
- Spark Streaming + kafka
- Kafka+Spark Streaming集成
- kafka + spark streaming 架构
- spark streaming+kafka
- Spark Streaming + Kafka
- kafka-spark streaming-hbase
- spark streaming 整合kafka
- spark streaming + kafka
- flume kafka spark streaming
- Kafka->Spark Streaming->mongodb
- spark streaming kafka wordcount
- Spark Streaming 实战(1)搭建kafka+zookeeper+spark streaming 的windows本地开发环境
- Spark Streaming和Kafka整合开发指南(一)
- 笔记 Android广播初使用
- 在Frame对窗口进行重绘
- 推荐!手把手教你使用Git
- Python:使用property装饰器将方法转为属性
- Power下,Ubuntu代替PowerKVM作为KVM hypervisor
- Spark Streaming Kafka开发现在很成熟了
- 格式化持续时间转换
- poj3159 Candies--单源最短路径&差分约束
- iOS之 动态热修复技术JSPatch(二)
- Unix Study之--AIX安装和配置SSH
- 学习OpenGL(三)绘制点
- gcc visibility hidden 与 static
- UVALive 4255-Guess-拓扑排序
- Open vSwitch匹配处理流程和拓展性