自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (1)
  • 收藏
  • 关注

原创 大数据系列之知识点总结和企业级游戏行业架构设计

文章目录游戏行业大数据分析1 数据分析流程以及分析指标1.1 数据来源1.2 数据收集和落地1.3 离线分析1.4 实时数据分析1.5 用户肖像2 相关知识2.1 离线数据统计技能相关要求2.1.1 Hadoop2.1.2 Hive2.1.3 HBase2.1.4 Spark Core2.1.5 Spark SQL2.2 实时数据统计技能相关要求2.2.1 KafKa2.2.2 Flume2.2.3 Flink2.2.4 Spark Streaming2.3 其他技能要求2.3.1 Redis2.3.2 M

2020-08-05 22:17:51 2238 5

原创 大数据术语之Linux

关注点:CPU、内存、磁盘IO、网络IO、磁盘大小top 查看内存df -h 查看磁盘存储情况iotop 查看磁盘IO读写(yum install iotop安装)iotop -o 直接查看比较高的磁盘读写程序netstat -tunlp | grep 端口号 查看端口占用情况uptime 查看报告系统运行时长及平均负载ps aux 查看进程vmstat 查看cpuwc -l filename #输出 filename 的行数wc -c ...

2022-01-12 09:59:02 977

原创 大数据术语之ClickHouse

Clickhouse ClickHouse是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),使用C++语言编写,主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。 特点: 1.列式存储 2.DBMS的功能 3.多样化引擎 4.高吞吐写入能力(顺序追加) 5.数据分区与线程级并行 6.单表数据处理能力强数据类型 整型范围(-2n-1~2n-1-1):Int8 Int16 Int32 Int...

2022-01-12 09:57:57 1378

原创 大数据术语之Scala

元组1.元组的创建;2.元组数据的访问,注意元组元素的访问有下划线,并且访问下标从1开始,而不是0;3.元组的遍历;样例类case class Person(name:String,age:Int)一 般使用在 ds=df.as[Person]闭包一个函数把外部的那些不属于自己的对象也包含(闭合)进来。def minusxy(x: Int) = (y: Int) => x - y这就是一个闭包:1) 匿名函数(y: Int) => x -y嵌套在minusxy函数中。

2022-01-11 19:19:04 173

原创 大数据术语之Flume

Flume Flume是高可用高、可靠的、分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。主要有三部分组成:Source、Channel、和Sink。Source 从数据发生器接收数据,并将接收的数据以Flume的Event格式传递给一个或者多个通道channel,Flume提供多种数据接收的方式,比如Avro,Thrift,twitter等。实际生产中一...

2022-01-11 19:18:09 195

原创 大数据术语之Kafka

生产者:Producer。向主题发布新消息的应用程序。消费者:Consumer。从主题订阅新消息的应用程序。消费者位移:Consumer Offset。表征消费者消费进度,每个消费者都有自己的消费者位移。消费者组:Consumer Group。多个消费者实例共同组成的一个组,同时消费多个分区以实现高吞吐。消息:Record。Kafka是消息引擎嘛,这里的消息就是指Kafka处理的主要对象。消息位移:Offset。表示分区中每条消息的位置信息,是一个单调递增且不变的值。主题:Topic。主题是承载

2022-01-11 19:17:10 236

原创 大数据术语之Sqoop

Sqoop导出数据NULL处理 Hive底层NULL是以'\N'的形式存储,Mysql的NULL底层就是NULL。为了保持数据的而一致性: 导出时添加 --input-null-string和--input-null-non-string; 导入数据添加 --null-string和---null-non-string;Sqoop如何保证导出数据的一致性 如Sqoop在导出到Mysql时,使用4个Map任务,过程中有2个任务失败,那此时MySQL中存储了另外两个Map任...

2022-01-11 19:16:32 356

原创 大数据术语之ElasticSearch

ElasticSearch是什么? 1.Elasticsearch是一个基于Lucene的搜索服务器。 2.基于RESTful Web接口的全文搜索引擎。 3.Elasticsearch是一个面向文档型的数据库,一条数据就是一个文档。索引:索引的精髓在于为了提高搜索的性能。分片:将索引划分成多份,每一份之为分片。 1.允许水平分割/扩展内容容量; 2.允许在分片之上进行分布式、并行的操作,进而提高性能/吞吐量。副本: 1.防止数据丢失; 2....

2022-01-11 19:14:59 105

原创 大数据术语之Flink

