自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(154)
  • 收藏
  • 关注

原创 一个涵盖计算机基础&java&大数据的知识仓库

涵盖 计算机/java/大数据 基础知识的仓库git (帮忙start一下!!!)github文档http://zisuu.gitee.io/hy_computerandjava_basic基础:这条知识链层层相扣,缺一不可操作系统->计算机网络->java jvm虚拟机-> java 多线程,高并发 ->设计模式 -> spring源码请学习多线程前,先学操作系统和jvm换句话说,之前的每个都要学,切勿心急直接跳到多线程本人在大一下时看过好几遍的多线程和

2020-12-28 17:07:08 283 1

原创 5.网络层(二)

1.IPV6的诞生1.诞生原因解决IP地址耗尽问题的措施有以下三种:①采用无类别编址CIDR,使IP地址的分配更加合理;②采用网络地址转换(NAT)方法以节省全球IP地址;③采用具有更大地址空间的新版本的IPv6。其中前两种方法只是延长了IPv4 地址分配结束的时间,治标不治本,只有第三种方法从根本上解决了IP地址的耗尽问题。2.数据格式地址格式IPv6的128位地址每16位划分为一段,总共8段,每段用冒号隔开,这种表示方法叫做“冒号十六进制表示法”,如下:fe80:0000:

2020-11-28 21:44:33 534

原创 4.网络层(一)

一 网络层的功能1.主要任务将分组从源端传到目的端,为分组交换网上的不同主机提供通信服务.网络层的传输单位是数据报2.异构网络互联所谓异构网络互联,是指将两个以上的不同的计算机网络,通过一定的方法, 用一种或多种通信处理设备(即中间设备)相互连接起来,以构成更大的网络系统。中间设备又称中间系统或中继系统。根据所在的层次,·中继系统分为以下4种:1)物理层中继系统:中继器,集线器(Hub)。2)数据链路层中继系统:网桥或交换机。3)网络层中继系统:路由器。4)网络层以上的中继系统:网

2020-11-28 21:43:24 940

原创 3.数据链路层

一 定义(一) 基本概念结点: 主机,路由器链路: 网络中两个节点的物理通道,链路的传输介质主要有双绞线,光纤等,为物理层的概念数据链路: 网络中两个节点之间的逻辑通道, 把实现控制数据传输协议的硬件和软件加到链路上就构成了数据链路,为数据链路层的概念帧: 数据链路层将网络层的分组封装成帧进行传输(二) 功能描述数据链路层在物理层的基础上向网络层提供服务,其主要作用是加强物理层的比特流传输,将物理层提供的可能出错的物理连接,改造为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路

2020-11-28 21:42:58 834

原创 2.计算机网络通信基础

网络通信基础网络通信偏向于操作系统层面的知识,但是也是计算机网络的基础,是理解好计算机网络的的前提0.同步,异步 ,阻塞/非阻塞0.1 进程通信上下文的同步/异步, 阻塞/非阻塞首先强调一点, 网络上的很多博文关于同步/异步, 阻塞非阻塞区别的解释其实都很经不起推敲。 例如怎样理解阻塞非阻塞与同步异步的区别 这一高赞回答中 , 有如下解释(不准确):同步/异步关注的是消息通信机制 (synchronous communication/ asynchronous communication) 。

2020-11-28 21:42:20 737 1

原创 1.计算机网络入门基础概念(必看)

1.计算机网络基础1 osi各层机构和功能学习计算机网络时我们一般采用折中的办法,也就是中和 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚。1.1 应用层应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统DNS,支持万维网应用的 HTTP协议,支持电子邮件

2020-11-28 21:41:41 842

原创 2.图论例题

