- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 Storm+Kafka+Redis实现热门搜索
前面的章节已经分别讲到过Storm和Kafka,Redis的集成,由于项目中有个需求要保留统计客户的历史搜索,因为搜索的频率比较快,要让App端上客户端快速的看到自己的历史搜索,在选型上spark和Storm作为备选,Spark的吞吐量比较大但是相应的延迟比较高(spark比较适用于大数据量大统计并且对实时醒要求不是太高),因为要快速的响应客户端的调用决定用Storm并且Storm对Kafka和R
2017-01-23 20:33:36 2954
原创 Storm和JDBC native集成
org.apache.storm.jdbc.bolt 下面有两个JDBC的bolt 实现类,分别为JdbcLookupBolt 和JdbcLookupBolt 都继承AbstractJdbcBolt 抽象方法,当有原生的JDBC方法或者C3P0连接池的时当并发大的时候可能会出现连接不到数据库的问题,官方的Storm-JDBC方法可以解决连接的问题和JDBC初始化的问题Abstr
2017-01-22 19:55:02 1796
原创 Storm和Redis native的集成
Storm-redis provides basic Bolt implementations, RedisLookupBolt and RedisStoreBolt.Storm提供了两种Blot,从Redis查询和插入Redis
2017-01-22 14:08:00 1329 1
原创 Storm Trident使用心得
Trident 中含有对状态化(stateful)的数据源进行读取和写入操作的一级抽象封装工具,Trident 使用一种容错性的方式实现对 state 的管理,这样,即使在发生操作失败或者重试的情况下状态的更新操作仍然是幂等的,State 的更新过程支持多级容错性保证机制,考虑到可能存在的处理失败情况,tuple 有可能需要重新处理有三类支持容错性的 spout:“非事务型
2017-01-21 15:18:51 1818
原创 Spark SQL内置函数的使用Spark SQL执行计划总结
个人感觉Spark SQL的优势在于UDF和DataFrame(RDD的封装,由于RDD是可以是任意类型,因此可以封装一个对象在RDD里面,spark2.0以后对DataSet做了优化,由于DataFrame是弱类型的判断,DataSet是静态类型的在数据的优化和性能上应该有更大的提升)本文的操作spark 1.6.1内置函数 需要倒入 importorg.apache.spark.s
2017-01-18 16:46:33 7603
原创 Spring和Kafka集成
由于项目中Storm或者Spark的实时数据源来自Kafka,本文章具体说明了Spring和Kafka的整合maven中依赖如下:dependency> groupId>org.springframework.integrationgroupId> artifactId>spring-integration-kafkaartifactId> version>2.
2017-01-15 14:25:13 2309
原创 Storm与Kafka集成
因为项目上要做推荐,推荐对时间的要求比较高,如果用Spark的话存在一定的延迟(Spark的时间窗口为单位为1s),所以决定用storm做数据的实时处理,大概的架构思路为若要做数据清洗的话可以用Spark SQL(离线数据),Kafka做为消息队列(数据来源),storm做数据的处理,然后推荐算法的模型为协同过滤(ItemBase),某个用户的推荐结果可以放到redis(key_values,
2017-01-14 17:21:16 1172
原创 storm基本使用心得精华
storm基本使用与zookeepr的使用,由于Storm中Nimbus和Supervisor是无状态的,Nimbus会把topology写到到ZK当中,Supervisor会到ZK去读这些信息,实现了解耦;Storm如何确保消息的靠性
2017-01-09 19:08:15 2655
原创 Flume基本知识点
.flume是分布式的日志收集系统,把收集来的数据传送到目的地去。2.flume里面有个核心概念,叫做agent。agent是一个java进程,运行在日志收集节点。3.agent里面包含3个核心组件:source、channel、sink。3.1 source组件是专用于收集日志的,可以处理各种类型各种格式的日志数据,包括avro、thrift、exec、jms、spool
2017-01-05 14:45:08 637
原创 synchronized,CountDownLatch理解
1.不管synchronized是用来修饰方法,还是修饰代码块,其本质都是锁定某一个对象。修饰方法时,锁上的是调用这个方法的对象,即this;修饰代码块时,锁上的是括号里的那个对象在上面的代码中,很明显就是锁定的MyTask对象本身。但是由于在每一个线程中,MyTask对象都是独立的,这就导致实际上每个线程都对自己的MyTask进行锁定,而并不会干涉其它线程的MyTask对象。换言之,上锁
2017-01-05 14:33:05 1811
原创 Zookeeper APi使用
zookeeper Api的基本使用,如何连接ZK,创建ZK的节点和获取数据等;Zookeeper的核心是原子广播,这个机制保证了各个Server之间的同步。
2017-01-04 16:29:32 575
原创 Java RMI 结合 (zookeeper)
有四种类型的znode(分两大类persistent和ephemeral): 1、PERSISTENT-持久化目录节点 客户端与zookeeper断开连接后,该节点依旧存在 2、PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点 客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号 3、EPHE
2017-01-04 15:17:54 501
spark-redis connector
2017-09-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人