- 博客(37)
- 资源 (3)
- 收藏
- 关注
原创 1:java中泛型
1. 概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来.
2020-05-14 14:37:49
143
原创 as用profile和mat排查内存泄漏步骤解析
对于Android性能优化,其中很重要一块就是内存优化,内存优化主要还是解决内存泄漏问题,我一般分为三步进行排查:1、使用LeakCanary进行初步排查;2、使用Android studio自带的Android Profiler分析;3、使用MemoryAnalyzer(MAT)分析;对于这三步,如果对内存消耗这块没有严格要求,一般使用LeakCarary就可以了。如果对内存管控比较严格,一般使用Android Profiler也是可以的,如果还不能定位到问题就可以使用MAT了。Lea
2020-05-13 15:01:55
2003
原创 android内存优化方法
1:数据结构优化 频繁的字符串拼接用stringBuilder,用+的方式拼接会产生中间字符串内存块,stringBuilder拼接的效率是+方式拼接的n倍,特别是很多字符串拼接。 ArrayMap或者SparseArray替换hashMap,占用内存少,使用效率比hashmap高,使用方法是一样的。 内存抖动:抖动是锯齿形的很快升落,这一般是变量使用不当造成,一下申请很多变量空间,一会不用了,一会又申请很多,一会又不用了,一会又申请很多重复造成抖动。
2020-05-12 19:28:55
371
原创 android第一篇:安卓内存优化,泄漏与引用
3:安卓性能优化之内存优化为什么要做内存优化?如果不优化内存,1)app运行内存是有限制的,因为安卓手机是多任务系统同时运行多个app,不做限制,一个app运行吃光内存,其它app就运行不了,应用分配的内存要么256m,要么512m。超出这个限制大小,就会oom。2)内存占用太大不做优化,在流畅性,响应速度,用户体验上都会有较大影响。安卓内存的管理方式2.1)安卓系统内存分配方式和回收方式2.2)app内存限制机制,app运行吃内存大户是图片。2.3)切换应用时,后台app清理机制。Ap
2020-05-12 17:08:37
244
原创 第111讲: Spark Streaming电商广告点击综合案例在线实现每个Province点击排名Top5广告
package com.dt.spark.SparkApps.sparkstreaming;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLExce
2016-06-05 20:12:07
2830
原创 第110讲: Spark Streaming电商广告点击综合案例通过updateStateByKey等实现广告点击流量的在线更新统计
package com.dt.spark.SparkApps.sparkstreaming;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLExce
2016-06-05 20:10:28
2825
1
原创 第110课: Spark Streaming电商广告点击综合案例通过updateStateByKey等实现广告点击流量的在线更新统计
1:UpdateStatebyKey,遵循RDD的不变性,采用cogroup的方式,cogroup就是按照key对value进行聚合操作,在历史的基础上不断的更新,不会造成内存溢出等情况,而且它对数据的保存时同时内存和磁盘的方式,,每次操作的时候都要进行全量的扫描。所以这个时候,随着时间的进行,性能会越来越差。可能说开始的时候spark streaming对每个batch的处理通过updateSt
2016-05-30 21:33:01
1447
原创 第109讲: Spark Streaming电商广告点击综合案例动态黑名单基于数据库MySQL的真正操作代码实战
package com.dt.streaming;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Array
2016-05-28 09:21:17
2042
2
原创 第108讲: Spark Streaming电商广告点击综合案例动态黑名单过滤真正的实现代码
package com.dt.streaming;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.HashM
2016-05-25 07:04:49
2055
1
原创 第107课: Spark Streaming电商广告点击综合案例底层数据层的建模和编码实现(基于MySQL)
1:传统的关系型数据库都是伪分布式,在100个使用了底层数据持久化层的案例中,至少有90个底层都是基于数据库的。当然可以选择基于Hbase或者Redis,但是实际上大多数人底层都会基于数据库。因为1,数据库可以非常高效的读写,尤其频繁的批量的插入,数据库特别适合。2,传统的it系统大多数都是基于数据库,所以spark处理的结果,如果仍给了数据库,传统的javaee系统例如spring,这些系统可以
2016-05-24 07:16:31
1231
原创 第106讲: Spark Streaming电商广告点击综合案例黑名单过滤实现
package com.dt.streaming;import java.util.Arrays;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.Map;import java.util.Set;import org.apache.spark.
2016-05-23 22:34:48
1393
原创 第105讲 Spark Streaming电商广告点击综合案例在线点击统计实战项目第一天
本讲的目标是广告点击流进来,我们对它进行统计。首先实现对数据进行统计,后续十讲我们再做其它操作。1:spark用scala开发,只能用java与数据库交互,用Hbase交互的时候,Spark在线上生产环境与Hbase交互的时候,也是用java交互。等,应该国内大多数情况下还是使用java。而scala更多是为spark 内核服务,要求精通scala,估计主要不是为了开发项目,而是为了研究和改造
2016-05-23 06:42:10
2575
1
原创 第104讲: Spark Streaming电商广告点击综合案例需求分析和技术架构
本讲内容:对京东等电商网站对广告点击行为进行分析,具体我们有哪些需求点,我们初步的技术架构是什么样的。1:广告点击系统实时分析:广告来自于网站或者移动App等,广告需要设定在具体的广告位,当用户点击广告的时候,一般都会通过JavaScript、Ajax或者Socket往后台发送点击的日志数据,在这里我们是要基于Spark Streaming做实时在线统计,那么数据就需要放进消息系统(Kaf
2016-05-22 21:16:34
2377
原创 第103讲: 动手实战联合使用Spark Streaming、Broadcast、Accumulator实现在线黑名单过滤和计数
1:广播可以自定义,例如你自定义广播里面的内容,就有很多你可以自定义的操作。尤其是结合了Broadcast和Accumulator的时候,他可以实现一些非常复杂的功能。2:广播和计数器在企业的实际开发中,非常重要,主要是可以自定义,自定义的时候可以实现非常复杂的逻辑。计数器Accumulator可以计数黑名单。黑名单数据可以写在广播里面3:下面直接上代码,当然,这只是初步的使用,广播和计算
2016-05-22 17:13:04
1850
原创 第102讲: 动手实战Spark Streaming自定义Receiver并进行调试和测试
1:SparkStreaming虽然说已经支持了很多不同类型的数据来源。但是有时候可能我们的一些数据来源非常特殊 ,不是它天然默认支持的,这时候就要自定义Receiver。而自定义Receiver,一般都是基于网络的方式。因为你传数据的话,一般是从另外一个网络端口传过来,至于传的协议是另外一码事。2:从本质上来说,SparkStreaming中的所有Receiver,都是自定义的Receive
2016-05-22 13:41:13
2927
原创 第101讲: 使用Spark Streaming企业实际数据处理流水线完整声明周期
1:kafka直接也可以监控一个文件夹,但是为什么我们采用flume的方式,通过flume把文件传给kafka,而不直接通过kafka去监控一个文件夹呢?1)flume可以搜集分布式的日志2)kafka直接读取文件,默认情况下,kafka要求文件格式是json格式。而数据很多情况下都不是json格式。这样就会崩溃。当然自定义一个读取器。所以kafka生产环境下很少去读文件,它就是直接收放消
2016-05-22 11:35:21
1437
原创 第99讲:使用sparkStreaming实战对论坛网站动态行为的多维度分析下
/* * 第99讲,消费者消费SparkStreamingDataManuallyProducerForKafka类中逻辑级别产生的数据,这里pv,uv,注册人数,跳出率的方式 */package com.dt.streaming;import java.util.HashMap;import java.util.HashSet;import java.ut
2016-05-19 07:19:20
1661
原创 第98讲 使用Spark Streaming实战对论坛网站动态行为的多维度分析(上)
package com.dt.streaming;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Properties;import java.util.Random;import kafka.javaapi.producer.Producer;import kafka.produce
2016-05-16 20:44:09
1089
原创 第97讲:使用Spark Streaming+Spark SQL来在线动态计算电商中不同类别中最热门的商品排名,
package com.dt.streamingimport org.apache.spark.SparkConfimport org.apache.spark.sql.Rowimport org.apache.spark.sql.hive.HiveContextimport org.apache.spark.sql.types.{IntegerType, StringType, Str
2016-05-15 22:56:03
1336
原创 第96讲 通过Spark Streaming的foreachRDD把处理后的数据写入外部存储系统(数据库)中
1:写到外部数据源,表面上看是spark去写,实际上就是jvm去操作。jvm写数据库,spark streaming就可以写数据库。jvm如果能写到Hbase或者Redius中,Spark也能。2:spark streaming中我们使用Dstream.foreachRDD(),来把Dstream中的数据发送到外部的文件系统中,外部文件系统主要是数据库,Hbase,Redius,数据库比较少量
2016-05-15 20:14:38
3698
原创 第95讲:使用Scala开发集群运行的Spark来实现在线热搜索词获取
package com.dt.streamingimport org.apache.spark.SparkConfimport org.apache.spark.streaming.{Seconds, StreamingContext}/** * 使用Scala开发集群运行的Spark来实现在线热搜索词 * * 背景描述:在社交网络(例如微博)、电子商务(例如京东)、搜索引擎(例如
2016-05-15 16:37:16
1034
原创 第94讲, 使用Scala开发集群运行的Spark 实现在线黑名单过滤程序
package com.dt.spark.sparksteamingimport org.apache.spark.SparkConfimport org.apache.spark.SparkContextimport org.apache.spark.rdd.RDDimport org.apache.spark.streaming.StreamingContextim
2016-05-15 10:18:14
1045
原创 第93讲:Spark Streaming updateStateByKey案例实战和内幕源码
本节课程主要分二个部分:一、Spark Streaming updateStateByKey案例实战二、Spark Streaming updateStateByKey源码解密第一部分:updateStateByKey它的主要功能是随着时间的流逝,在Spark Streaming中可以为每一个key可以通过CheckPoint来维护一份state状态,通过更新函数对该k
2016-05-11 07:17:43
9939
原创 第92讲 SparkStreming中的Transformations和状态管理
本期内容:1.SparkStreaming中的Transforamtions2.SparkStreaming中的状态管理一.DStream就是一个RDD之上的一个抽象,DStream和时间结合起来就不断的触发产生RDD的实例,可以说我们对Dstream的操作就初步定义了对RDD的操作,只不过需要时间的间隔也就是internalbatch去激活这个模板,生成具体的RDD的实例和具体的jo
2016-05-10 11:45:57
1726
原创 第91讲:sparkStreaming基于kafka的Direct详解
1:Direct方式特点:1)Direct的方式是会直接操作kafka底层的元数据信息,这样如果计算失败了,可以把数据重新读一下,重新处理。即数据一定会被处理2)由于直接操作的是kafka,kafka就相当于你底层的文件系统。这个时候能保证严格的事务一致性,即一定会被处理,而且只会被处理一次。而Receiver的方式则不能保证,因为Receiver和ZK中的数据可能不同步,spark St
2016-05-07 22:47:45
7603
原创 第90讲,Spark streaming基于kafka 以Receiver方式获取数据 原理和案例实战
1:SparkSteaming基于kafka的方式,主要有俩种,即Receiver和Derict,基于Receiver的方式,是sparkStreaming给我们提供了kafka访问的高层api的封装,而基于Direct的方式,就是直接访问,在sparkSteaming中直接去操作kafka中的数据,不需要前面的高层api的封装。而Direct的方式,可以进行更好的控制!2:实际上做kafka
2016-05-07 20:47:14
6926
1
原创 linux下多节点之间,免密钥访问实现
说明:目前安装了4个Redhat linux操作系统,主机名分别为hadoop01,hadoop02,hadoop03,hadoop04其中hadoop01为主节点,hadoop02,hadoop03,hadoop04为从节点四个节点ip地址为192.168.10.61~64.如果不修改hosts文件,从第二部开始可将hadoop01~04改为所对应的ip地址,如第4步中的scp ~/.s
2016-05-05 17:05:57
3614
原创 Maven配置和打包以及使用Eclipse构建Maven项目
Maven这个个项目管理和构建自动化工具,越来越多的开发人员使用它来管理项目中的jar包。本文仅对Eclipse中如何安装、配置和使用Maven进行了介绍。完全step by step。如果觉得本文对你有用,请移步到:http://download.csdn.net/detail/qjyong/5582071 下载PDF版,http://download.csdn.net/de
2016-05-05 16:26:46
8252
2
原创 Flume Push数据到spark streaming或者接收Spark streaming的poll数据时实际运行程序总结
1:如果windows的eclipse,集群运行模式,只能maven打jar包的方式,放到集群上通过脚本运行,如果jar包没打进去或者不是maven的方式打出的jar包,可以把jar包放到集群spark的lib目录下,在脚本中通过--jars /usr/local/spark/spark_1.6.0/lib/xxx.jar的方式指定一个jar包,可是可能还是会有问题,需要攻破(多个jar包要注
2016-05-05 12:06:14
1457
原创 windows系统重装步骤
1. 准备查看主板是否支持UEFI查看磁盘是MBR还是GPT如果想装Win7,就要准备好驱动精灵万能网卡版,Win10可以省略这步 「因为,Win7并不自带驱动。没有驱动就上不了网,没有网电脑就失去了意义。而驱动精灵万能网卡版能使你的电脑在重装Win7后可以连上网,连上网后就可以下载其他的驱动了」正版用户请准备好你的码,学生用户下面再说。
2016-05-05 09:18:37
7648
原创 第88讲:Spark Streaming从Flume Poll数据
本节课分成二部分讲解:一、Spark Streaming on Polling from Flume实战二、Spark Streaming on Polling from Flume源码第一部分:推模式(Flume push SparkStreaming) VS 拉模式(SparkStreaming poll Flume)采用推模式:推模式的理解就是Flum
2016-05-03 11:36:34
3573
原创 第89讲:Spark Streaming on Kafka解析和安装实战
本课分2部分讲解:第一部分,讲解Kafka的概念、架构和用例场景;第二部分,讲解Kafka的安装和实战。由于时间关系,今天的课程只讲到如何用官网的例子验证Kafka的安装是否成功。后续课程会接着讲解如何集成Spark Streaming和Kafka。一、Kafka的概念、架构和用例场景http://kafka.apache.org/documentation
2016-04-26 15:03:51
1847
原创 第86讲:SparkStreaming数据源Flume实际案例分享
一、什么是Flume? flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用。Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 cloudera。但随着 FLume 功能的扩展,Flume OG 代码工程臃肿、核心组件设计不合理、核心配置不标准等缺点暴露出来,尤其是在 Flume OG 的最后一个发行版
2016-04-26 15:02:12
1982
原创 第85讲:基于HDFS的SparkStreaming案例实战和内幕源码解密
一:Spark集群开发环境准备启动HDFS,如下图所示: 通过web端查看节点正常启动,如下图所示:2.启动Spark集群,如下图所示:通过web端查看集群启动正常,如下图所示:3.启动start-history-server.sh,如下图所示:二:HDFS的SparkStreaming案例实战(代码部分)
2016-04-26 15:01:27
2578
原创 第84讲:StreamingContext、DStream、Receiver深度剖析
本课分成四部分讲解,第一部分对StreamingContext功能及源码剖析;第二部分对DStream功能及源码剖析;第三部分对Receiver功能及源码剖析;最后一部分将StreamingContext、DStream、Receiver结合起来分析其流程。一、StreamingContext功能及源码剖析:1、 通过Spark Streaming对象jssc,创建应用程序主入口
2016-04-26 14:59:38
1758
原创 第83讲:Scala和Java二种方式实战Spark Streaming开发
一、Java方式开发1、开发前准备:假定您以搭建好了Spark集群。2、开发环境采用eclipse maven工程,需要添加Spark Streaming依赖。3、Spark streaming 基于Spark Core进行计算,需要注意事项:设置本地master,如果指定local的话,必须配置至少二条线程,也可通过sparkconf来设置,因为Spark
2016-04-26 14:58:15
3098
原创 第87讲:Flume推送数据到SparkStreaming案例实战和内幕源码解密
本期内容:1. Flume on HDFS案例回顾2. Flume推送数据到Spark Streaming实战3. 原理绘图剖析1. Flume on HDFS案例回顾上节课要求大家自己安装配置Flume,并且测试数据的传输。我昨天是要求传送的HDFS上。文件配置:~/.bashrc:export FLUME_HOME=/usr/lo
2016-04-26 14:54:55
1173
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人