Flink使用Standalone模式作业提交的流程: 1.Flink提交作业给Job Client,然后Job Client将作业提交个Job Manager; 2.Job Manager负责协调资源分配和作业执行。 它首先要做的是分配所需的资源。资源分配完成后任务将提交给相应的Task Manager; 3.在接收任务时,Task Manager启动一个线程开始执行。 4.Task Manager会继续向Job Manager报告状态更改。 5.每个任务管理器Ta...

2022-01-11 19:12:07 293

原创 大数据术语之Spark

Spark有几种部署方式1.Local:运行在一台机器上,通常是练手或者测试环境。2.Standalone:构建一个Master+Slave的资源调度集群,Spark提交任务给Master运行。是Spark自身的一个调度系统。3.Yarn:Spark客户端直接连接Yarn,不需要额外构建Spark集群。有yarn-client和yarn-cluster两种模式,主要区别在于:Driver程序的运行节点。窄依赖(1个父RDD的分区对应1个子RDD的分区)包含一下两种: 1个子RDD的分区对...

2022-01-11 19:11:10 113

原创 大数据术语之HBase

HBase定义 HBase是一种分布式、可扩展、支持海量数据存储的的NoSQL数据库。 HBase和关系型数据库的区别 1.数据类型 HBase只有简单的字符数据类型,所有的数据类型由用户自己处理,而关系数据库有丰富的类型和存储方式。 2.数据操作 HBase操作只有简单的插入、查询、删除、清空操作,表与表是分离的,没有复杂的表与表操作;而关系型数据库有各式各样的函数和表连接操作。 3.存储模式 HBase是基于列存储的,每个列族都由几...

2022-01-11 19:10:27 444

原创 大数据术语之Hive

HQL是如何翻译成MapReduce的HQL解析(生成AST语法树) => 语法分析(得到QueryBlock) => 生成逻辑执行计划(Operator) => 逻辑优化(Logical Optimizer Operator) => 生成物理执行计划(Task Plan) => 物理优化(Task Tree) => 构建执行计划(QueryPlan) => 表以及操作鉴权 => 执行引擎执行根据事实表和维度表的关系,可将常见的模型分为星型模型和...

2022-01-11 19:09:31 493

原创 大数据术语之JVM

JVM结构原理 0.类加载器 --引导类加载器 C/C++语言实现,无法通过程序获取到,加载java的核心类库 --扩展类加载器 拓展类加载器,java语言编写,由sun.misc.Launcher$ExtClassLoader实现 --系统类加载器 用户自定义的类默认使用系统类加载器加载 --自定义加载器 自定义存在的意义:隔离加载类,修改类加载方式,拓展加载源,防止源码泄露 双亲委派机制 如果一个类加载器收到类加载请求,不会直接...

2022-01-11 19:07:38 528

原创 程序员如何突破年薪35W以上

企业在选择人才时,相同能力时,往往看重的时一个人的学历、人品、年龄。个人在选择企业时应规划好自己的职业生涯,金钱是一个重要的指标,发展空间是另一个重要指标。永远记住物竞天择,适者生存;物以类聚,人以群分。如果想要加入优秀的团队,那么首先自己就应该变得优秀,别人才有可能带你玩。个人观点:能进大厂别进小厂,能进国企别进私企,能进上市别进创业。社会上流传着35岁就失业的说法,不妨换一种思路:如果23岁本科大学计算机毕业,到35岁工作,十二年了,平均每年20W,共计200多万,足以在一个新一线城市打牢物质基础,这.

2021-11-14 16:41:07 5703

原创 华为大数据研发第3轮面试

性格测试薪资评估期望薪资谈判。因与自己人生规划存在出入,又临近过年,本人放弃入职华为的Offer。

2021-11-13 16:39:36 702

原创 华为大数据研发第2轮面试

1.JVM的GC及垃圾回收器的使用2.Java类的生命周期,Java内存模型3.线程的创建与通信4.Hive On Spark是如何将Sql解析的5.Flink和SparkStreaming的区别是什么?如何保证数据一致性。6.工作经历再介绍一下7.介绍工作部门及工作内容...

2021-11-13 16:36:25 1345 1

原创 Hive On Spark解析SQL过程剖析