class Solution {public int longestIncreasingPath(int[][] matrix) {if (matrixnull||matrix.length0){return 0;}int[][] count = new int[matrix.length][matrix[0].length]; //统计每个点的入度用count数组保存,因为是递增,所以如果在上下左右,每发现一个比当前点小的数,当前点入度+1 for (int i = 0; i &

2020-11-28 21:40:02 675 1

原创 1.图论

一 图的表示与遍历1.邻接矩阵2.邻接表邻接表模板: typedef pair<int,int> ll; map<int,vector<ll>> graph; //初始化 ..... // for (int i=0;i<m;i++){ cin>>a>>b>>value; graph[a].push_back({b,value});

2020-11-28 21:39:27 491

原创 操作系统(面试题)----1.总结一

一 操作系统基础1.1 什么是操作系统?????‍????面试官 : 先来个简单问题吧!什么是操作系统????? 我 :我通过以下四点向您介绍一下什么是操作系统吧!操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石。操作系统本质上是一个运行在计算机上的软件程序 ,用于管理计算机硬件和软件资源。 举例:运行在你电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等等硬件。操作系统存在屏蔽了硬件层的复杂性。 操作系统就像是硬件使用的负责人

2020-11-28 21:37:51 713

原创 操作系统(第五章)----1.I/O设备管理

0 思维导图一 IO设备定义(一) 定义I/O 就是输入输出I/O设备就是可以将数据输入到计算机,或者接收计算机输出数据的外部设备,属于计算机的硬件(二) 分类1.按使用特性分类:人机交互类外部设备:用于同计算机用户之间交互的设备,如打印机、显示器、鼠标、键盘等。这类设备数据交换速度相对较慢,通常是以字节为单位进行数据交换。存储设备:用于存储程序和数据的设备,如磁盘、磁带、光盘等。这类设备用于数据交换,速度较快,通常以多字节组成的块为单位进行数据交换。网络通信设备:用于与远程

2020-11-28 21:36:12 656

原创 操作系统(第三章)----2.虚拟内存

一 基本概念(一) 传统存储管理的特征及缺点之前讨论的内存管理方式都是为了多道运行环境,将多道程序同时装入内存中,但他们都有共同缺陷:1.一次性 . 作业必须一次性全部装入内存,才能开始运行,这就导致了:作业太大,装不下作业太多,塞不下2.驻留性. 作业一旦被装入内存,就会一直存在,直到运行结束,这就导致了:若当前作业发生io操作,即使阻塞了,也会一直存在内存中从以上分析可知,内存中由许多作业暂时无法运行,而一些准备就绪的作业却无法进入内存,浪费了大量的空间(二) 局部性原理1.

2020-11-22 20:40:38 1307

原创 操作系统(第三章)----1.内存管理基本概述

一 基本原理和要求(一) 内存管理的概念操作系统对内存的划分,动态分配和保护,就是内存管理的基本概念,其主要功能有:内存的分配与回收地址转化内存扩充内存保护(二) 程序运行的基本原理逻辑地址和物理地址从写程序到运行程序在进行具体的内存管理之前,还需了解程序运行的基本原理编译:编译程序将用户源代码变成成若干目标模块链接:链接程序将一组目标模块及所需的库函数链接在一起,形成一个完整的装入模块装入:由装入程序将装入模块装入内存运行链接的方式静态链接: 运行之前完成目标模块

2020-11-20 23:26:25 656

原创 操作系统(第二章)----3.进程管理

1.基本概念在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。为了协调进程之间的相互制约关系,如等待、传递信息等,引入了进程同步的概念。进程同步是为了解决进程的异步问题。一个简单的例子来理解这个概念。例如,让系统计算1 + 2x3,假设系统产生两个进程: 一个是加法进程,一个是乘法进程。要让计算结果是正确的,一定要让加法进程发生在乘法进程之后,但实际上操作系统具有异步性,若不加以制约,加法进程发生在乘法进程之前是绝对有可能的,因此要制定一定的机制去约束加法进程,让它在乘法进程

2020-11-16 15:08:19 257

原创 操作系统(第二章)----2.处理机调度

一 处理机调度的概念(一) 定义当有一堆任务需要处理,但由于系统的资源有限,因此进程争夺处理机的情况在所难免如上述,处理机调度是指按照一定的算法,从就绪队列中选择一个进程并将处理机分配给他使用,以实现进程的并发执行过程类比排队:(二) 层次1.作业调度又称高级调度,是指从外存队列中选择一个或多个作业,为他们分配内存和输入输出的必要资源,为其建立进程(也即建立PCB),并调度到内存中,等到获取CPU;也即,作业调度是外存与内存之间的调度2.中级调度又称内存调度,主要作用是为了提高内存

2020-11-13 17:54:49 332

原创 操作系统(第二章)----1.进程与线程

一 进程与线程1.1 进程的定义为了方便操作系统管理,完成各程序并发执行,引入了进程等相关概念程序段,数据段,PCB三部分构成了进程实体,一般情况下,我们把进程实体称为进程PCB是进程存在的唯一标识.因此,所谓创建进程就是创建进程中的PCB,撤销进程就是撤销进程中的PCB引入进程实体的概念后,进程可定义未:进程是进程实体的运行过程,是系统进行资源分配和调度的基本单位1.2 进程的组成与组织(一) 组成进程是由程序段,数据段和PCB三部分组成而其中最重要的就是进程控制块PCB(Pr

2020-11-13 00:07:37 199

原创 操作系统(一)----基本概述

一 操作系统基本概念1.1 概念概念是系统最基本最核心的软件,属于系统软件控制和管理整个计算机的硬件和软件资源合理的组织、调度计算机的工作与资源的分配为用户和其它软件提供方便的接口和环境层次结构1.2 特征1.并发关于并发和并行的解释:并发:两个或多个事件在同一时间间隔内发生,这些事件在宏观上是同时发生的,在微观上是交替发生的, 操作系统的并发性指系统中同时存在着多个运行的程序并行:两个或多个事件在同一时刻发生2.共享指系统中的资源可供内存中多个并发执行的进程共同调

2020-11-10 23:28:26 721

原创 1.spring源码之beanFactory的初始化

spring beanfactory的创建从这行命令开始:ClassPathXmlApplicationContext ct=new ClassPathXmlApplicationContext("spring-config.xml");public ClassPathXmlApplicationContext(...) { super(parent); this.setConfigLocations(configLocations); if (ref

2020-11-07 16:08:34 264

原创 2.spring源码之bean实例化及初始化流程

前一篇文章讲解了beanFactory的初始化流程,这篇文章我们接着往下分析spring bean的实例化及初始化流程入口点: ClassPathXmlApplicationContext cs=new ClassPathXmlApplicationContext("xxx"); cs.getBean("bean1"); public Object getBean(String name) throws BeansException {

2020-11-07 15:59:28 1912 1

原创 解决flume整合kafka报错Attempt to heart beat failed since member id is not valid, reset it and try to re-jo

报错情景:由flume监听文件,分类发送到kafka的两个topic,再由两个flume(f1,f2)监听这两个topic,但是报错:原因:f1,f2监听kafak时,因为没有配置group.id,则f1,f2默认groupId都是"flume",f1,f2属于同一个消费者组(consumerGroup),同一个CG中如果订阅不同的topic,每一个consumer的上下线都会造成剩余所有的 consumer 产生 reblance 行为。解决办法:为两个flume配置不同的group.id即

2020-06-04 17:45:38 2746

原创 大数据之spark大型电商平台分析平台(一)--项目前言

电商分析平台该项目是我根据尚硅谷大数据电商分析平台视频做的笔记,总共分成了大概十个需求,每个需求我都用一篇文章来解析文章目录项目整体概述课程简介本课程是一套完整的企业级电商大数据分析系统,在当下最为热门的Spark生态体系基础上构建企业级数据分析平台,本系统包括离线分析系统与实时分析系统,技术栈涵盖Spark Core,Spark SQL,Spark Streaming与Spark性能调优,并在课程中穿插Spark内核原理与面试要点,能够让学员在实战中全面掌握Spark生态体系的核心技术框架.

2020-05-26 18:33:54 1251 1

原创 电商平台分析平台----需求十:总结

实时计算部分总结实时计算部分无非是对某一个需求进行统计,整体框架:1.改变基本数据结构,变为(key,1L),可以用map或者transform进行改变2. 累加操作,三种选择reduceByKey—适合用于实时更新数据库数据updateStateByKey[]----适合用于较长时间的实时累加统计,需要设置checkPointreduceByKeyAndWindow—适合用于短时间内的实时累加统计,如一小时内数据封装入库,常用keyCountStream.

2020-05-26 18:32:11 831

原创 电商平台分析平台----需求九:实时统计之最近一小时广告点击量实时统计

做什么?通过Spark Streaming的窗口操作(reduceByKeyAndWindow)实现统计一个小时内每个广告每分钟的点击量需求解析:关于reduceByKeyAndWindow的知识详情看这篇文章步骤解析1.转化key为dateTime_adid //1.转化key为dateTime_adid val key2TimeMinute=adRealTimeFilterDstream.map{ case(log)=>{ val logS

2020-05-26 18:31:40 594

原创 电商平台分析平台----需求八:实时统计之各省份广告top3排名

做什么?根据需求七中统计的各省各城市累计广告点击量,创建SparkSQL临时表,通过SQL查询的形式获取各省的Top3热门广告。需求分析在需求七中,我们已经实时统计了各省各城市广告的点击量,并且key的格式是(date_province_city_adid),现在我们只需要把Key变为(date_province_city),再用reduceByKey进行累加最后利用sparkSQL创建临时表,进行排序即可步骤分析:1.转化key的格式 //1.转化key为date_province_a

2020-05-26 18:31:17 404 1

原创 电商平台分析平台----需求七,九前置知识

Window Operations先来看看什么叫窗口滑动 def main(args: Array[String]): Unit = { val list=Array(1,2,3,4,5,6); val window=list.sliding(2); for (r<-window){ println(r.mkString(";")); } }-----------------1;22;33;44;55;6可以想像,有一个窗口,把两个

2020-05-26 18:29:01 353

原创 电商平台分析平台----需求七:实时统计之各省各城市广告点击量实时统计

做什么?收到kafka的数据,实时统计各省各城市各广告的广告点击量需求分析kafka收到的数据仍然是需求六中的数据,思路也是相同的,即将数据变成(key,1L),再去改变总的数量不同的地方是:key现在变为 (date_province _city_adid)数量的统计不能再用reduceByKey,而是改为sparkStreaming中的updateStateByKey,其作用是对当前批次的数据和以往的数据进行一个累加更新操作,从而避免一直查询数据库,(相似的还用window滑动操作)

2020-05-26 18:28:10 555

原创 电商平台分析平台----需求六:实时统计之黑名单机制

做什么?从Kafka获取实时数据,对每个用户的点击次数进行累加并写入MySQL,当一天之内一个用户对一个广告的点击次数超过100次时,将用户加入黑名单中。需求解析1.先从kafka得到数据,数据格式是:(timestamp province city userid adid),2.接着统计该批次的数据中不同用户对同一个广告的点击数量,即需要以timestamp_userId_adid为key进行reduceByKey3.更新mysql4.从mysql中

2020-05-26 18:27:02 751

原创 电商平台分析平台----需求五:计算给定的页面访问流的页面单跳转化率

做什么?我们需要去分析每一次的页面访问流程,也就是用户从进入网站到离开网站这个流程中所访问的页面顺序,也就是一个session中的页面访问顺序。假如一个session的页面访问顺序为1,2,3,4,5,那么他访问的页面切片就是1_2,2_3,3_4,4_5,如果得到所有session的切面切片m_n,就可以计算每一种页面切片的个数,即count(m_n),就可以计算每一个页面单跳转化率。需求解析这个需求不是很难,只需要统计一下两个页面间的跳转数量除于总的跳转数即可.问题的关键在于如何转化数据,如下

2020-05-26 18:26:38 549

原创 电商平台分析平台----需求四:Top10热门品类的Top10活跃Session统计

做什么?统计需求三中得到的Top10热门品类中的Top10活跃Session,对Top10热门品类中的每个品类都取Top10活跃Session,评判活跃Session的指标是一个Session对一个品类的点击次数。需求解析需要什么?Top10热门品类中的Top10活跃Session依据什么排序?一个Session对一个品类的点击次数需要怎样的原始数据?用户点击的商品为top10商品的其中一个----------filter算子怎么做?步骤解析获取点击过Top10品类的所有用

2020-05-26 18:25:55 525

原创 电商平台分析平台----需求三:热门top10商品

做什么?在符合条件的用户行为数据中,获取点击、下单和支付数量排名前10的品类。在Top10的排序中,按照点击数量、下单数量、支付数量的次序进行排序,即优先考虑点击数量。需求分析首先我们想要得到的是在符合条件的action中,统计排名前十的热门商品.并且排名的依据是根据点击数量、下单数量、支付数量的次序进行排序的.所以通过逆推:top10商品–>(id,(clickCount=83|orderCount=67|payCount=63))------>分别统计(id,clickCount=

2020-05-26 18:25:11 1044

原创 电商平台分析平台----需求二:按照比列随机抽取session

做什么?在符合过滤条件的session中,按照时间比例随机抽取100个session。当存在若干天的数据时,100个session抽取指标在天之间平均分配,在一天之中,根据某个小时的session数量在一天中总session数量中的占比决定这个小时抽取多少个session一个小时要抽取的session数量 = (这个小时的session数量/这一天的session数量) * 这一天要抽取的session数量需求解析明确一个小时抽取多少session后(假设为N个),根据数量产生N个随机数,这N个随机

2020-05-26 18:24:21 469

原创 需求一:各个范围Session步长、访问时长占比统计

做什么?统计各个范围Session步长、访问时长占比统计访问时长:session的最早时间与最晚时间之差。访问步长:session中的action操作个数。即:统计出符合筛选条件的session中,访问时长在1s3s、4s6s、7s9s、10s30s、30s60s、1m3m、3m10m、10m30m、30m,访问步长在1_3、4_6、…以上各个范围内的各种session的占比需求分析:对应的类:case class UserVisitAction(date: String,

2020-05-26 18:22:19 1136

原创 1.项目搭建及,commons模块解析,离线实时数据准备

项目搭建github下载源码使用idea创建maven项目,并创建如下四个模块复制源码中的pom.xml,修改你的环境版本号复制mock,commons模块到你的项目中common模块解析conf基于文件的配置生成器,会读取resources下的commerce.properties,并返回所有配置信息 */object ConfigurationManager { // 创建用于初始化配置生成器实例的参数对象 private val params = new

2020-05-26 18:19:52 746

原创 2.项目需求解析

前言本篇文章讲解的是电商分析平台中的各个模块需求,需求总体概述一 离线数据分析动作表解析:通过埋点采集到的用户行为数据被存储在了动作表里,我们关注用户的四种行为,即点击、搜索、下单、购买,用户每执行一次上述操作,就会产生一条日志,之后按照一定的时间单位(例如一天)被导入动作表中,也就是说,动作表中的一条数据对应用户的一次行为(点击、搜索、下单或者购买中的一种)二 实时数据分析实时数据主要用于统计用户点击广告需求详解用户访问Session分析用户访问session,是在电商平

2020-05-23 16:57:47 1252

原创 flume--入门概念与配置详解

目录Flume概述Flume概述Flume定义Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。2 Flume的优点可以和任意存储进程集成。输入的的数据速率大于写入目的存储的速率,flume会进行缓冲,减小hdfs的压力。flume中的事务基于channel,使用了两个事务模型(sender + receiver),确保消息被可靠发送。Flume使用两个独立的事务分别负责从soucrce到channel

2020-05-22 10:15:20 416

原创 spark(三)--spark-streaming---(Dstream图文详解,基于IDEA开发)

前言这篇文章主要讲述了spark几大核心内置模块中的spark-streaming(流数据的处理),主要围绕Dstream的入门,创建,转化展开,图文详解spark其他核心模块的系列文章:spark(一)–spark-core–RDD入门实战spark(二)–spark-core—RDD进阶知识(图文详解,基于IDEA开发)目录 Spark Streaming概述Dstream入门案例及解析Dstream的创建–各个数据源hdfs数据源RDD队列 kafka数据源自定义数据源

2020-05-20 17:39:54 562

原创 spark(二)--spark-core---RDD进阶知识(图文详解,基于IDEA开发)

val words=sc.textFile("in/word.txt").flatMap(_.split("\t")).map((_,1)) val count=words.reduceByKey(_+_); //查看words的Lineage println(words.toDebugString); //查看“count”的Lineage println(count.toDebugString);

2020-05-19 22:31:47 435

原创 spark(一)--spark-core--RDD入门实战(详解各大api,基于IDEA开发)

目录RDDRDD创建操作RDD转化操作_0. 入门经典程序,统计字符在项目的父目录下创建in目录,创建word.txt def main(args: Array[String]): Unit = { //上下文 var conf=new SparkConf().setAppName("WordCount").setMaster("local"); var sc=new SparkContext(conf); sc.setLogLevel("ERROR")

2020-05-18 22:01:02 1016

原创 使用docker-compose搭建hadoop伪分布式,并用springboot进行读写访问

前言本人初学Hadoop,在不懂得什么是完全分布式,什么是伪分布式,以及hdfs的具体架构得情况下,就盲目的跟着网上的教程搭建hadoop集群.最后结果是,环境搭起来了,springboot客户端却无法访问,然后反反复复重装hadoop环境,却不懂得问题所在.最后重新学习hadoop原理,才发现了突破口.这篇文章的内容经过实践,是可以成功运行并访问的.docker的宿主机是阿里云的linux centos系统遇到的问题是,springboot可以访问namenode,但是无法真正的上传文件,只能在

2020-05-17 11:55:53 991

原创 hadoop入门--基本概念详解

文章目录hadoop架构组成hdfs详解yarn详解hadoop分布式详解hadoop配置文件## hadoop架构组成![在这里插入图片描述](https://img-blog.csdnimg.cn/20200516203408617.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3ppc3V1,size_16,color_FFFF

2020-05-16 21:33:10 415

原创 记录springboot整合hadoop过程中遇到的坑

遇到无法下载的,直接手动安装先到官网下载jar包官网地址https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-client如果要下载hadoop-hdfs等包,只需把地址改成https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-hdfs或者到我的百度云提取:链接:https://pan.baidu.com/s/1taZMMoZ6tnvXxP7uc1AGP

2020-05-14 17:42:36 725

空空如也

空空如也

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

TA关注的人

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