自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 为什么Kafka可以高效快速的存储

Kafka写入速度为什么很快

2017-01-05 10:36:04 3773

原创 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

原创 Hbase 批量插入(mapReduce)

Hbase利用MapReduce批量插入数据

2017-01-03 14:57:03 1454

spark-redis connector

spark对Redis原生的支持,可支持对Redis的各种操作 eg:sc.toRedisKV(saveRedisRDD), 配置如下 conf.set("redis.host","localhost") conf.set("redis.prot","6379")

2017-09-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除