1.Hive执行过程概览无论Hive Cli还是HiveServer2,一个HQl语句都要经过Driver进行解析和执行,粗略如下图:2.Driver处理的流程HQL解析(生成AST语法树)=>语法分析(得到QueryBlock)=>生成逻辑执行计划(Operator)=>逻辑优化(Logical Optimizer Operator)=>生成物理执行计划(Task Plan)=>物理优化(Task Tree)=>构建执行计划...

2021-11-13 16:23:32 1794

原创 Hive实战系列之用户DAU相关统计

DAU(Daily Active User)是衡量一一款App的关键指标之一,结合用户留存情况综合评判,App中用户在哪些阶段流失。在数据分析中也是关键的一个环节之一。下面就聊一聊怎么去统计这些指标。经过数据清洗转换的数据格式如下:game_name mid_id date_first date_last login_day_count login_count game1 m1 2021-11-04 2021-11-04 1 5 g

2021-11-05 18:01:31 3188

原创 Redis数据类型之String

一String类型存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型。存储数据的格式:一个存储空间保存一个数据。存储内容:通常使用字符串,如果字符串以整数的形式展示,可以作为数字操作使用(但是仍是字符串)。二 指令--添加单个字符串--set key v1get keydel key--多值操作--mset k1 v1 k2 v2mget k1 v1--数值操作--strlen k1 返回k1长度append key value 追加信息到原始信.

2021-11-02 00:06:42 109

原创 Hive实战系列之用户粘性统计

