- 博客(189)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SpringBoot实现Socket客户端,Netty服务端实现Java通讯(附源码及注释详解)
SpringBoot实现Socket通讯:使用Netty实现一个Socket通讯,包括客户端和服务端,通过服务端进行监听,客户端发送信息,服务端可进行接收,并进行返回数据,完成一个完整的通讯客户端用的Socket编程,而服务端用到Netty框架实现。源码地址:源码地址!!!!!!!!而且启动初始化及调用的日志、注释写的很清楚,如下:package com.xu.server;impo...
2019-09-26 22:15:46
11447
21
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 附资源安装:jdk-8u221-linux-x64.tar.gz / jdk-8u141-linux-x64.tar.gz
Oracle的官方JDK下载需要注册,且会出现下载到最后一点就限速的情况,这里放一下已经下载好的JDK连接:版本是jdk-8u221-linux-x64.tar.gz链接:https://pan.baidu.com/s/1GZnUwB3nraObgperKlmBCg提取码:17xx1.原有虚拟机jdk的卸载:一般Vmware虚拟机安装后,会有自带的jdk- openjdk查看命令:r...
2019-07-29 20:34:47
27588
19
原创 HBase启动问题(一) org/apache/hadoop/hbase/master/ClusterSchema
org/apache/hadoop/hbase/master/ClusterSchema
2022-09-08 16:30:41
845
1
原创 Caused by: com.alibaba.fastjson.JSONException: default constructor not found. class
com.odx.common.bo.user.UserProjectNameRespDTO at com.alibaba.fastjson.util.JavaBeanInfo.build(JavaBeanInfo.java:558) at com.alibaba.fastjson.parser.ParserConfig.createJavaBeanDeserializer(ParserConfig.java:939) at com.alibaba.fastjson.parser.ParserConfi
2021-09-02 14:26:07
919
原创 电商指标项目-模板方法
1. 模板方法提取公共类模板方法 模板方法模式是在父类中定义算法的骨架,把具体实延迟到子类中去,可以在不改变一个算法的结构时可重定义该算法的某些步骤。 前面我们已经编写了三个业务的分析代码,代码结构都是分五部分,非常的相似。针对这样的代码,我们可以进行优化,提取模板类,让所有的任务类都按照模板的顺序去执行。BaseTask.scalapackage com.itheima.realprocess.taskimport com.itheima.realprocess.bean.ClickLo
2020-08-06 21:06:17
608
原创 电商指标项目-实时频道热点分析业务开发
1. 业务介绍频道热点,就是要统计频道被访问(点击)的数量。分析得到以下的数据:频道ID访问数量频道ID1128频道ID2401频道ID3501需要将历史的点击数据进行累加2. 业务开发步骤创建实时热点样例类,专门用来计算实时热点的数据将预处理后的数据,转换为要分析出来的数据(频道、访问次数)样例类按照频道进行分组(分流)划分时间窗口(3秒一个窗口)进行合并计数统计打印测试将计算后的数据下沉到Hbase实现创建一个Chann
2020-08-06 20:36:51
824
原创 电商指标项目-点击流日志实时数据预处理(含源码)
实时数据分析业务目标完成点击流日志数据预处理业务开发完成实时频道热点分析业务开发完成实时频道PV/UV分析业务开发完成实时频道用户新鲜度分析业务开发完成实时频道地域分析业务开发业务开发一般流程一般流程先对原始数据进行拓宽预处理将拓宽后的数据转换为要进行分析业务字段按照指定字段进行分组将组内数据划分到窗口中聚合计算将数据落地到hbase预处理的过程非常关键,它是业务的源头,如果预处理做得很好,后续业务的开发会变得简单很多点击流日志实时数据预处理1. 业务分析
2020-07-27 22:37:19
724
原创 电商指标项目-HBaseUtil工具类(完整源码)
Flink整合Kafka,可以从Kafka中获取数据进行分析,分析之后要把结果存入HBase中编写一个操作HBase的工具类。HBase作为一个数据库,写一个工具类,实现数据的增删改查1. API介绍方法名用途参数说明返回值getTable创建/获取表tableNameStr:表名columnFamily:列族名HBase Table对象putData插入/更新一列数据tableNameStr: 表名rowkey:String rowkeycolumnFami
2020-07-26 22:43:16
546
原创 电商指标项目-实时分析系统开发(详细源码)
开发Flink实时分析系统, 通过流的方式读取Kafka中的消息, 进而分析数据(详细源码在最后!!)业务实时分析频道热点实时分析频道PV/UV实时分析频道新鲜度实时分析频道地域分布实时分析运营商平台实时分析浏览器类型技术Flink实时处理算子使用CheckPoint和水印解决Flink生产上遇到的问题(网络延迟、丢数据)Flink整合KafkaFlink整合HBase1. 搭建【Flink实时数据分析系统】项目环境1.1 导入Maven项目依赖pom.xml文件
2020-07-26 10:30:32
1346
原创 电商指标项目-上报服务系统开发(详细源码)
上报系统:java工程,SpringBoot框架1.Spring Boot简介Spring Boot是一个基于Spring之上的快速应用构建框架。使用Spring Boot可以快速开发出基于Spring的应用。Spring Boot主要解决两方面的问题。依赖太多问题轻量级JavaEE开发,需要导入大量的依赖依赖之间还存在版本冲突配置太多问题大量的XML配置Spring Boot内部整合了大量的依赖,而且经过大量测试,选择的依赖都是没有版本冲突的。Spring B.
2020-07-22 16:59:02
863
原创 Git的Ubuntu安装及使用(详细图文)
一 查看是否安装了git 及 安装在终端执行:git没有,进行git安装:sudo apt-get install git执行中可能有无错误,提示:E: Failed to eftch http://archives.........E: Unable to fetch http.....这个缺少某些依赖,进行更新操作即可,执行下面:sudo apt-get update再次执行git的安装命令,ok安装完成后,执行git有信息输出,表示安装完成!!二 git的配置
2020-07-19 22:20:27
52741
6
原创 电商指标项目-项目整体工程搭建
工程结构本项目采用Maven构建,下面是我们的项目的整体工程架构。总工程为pyg,下面包含我们要开发的5个子模块。IDEA创建工程在指定目录创建父模块pyg,删除总工程的src目录在父模块配置Java版本为1.8<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId&g
2020-07-18 09:54:04
235
原创 电商指标项目-背景及技术选型
1. 项目背景1.1. 项目简介公司有一个正在运营中的电商网站,名称叫做【京京购】。这是一个B2B2C的电商平台,类似京东。现在我们想了解一下该电商网站的各种用户行为(访问行为、购物行为、点击行为等),统计出PV、UV等数据。针对这样的大数据分析项目,我们可以采用MapReduce、Spark或者Flink来进行开发。由于本项目会对实时数据和静态数据进行分析,所以我们采用性能更加优越的Flink来开发。业务目标帮助产品经理、数据分析师以及管理人员分析现有产品的情况根据用户行为分析结果持续改
2020-07-18 08:51:46
1919
原创 Git的Window安装及使用(详细图文)
一 注册https://github.com/在git注册一个账号:不再赘述二 在git网页中,建立分支操作三 window安装githttps://git-scm.com/downloads下载安装即可安装完毕后,在桌面,单击右键四 本地相关配置选择一个文件目录,右键:Git Bash Here绑定用户及生成SSH keygit config --global user.name “aaa”git config --global user.email "aa@qq.
2020-07-16 22:20:52
883
原创 Flink高级Demo(含源码)
Flink的状态管理keyed stateoperator stateFlink的CheckPointcheckpoint的持久化方案checkpoint持久化开发Flink SQL & Table APIDataSet/DataStream转TableTable转DataSet/DataStreamSQL操作数据TableAPI操作数据1. Flink的状态管理1.1. 什么是有状态的计算官网对Flink的解释:Stateful Computa..
2020-07-14 22:50:26
3084
1
原创 Flink流处理Demo(含源码)
Flink流处理的Source基于集合基于文件基于Socket自定义数据源使用Kafka作为数据源使用MySql作为数据源Flink流处理的Transformationkeybyconnectsplit和selectFlink流处理的Sinksink到kafkasink到mysqlFlink的Window操作时间窗口计数窗口自定义窗口Flink的水印机制1. 输入数据集DataSourceFlink 中你可以使用 StreamExecuti.
2020-07-14 22:45:55
3429
1
原创 Flink批处理Demo(含源码)
Flink的批处理Source基于本地集合基于文件基于CSV基于压缩文件Flink的TransformationmapflatmapfilterreducerebalanceFlink的Sink写入集合写入文件Flink程序本地执行和集群执行Flink的广播变量Flink的累加器Flink的分布式缓存Flink 应用程序结构主要包含三部分,Source/Transformation/Sink,如下图所示:Source: 数据源,Flink 在流.
2020-07-14 22:01:45
6134
原创 Flink架构介绍
1. Flink基石Flink之所以能这么流行,离不开它最重要的四个基石:Checkpoint、State、Time、Window。首先是Checkpoint机制,这是Flink最重要的一个特性。Flink基于Chandy-Lamport算法实现了一个分布式的一致性的快照,从而提供了一致性的语义。Chandy-Lamport算法实际上在1985年的时候已经被提出来,但并没有被很广泛的应用,而Flink则把这个算法发扬光大了。Spark最近在实现Continue streaming,Continue s
2020-07-12 17:08:17
3217
原创 Flink集群安装及使用
Flink支持多种安装模式local(本地)——单机模式,一般不使用standalone——独立模式,Flink自带集群,开发测试环境使用yarn——计算资源统一由Hadoop YARN管理,生产测试环境使用1. 伪分布环境部署Flink程序需要提交给Job ClientJob Client将作业提交给Job ManagerJob Manager负责协调资源分配和作业执行。 资源分配完成后,任务将提交给相应的Task ManagerTask Manager启动一个线程以开始执行。Ta
2020-07-12 16:51:43
2361
原创 Fink入门介绍
1. Flink介绍1.1. Flink引入这几年大数据的飞速发展,出现了很多热门的开源社区,其中著名的有Hadoop、Storm,以及后来的 Spark,他们都有着各自专注的应用场景。Spark掀开了内存计算的先河,也以内存为赌注,赢得了内存计算的飞速发展。Spark 的火热或多或少的掩盖了其他分布式计算的系统身影。就像 Flink,也就在这个时候默默的发展着。 在国外一些社区,有很多人将大数据的计算引擎分成了4 代,当然也有很多人不会认同。我们先姑且这么认为和讨论。第1代——Hadoop Ma
2020-07-10 21:13:47
20773
原创 sparksql与mysql(含源码)
Demo一:在mysql数据库中有员工表和部门表 表结构以及数据如下:create table dept(deptno int ,dname varchar(14) ,loc varchar(13)) ;create table emp(eno int ,ename varchar(10),job varchar(9),mgr int,hirdate date,sal int,comm int,deptno int not null);INSERT INTO dept VA
2020-07-10 20:19:25
752
原创 SparkStreaming完整demo(kafka版)-累积个数(updateStateByKey)
以SparkStreaming + Kafka 实现假定用户有某个周末网民网购停留时间的日志文本,基于某些业务要求,要求开发Spark应用程序实现如下功能:1、实时统计连续网购时间超过半个小时的女性网民信息。2、周末两天的日志文件第一列为姓名,第二列为性别,第三列为本次停留时间,单位为分钟,分隔符为“,”。数据:log1.txt:周六网民停留日志LiuYang,female,20YuanJing,male,10GuoYijun,male,5CaiXuyu,female,50L
2020-07-02 22:44:28
395
原创 SparkStreaming完整demo-累积个数(updateStateByKey)
以SparkStreaming + Tcp 实现假定用户有某个周末网民网购停留时间的日志文本,基于某些业务要求,要求开发Spark应用程序实现如下功能:1、实时统计连续网购时间超过半个小时的女性网民信息。2、周末两天的日志文件第一列为姓名,第二列为性别,第三列为本次停留时间,单位为分钟,分隔符为“,”。数据:log1.txt:周六网民停留日志LiuYang,female,20YuanJing,male,10GuoYijun,male,5CaiXuyu,female,50Liy
2020-07-02 20:08:15
244
原创 SparkSQL讲解
一 SparkSQL 是什么1.1 SparkSQL 的出现契机数据分析的方式数据分析的方式大致上可以划分为 SQL 和 命令式两种:命令式在前面的 RDD 部分, 非常明显可以感觉的到是命令式的, 主要特征是通过一个算子, 可以得到一个结果, 通过结果再进行后续计算.命令式的优点操作粒度更细, 能够控制数据的每一个处理环节操作更明确, 步骤更清晰, 容易维护支持非结构化数据的操作命令式的缺点需要一定的代码功底写起来比较麻烦SQL对于一些数据科学家,
2020-06-29 22:38:41
870
原创 RDD深入学习
RDD 的 Shuffle 和分区分区的作用RDD 使用分区来分布式并行处理数据, 并且要做到尽量少的在不同的 Executor 之间使用网络交换数据, 所以当使用 RDD 读取数据的时候, 会尽量的在物理上靠近数据源, 比如说在读取 Cassandra 或者 HDFS 中数据的时候, 会尽量的保持 RDD 的分区和数据源的分区数, 分区模式等一一对应分区和 Shuffle 的关系分区的主要作用是用来实现并行计算, 本质上和 Shuffle 没什么关系, 但是往往在进行数据处理的时候, 例如redu
2020-06-29 20:23:01
319
原创 RDD讲解:入门到深入
从案例分析在这份 WordCount 代码中, 大致的思路如下:1.使用 sc.textFile() 方法读取 HDFS 中的文件, 并生成一个 RDD2.使用 flatMap 算子将读取到的每一行字符串打散成单词, 并把每个单词变成新的行3.使用 map 算子将每个单词转换成 (word, 1) 这种元组形式4.使用 reduceByKey 统计单词对应的频率其中所使用到的算子有如下几个:flatMap 是一对多map 是一对一reduceByKey 是按照 Key 聚合, 类似 Ma
2020-06-29 19:44:56
957
原创 Spark 入门
Spark 官方提供了两种方式编写代码, 都比较重要, 分别如下spark-shellSpark shell 是 Spark 提供的一个基于 Scala 语言的交互式解释器, 类似于 Scala 提供的交互式解释器, Spark shell 也可以直接在 Shell 中编写代码执行这种方式也比较重要, 因为一般的数据分析任务可能需要探索着进行, 不是一蹴而就的, 使用 Spark shell 先进行探索, 当代码稳定以后, 使用独立应用的方式来提交任务, 这样是一个比较常见的流程spark-
2020-06-28 21:13:32
460
原创 Spark优点、组件及与hadoop的异同
一 Spark是什么Apache Spark 是一个快速的, 多用途的集群计算系统, 相对于 Hadoop MapReduce 将中间结果保存在磁盘中, Spark 使用了内存保存中间结果, 能在数据尚未写入硬盘时在内存中进行运算.Spark 只是一个计算框架, 不像 Hadoop 一样包含了分布式文件系统和完备的调度系统, 如果要使用 Spark, 需要搭载其它的文件系统和更成熟的调度系统二 为什么会有SparkSpark 产生之前, 已经有非常成熟的计算系统存在了, 例如 MapReduce,
2020-06-27 18:11:15
567
原创 Akka并发编程-Akka特性,并实现两个进程之间的通信(含完整Demo)
Akka介绍Akka是一个用于构建高并发、分布式和可扩展的基于事件驱动的应用的工具包。Akka是使用scala开发的库,同时可以使用scala和Java语言来开发基于Akka的应用程序。Akka特性提供基于异步非阻塞、高性能的事件驱动编程模型内置容错机制,允许Actor在出错时进行恢复或者重置操作超级轻量级的事件处理(每GB堆内存几百万Actor)使用Akka可以在单机上构建高并发程序,也可以在网络中构建分布式程序。Akka通信过程以下图片说明了Akka Actor的并发编程模型的基本流
2020-06-25 22:45:47
1255
原创 scala的高阶函数
一 柯里化柯里化(Currying)是指将原先接受多个参数的方法转换为多个只有一个参数的参数列表的过程。程序:// 柯里化:实现对两个数进行计算def calc_carried(x:Double, y:Double)(func_calc:(Double, Double)=>Double) = { func_calc(x, y)}def main(args: Intrray[String]): Unit = { println(calc_carried(10.1, 10
2020-06-19 20:22:03
294
原创 Actor并发编程模型
Actor并发编程模型Actor并发编程模型,是scala提供给程序员的一种与Java并发编程完全不一样的并发编程模型,是一种基于事件模型的并发机制。Actor并发编程模型是一种不共享数据,依赖消息传递的一种并发编程模式,有效避免资源争夺、死锁等情况。Java并发编程对比Actor并发编程Java内置线程模型scala Actor模型"共享数据-锁"模型 (share data and lock)share nothing每个object有一个monitor,监视线程对共
2020-06-18 21:41:42
693
原创 scala方法函数学习小结
yieldyield会把当前元素给记录下来,并保存到集合中 val v = for(i <- 1 to 10) yield i * 10 println(v)结果:Vector(10, 20, 30, 40, 50, 60, 70, 80, 90, 100)var valvar修饰的变量是可变的,val是不可变的breakpackage com.xuimport scala.util.control.Breaks._object ScalaTest { def
2020-06-17 07:39:02
271
原创 Actor并发编程模型实现多文件的单词统计(完整源码)
给定几个文本文件(文本文件都是以空格分隔的),使用Actor并发编程来统计单词的数量思路实现思路MainActor获取要进行单词统计的文件根据文件数量创建对应的WordCountActor将文件名封装为消息发送给WordCountActorWordCountActor接收消息,并统计单个文件的单词计数将单词计数结果发送给MainActorMainActor等待所有的WordCountActor都已经成功返回消息,然后进行结果合并步骤1 | 获取文件列表实现思路在main方法中读取
2020-06-14 21:55:41
1999
原创 HBase基本介绍
一 简介hbase是bigtable的开源java版本。是建立在hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读写nosql的数据库系统。它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作)。主要用来存储结构化和半结构化的松散数据。Hbase查询数据功能很简单,不支持join...
2020-06-10 22:07:28
189
原创 HBase的java代码开发(完整源码)
熟练掌握通过使用java代码实现HBase数据库当中的数据增删改查的操作,特别是各种查询,熟练运用第一步:创建maven工程,导入jar包<dependencies> <!-- https://mvnrepository.com/artifact/org.apache.hbase/hbase-client --><dependency> <groupId>org.apache.hbase</groupId> &l
2020-06-08 22:13:05
1474
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人