需求在数仓游戏产品中,用户粘性指标很重要。请看下面数据结构,统计出最近一月内连续3天登陆的用户。请根据下边数据创建一张表,要求日期格式是一个集合。输出结果:10002 ["2021-10-02","2021-10-03","2021-10-04"]10002 ["2021-09-03","2021-09-04","2021-09-05"]10004 ["2021-08-02","2021-08-03","2021-08-04"]10006 ["2021-10-...

2021-10-31 22:59:06 591

原创 Hive实战系列调优之工作常用到的参数

1.开启并行执行set hive.exec.parallel=true;2.设置Map和Reduce的个数--Map数量相关的参数set mapred.max.split.size; --一个split的最大值,即每个map处理文件的最大值set mapred.min.split.size.per.node; --一个节点上split的最小值set mapred.min.split.size.per.rack; --一个机架上split的最小值--Reduce数量相关

2021-10-31 16:05:22 397

原创 Hive实战系列调优之调整Reduce个数

相比map个数的控制复杂性,reduce个数的设定要相对简单多了,reduce的个数一般最后决定了输出文件的个数,二者相等,如果想多输出文件的个数(这样文件变小,但有可能程序变慢),那么可以人为增加reduce个数。如果想减少文件个数,也可以手动较少reduce个数(同样可能程序变慢)。但实际开发中,reduce的个数一般通过程序自动推定,而不人为干涉,因为人为控制的话,如果使用不当很容易造成结果不准确,且降低执行效率。参数控制个数:set mapred.reduce.tasks ; -- 默认值为

2021-10-31 15:21:54 1155

原创 Hive实战系列调优之数据倾斜

什么是数据倾斜?数据倾斜,即单个节点任务所处理的数据量远大于同类型任务所处理的数据量,导致该作业成为整个作业的瓶颈,这是分布式不可避免的问题,从本质来说导致数据倾斜有两种原因,一是任务读取大文件(文件不可切分,如对文件使用GZIP压缩),二是任务需要处理大量相同键的数据,任务需要处理大量相同的数据,这种情况有一下4种类=表现形式:数据含有大量无意义的数据,例如空值NULL、空字符串等; 含有数据倾斜在进行聚合时无法聚合中间结果,大量数据都需要经过Shuffle阶段的处理,引起数据倾斜。 数据在计

2021-10-31 14:22:05 274

原创 Hive实战系列调优之小文件优化

小文件来源有哪些?常见的小文件来源于有:数据源本事就包含大量的小文件;动态分区插入的数据;reduce个数越多产生的小文件就越多。大量小文件会有哪些影响?小文件会开很多map,一个map开一个JVM去执行,所以这些任务的初始化,启动,执行会浪费大量的资源,严重影响性能。在Hdfs中,每个小文件对象约占150byte,如果小文件多会占用大量内存。如何解决?少用动态分区,使用时记得按distribute by分区;减少reduce的数量;从数据源头解决;案例1:按天将原始数据层进行动

2021-10-30 21:49:10 451

原创 Hive实战系列调优之Map端向量模式

什么是向量模式hive.vectorized.execution.enabled表示是否开启向量模式,默认为false,熟悉MapReduce编程的都知道Mapper类,在run()方法中map()方法逐行处理数据,这样操作容易产生更多的Cpu指令和Cpu上下文切换,这样会导致系统性能处理不高。那么有没有方式优化这个操作呢?答案当然有,采用批量的操作方式避免单行处理数据。Hive提供了向量的模式,将一次处理一条数据变为一次处理一万条数据来提高性能。在hive提供的向量模式,并不是重写了Mapper函

2021-10-30 19:55:45 1346

原创 Hive实战系列调优之调整Map个数

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言Hive是如何将SQL转换成MapReduce的?又是如何运行在不同的的执行引擎如:Mr,Tez,Spark?我们在工作时哪些地方需要进行优化?带着这些问题我们将开展一期实战的性能优化。提示:以下是本篇文章正文内容,下面案例可供参考一、Hive中Map的个数是如何确定的?原理:默认情况下Map的个数

2021-10-30 19:01:38 4716 2

原创 华为大数据研发第1轮面试

Base:上海。电话面试。问:介绍最近一年的项目?问:数据的整个链路?问:数仓的设计?HQL语义?小文件、数据倾斜?问:HBase的设计与优化?问:Hadoop增加DataNode节点的磁盘选择R0,R1,R5?问:ReginServer使用哪种垃圾回收策略?问:Java垃圾回收?什么是GC? GC垃圾处理器的使用?问:生产中有哪些故障?问:Kafka数据丢失,重复,和Exactly-Once语义?然后介绍工作性质,工作内容,期望薪资?问:未来规划?...

2021-10-27 16:26:56 408

原创 得物App数仓第1轮面试

2021年10月27日14:00-14:30,base上海,得物App数仓第1轮面试电话面试半小时。面试官引导让自我介绍,把话语权交给面试者自己。自己简单的介绍了一下工作经验以及在工作中负责的模块,还有一些项目中使用的架构。然后面试官开始提问:问:什么是数仓?问:数仓的模型?用到了哪些模型?问:数仓的数据来源?增量数据处理?问:数仓中哪些维度?问:HQL语句统计90天内连续登录三天以上的用户?数据格式 user1 ["2021-10-01","2021-10-02"]问:Hive的优

2021-10-27 16:07:14 2325 2

原创 大数据量日活排行榜另类做法

文章目录1. 数据分析2. URL路径及参数3. 前端逻辑梳理4. 关卡与排名之间的关系5. 机器学习算法评估6. 结论1. 数据分析描述:总星星数未上传,暂时不做统计。String iosSql = "select " + "uid," + "level," + "row_number() over(order by level desc) rank " + "from " + "(select " +

2020-09-21 19:12:25 679

原创 游戏如何分享到Facebook点击链接启动游戏

文章目录1 需求描述2 系统分享2.1 Html关键代码2.2. JavaScript脚本关键代码2.3 界面效果3 FaceBook分享3.1 多语言配置3.2 后台关键代码3.3 参数约定3.4 数据落地3.5 测试地址3.6 分享效果4 如何跳转APP内1 需求描述​ A用户分享游戏链接给B用户,B用户如果已经下载该游戏则唤醒app,没有则会根据不同的机型跳到不同的商店如安卓进入安卓应用商店,ios进入app store 。因为浏览器和app没有通信协议,所以h5不知道用户的手机释放安装了app

2020-08-19 15:46:49 2574 1

原创 大数据系列之SparkStreaming应用解析(四)

文章目录第1章 Spark Streaming概述1.1 什么是Spark Streaming1.2 Spark Streaming特点第2章 运行Spark Streaming2.1 编写第一个程序第3章 架构与抽象第4章 Spark Streaming解析4.1 初始化StreamingContext4.2 什么是DStreams4.3 DStreams输入4.3.1 基本数据源文件数据源自定义数据源RDD队列4.3.2 高级数据源Apache Kafka4.4 DStreams转换4.4.1 无状态

2020-08-15 21:03:34 324

原创 大数据系列之SparkSql应用解析(三)

文章目录第1章 Spark SQL概述1.1 什么是Spark SQL1.2 RDD vs DataFrames vs DataSet1.2.1 RDD1.2.2 Dataframe1.2.3 Dataset1.2.4 三者的共性1.2.5 三者的区别第2章 执行SparkSQL查询2.1 命令行查询流程2.2 IDEA创建SparkSQL程序第3章 SparkSQL解析3.1 新的起始点SparkSession3.2 创建DataFrames3.3 DataFrame常用操作3.3.1 DSL风格语法3.

2020-08-10 18:34:16 292

原创 大数据系列之SparkCore应用解析(二)

文章目录第1章 RDD概念1.1 RDD为什么会产生1.2 RDD概述1.2.1 什么是RDD1.2.2 RDD的属性1.3 RDD弹性1.4 RDD特点1.4.1 分区1.4.2 只读1.4.3 依赖1.4.4 缓存1.4.5 checkpoint第2章 RDD编程2.1 编程模型2.2 创建RDD2.3 RDD编程2.3.1 Transformation2.3.2 Action2.3.3 数值RDD的统计操作2.3.4 向RDD操作传递函数注意2.3.5 在不同RDD类型间转换2

2020-08-09 22:24:17 334

原创 大数据系列之Flink实时统计每小时HTTP请求Top10

文章目录大数据系列之Flink实时统计Nginx每小时访问Top101 Maven工程bigdata-analysis-collect生成测试数据2 Maven工程bigdata-analysis-flink读取文件测试3 测试方案之读取文件测试3.1 文件测试类型输出结果4 测试方案之读取Kafka测试将结果写入ElasticSearch4.1 Kafka Eagle创建topic4.2 Kafka Eagle查看Topic Meta4.3 Kibana整合ElasticSearch查看结果5 Flink

2020-08-07 22:07:33 2555 2

原创 大数据系列之Spark基础解析(一)

​文章目录第1章 Spark概述1.1 什么是Spark1.2 Spark特点1.3 Spark的用户和用途第2章 Spark集群安装2.1 集群角色2.2 机器准备2.3 下载Spark安装包2.4 配置Spark2.5 配置Job History Server2.6 配置Spark HA第3章 执行Spark程序3.1 执行第一个spark程序3.2 Spark应用提交3.3 启动Spark Shell3.3.1 启动Spark shell3.3.2 在Spark shell中编写WordCount程

2020-08-07 14:09:19 383

原创 大数据系列之Spark作业提交流程剖析

文章目录大数据系列之Spark作业提交流程剖析1. 术语名词解释2. Driver、Worker、Executor功能介绍2.1 Driver功能介绍2.2 Worker功能介绍2.3 Executor功能介绍3. 作业提交3.1 Driver运行在Worker上的执行流程3.2 Driver运行在客户端3.3 YARN-Client模式3.4 YARN-Cluster模式大数据系列之Spark作业提交流程剖析1. 术语名词解释​ Spark架构使用了分布式计算中master-slave模型,mast

2020-08-06 18:55:00 368

原创 大数据系列之Spark性能优化案例详细剖析

大数据系列之Spark性能优化案例分析文章目录大数据系列之Spark性能优化案例分析什么是数据倾斜?解决数据倾斜的出发点?导致Spark数据倾斜的本质是什么?数据倾斜只会发生在Shuffle过程,可能触发Shuffle的算子有哪些?数据倾斜典型案例?如何定位最慢Task源码的位置?准备测试数据1000W条数据将测试数据上传至hdfs文件系统数据初步加工,分成12个分区第八个最多1.调整并行度解决数据倾斜案例分区数量为12运行结果增大分区数量为17运行结果减小分区数量为5运行结果2.自定义分区解决数据倾斜案

2020-08-05 18:26:01 799 2

原创 大数据系列之elasticsearch、elasticsearch-head、kibana安装

大数据系列之elasticsearch、elasticsearch-head、kibana安装elasticsearch下载地址https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-3-0解压文件tar -xvf elasticsearch-6.3.0.tar.gz -C /opt/apache创建用户es 注意elasticsearch不能用root启动groupadd esuseradd es -g

2020-08-05 14:40:36 257

原创 大数据系列之Java调用elasticsearch的增删查改聚合

大数据系列之Java调用elasticsearch的增删查改聚合添加pom.xml依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.

2020-08-05 14:36:45 652

图像数字图像课程设计--数字水印设计

与钞票水印类似,数字水印是一种特殊的不可标记,利用数字内嵌的方法嵌入在数字媒体(图像、声音、文档和视频等中)它可以用于证明原创作者对其作品的所有权,并作为鉴定、起诉非法侵权证据,同时可以通过对水印的检测和分析保证数字信息的完整性,从而成为知识产权保护和数字多媒体防伪的有效手段。

2018-06-25

空空如也

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

TA关注的人

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