自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 自旋锁

自旋锁spinlock:指尝试获取锁的线程不会立即阻塞,而是菜用循环的方式去获取锁,这样的好处是减少线程上下文切换的消耗,缺点是循环会消耗cpu。 例如前面说的CAS,就是一个自旋锁。手写自旋锁:结果如下:...

2020-01-02 17:27:34 169 1

原创 公平锁与非公平锁

一,公平锁和非公平锁公平锁:指多个线程按照申请锁的顺序来获取锁,先来后到非公平锁:多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁,在高并发的情况下,有可能会造成优先级反转活着饥饿现象java ReentrantLock而言,默认是公平锁。传true是公平锁,非公平锁的优点在于吞吐量比公平锁要大syncronized是一种非公平锁二,可重入锁:又名递...

2020-01-02 16:08:21 658 1

原创 集合类不安全之HashMap并发修改异常

一,故障现象java.util…ConcurrentModificationException并发修改异常二,解决方案① new ConcurrentHashMap<>();②Collections.syncronizedMap(new HashMap())与前面体系一样...

2020-01-02 15:11:34 773

原创 集合类不安全之HashSet并发修改异常

一,故障现象java.util.ConcurrentModificationException并发修改异常多线程并发操作ArrayList时,争抢修改,导致的异常二,解决方案①Collections.syncronizedSet(new HashSet<>()).②new CopyOnWriteArraySet<>();它的底层还是CopyOnWriteArray...

2020-01-02 15:06:49 564 1

原创 集合类不安全之ArrayList并发修改异常

一,故障现象多线程并发操作ArrayList.java.util.ConcurrentModificationException并发修改异常二,导致原因多线程并发操作ArrayList时,争抢修改,导致的异常三,解决方案①new vector,底层syncronized。但是并发性严重下降②Collections.syncronizedList(new ArrayList<&...

2020-01-01 15:34:53 493

原创 谈谈对volatile的理解

volatile是java虚拟机提供的轻量级的同步机制1,保证可见性JMM:Java Memory Model,本身是一种抽象的概念并不真实存在,它描述的是一组规范或规则。通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式JMM:关于同步的规定①线程解锁前,必须把共享变量的值刷新回主内存②线程加锁前,必须读取主内存的最新值到自己的工作内存③加锁解锁...

2019-12-28 15:32:40 136

原创 postgresql列转行

一张票可以检景点好几个例如 票A 可检票景点(1111,2222,3333)根据景点的维度来统计:check_park_codes 1111,2222,3333select unnest(string_to_array(check_park_codes ,’,’)) from table A;得到结果:...

2019-12-04 17:14:07 4493

原创 配置pyspark报错

复制Spark安装目录下的python路径下的pyspark粘贴到python安装目录下的Lib/site-packages下 报红消失

2019-10-16 09:39:33 186

原创 Kafka笔记

1,日志和数据存储分离,因为kafka保存数据的文件是以.log为后缀的。为了方便区分,最好在kafka配置文件中指定一下保存数据的路径。另外.log文件存的实际数据默认保存7天,单文件个数最大为1G2,0.9版本以前offset存在zk中,0.9版本以后存在kafka本地3,发送完成后将偏移量发送回去4,这个图说明kafka不能保证全局有序,只能保证区内有序性5,kafka采取分片和...

2019-09-16 10:49:51 145

原创 Hadoop的参数调优

1,Hdfs的参数调优hdfs-site.xml①dfs.namenode.handler.count=20log2(Cluster Size)namenode有一个工作线程池,用来处理不同datanode的并发心跳以及客户端并发的元数据操作。设置该值为集群大小的自然对数乘以20.即如果是8台,就是203=60②编辑日志储存路径dfs.namenode.edits.dir设置与镜像文件存储路...

2019-08-29 15:08:25 332 1

原创 本地安装hadoop异常

原因是你的java装在了C盘默认目录,最简单的处理,将javajdk装别的盘OK

2019-08-14 16:56:16 83

原创 将开发好的python代码提交到git上

1,将gitlab上的代码拷贝到本地鼠标右键 Git bash here然后输入 git clone programe_URL2,在pycharm上打开该项目,然后写好自己的代码,测试环境要跑通3,在gitlab上创建自己的分支,将代码提交到分支上主要提交:①你更改过的类②version.md:做好注释 什么版本③current_version:master在gitlab上的标识...

2019-07-22 15:46:29 1450

原创 什么是p99

p99表示过去10s内最慢的1%请求的平均延迟

2019-07-19 16:53:18 3049

原创 数据安全体系概述

从定位来说,大数据的安全主要包括以下3个方面:1,数据访问安全:①服务认证:保证各个角色之间的合法性,可以有效防止身份伪装。服务之间的安全管理②授权管理:管理人操作的权限。人和服务的安全管理2,数据脱敏安全:针对数据内容的安全方案。他需要一个规范来定义数据的敏感级别和访问控制3,数据审计安全:数据审计是值系统提供数据访问审计日志,支持数据血缘关系追踪,追踪数据的流向和衍生变化过程从...

2019-07-17 15:31:48 4139

原创 python函数的参数

1,函数的参数可以在创建函数的时候赋予默认值。def power(x, n=2): s = 1 while n > 0: n = n - 1 s = s * x return sif __name__ == '__main__': reslt1=power(5) print reslt1 reslt = ...

2019-07-16 11:45:21 75

原创 python函数参数的类型检查

自定义方法,检测参数类型def my_abs(x): if not isinstance(x,(int,float)): raise TypeError('type error') if x>=0: print x else: print -xif __name__ == '__main__': my_abs('...

2019-07-16 10:43:49 396

原创 python2.7安装mysql-python爬的大坑

1,在pycharm中安装了很多依赖,但是就是mysql-python死活装不上去。说什么pip与python解析器版本不匹配什么的,最后实在没办法 源码安装 成功2,https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python下载安装对应的64位版本。如果你是32位的下载32位的3,下载好以后在cmd中,去python的安装路径下的Scri...

2019-07-15 18:00:07 429 1

原创 sqoop命令大全

Sqoop是一个用来将Hadoop(hdfs/hive/hbase)和关系型数据库(如MySQL,Oracle,SQL SERVER,Postgres等)中的数据相互转移的工具,可以将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。官网说明:http://sqoop.apache.org/docs/1.4.7/SqoopUserGuide.ht...

2019-07-11 17:27:49 1018

原创 帆软制作一个驾驶舱

公司用帆软制作报表软件,熟悉了一下,按照案例,做了一个驾驶舱1,demo如下图2,要求和这个做的差不多,自己做的如下图总结:在使用的途中遇见了一些错误,总结一下1,制作决策报表,首先要布局好,将绝对画布块拉进来,确定控件的位置、大小来实现布局2,将报表块拉取到绝对画布块中,在报表块中进行操作3,数据集可以来自不同的数据源4,设置整个决策表的背景颜色,点击标准后的三个点5,使用...

2019-07-11 17:17:46 3748

原创 Flum_C:跨服务器实时采集日志

A服务器上:Agent: exec source + memory channel + avro sinkB服务器上 : Agent: avro source + memory channel + kafka sink我们就在自己的服务器上传输 不影响A服务器上的配置文件:exec-memory-avro.sources = exec-sourceexec-memory-avro...

2019-06-28 17:27:54 258

原创 Flume-B:监控文件实时采集新增的数据到hdfs上去

方式二:监控文件实时采集新增的数据到控制台Agent: exec source + memory channel +logger sink# Name the components on this agenta1.sources = r1a1.sinks = k1a1.channels = c1# Describe/configure the sourcea1.sources.r...

2019-06-28 16:20:08 607

原创 Flume-A:从网络端口采集数据输出到控制台

1概述了解一个框架就去它的官网上看 http://flume.apache.org/Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. It has a simple and f...

2019-06-28 15:33:59 343

原创 项目打包到服务器运行时报错

在使用Spark_streaming实时计算一些指标,将jar包打到服务器上去遇见了一些错误mvn clean package -DskipTests1,error:HbaseUtils is not a member of package com.spark_streaming.project.utils这个错误你要去看你的pom文件中: <sourceDirectory>...

2019-06-28 14:34:26 276

原创 HashMap与ConcurrentHashMap

HashMap底层是基于“数组+链表”组成,不过在1.7和1.8中具体实现稍有不同一,HashMap中比较核心的几个成员变量:给定的默认容量是16,负载因子是0.75.map在使用过程中不断往里面存放数据,当数据达到了12,就进行扩容一般是乘2变成32.这个过程涉及到rehash,复制数据等操作所以比较消耗性能,因此通常建议提前预估HashMap的大小通过上图我们发现,真正存放数据的是t...

2019-06-21 18:48:19 147 1

原创 手写一个死锁

/** * Created by Liutao on 2019/6/21 16:51 * 如何避免和解决死锁问题 * 1,按顺序加锁,例如本文的例子 * 2,获取时间锁,每个获取锁的时候加上个时限,如果超过某个时间就放弃获取锁 * 3,死锁检测 * 按照线程获取锁的关系检测线程间是否发生死锁,若发生就中断或者回滚操作 */public class DeadLock { pr...

2019-06-21 17:27:27 302

原创 04_2 基于话题文本相似度的推荐_推荐

前面已经进行了分词。本文介绍如何进行推荐,核心代码如下: private val rdd: RDD[Topic_desc] = spark.sparkContext.textFile(SOURCE_URL).map { line => val strings = line.split("\\$,") val idstring = strings(0).spl...

2019-06-18 16:28:14 762

原创 04_1 基于话题文本相似度的推荐_分词

对本文相似度的推荐主要是利用对于话题相关文本内容的分词,来获取话题的特征值。通过对文本特征值的相似度计算,最后得到用户的推荐话题列表本文主要介绍对于文本的分词处理:①数据的预处理,获取数据经过处理为:topic int,desc string(是标题+说明的拼接)部分数据如下:②对每个话题进行文本分词 val conf: SparkConf = new SparkConf().set...

2019-06-18 16:14:27 490

原创 03_基于话题类型的推荐

这个相对来说比较简单,核心代码如下:大体的过程如下:①获取话题的类型特征,格式如:topicid,categoryid②相似度计算,采用欧式距离然后相似度取1/(1+d12),也就是说距离越近的,相似度越趋近于1,话题类型接近。等于1则说明是同一个类型 try { val deletePath1 = new Path(path) val fs1 = File...

2019-06-18 16:00:31 212 1

原创 02_基于用户的推荐

机器学习的一般过程分为以下四步:①数据预处理②特征值提取③模型训练④模型评估1,在进行话题推荐之前,我们要获取用户对于话题的偏好值,根据用户的行为例如:点赞、评论、收藏、分享等等。按照运营的逻辑进行权重的划分得出用户对于话题的偏好值,数据格式如下:最高值为5分,采用的是基于spark_mlib的ALS协同过滤推荐算法。代码如下: private val ratingRdd: RDD...

2019-06-18 15:37:17 302

原创 01_推荐项目

1,概述公司是做社交app的,最近做了一个话题推荐的小项目。在博客上分享一下采用的框架主要是Hadoop+Azkaban+Sqoop+Spark做话题的推荐,主要分了三个类基于用户对于话题的偏好值的推荐,这里需要根据用户的行为,例如收藏,分享,评论,点赞等,再根据运营的逻辑,来权衡各个行为的权重,最后得到用户对于这个话题的偏好值基于话题关于话题类别的推荐,这里需要在话题创建的时候就给话...

2019-06-18 15:21:33 140

原创 Hive中随机抽样

在给用户推荐表中,由于待推荐的话题数太多,所以随机抽样检测。表user_recs_categroyuserinfoid 用户IDsimtopicid 话题IDselect a1.userinfoid,a1.simtopicidfrom (select a1.userinfoid,a1.simtopicid,row_number()over(partition by a1....

2019-06-13 14:54:32 1141

原创 常用的模型实施过程

1,Kimball模型实施过程Kimball维度建模主要探讨需求分析、高层模型、详细模型和模型审查整个过程构建维度模型一般要经历三个阶段:①高层模型定义业务过程维度模型的范围,提供每种星型模式的技术和功能描述。直接产出目标是创建高层维度模型图,它是对业务过程中的维表和事实表的图形描述。确定维表创建初始属性列表,为每个事实表创建提议度量②详细模型详细的维度建模过程是为高层模型填补缺失的信...

2019-06-13 11:49:16 440

原创 构建数仓的一些基本原则

1,高内聚和低耦合一个逻辑或者物理模型由哪些记录和字段组成,应该遵循最基本的软件设计方法的高内聚和低耦合原则。主要从数据业务特性和访问特性两个角度来考虑:将业务相近或者相关、粒度相同的数据设计为一个逻辑或者物理模型;将高概率同时访问的数据放一起,将低概率同时访问的数据分开储存2,核心模型与扩展模型分离建立核心模型与扩展模型体系,核心模型包括的字段支持常用的核心业务,扩展模型包括的字段支持个性...

2019-06-13 11:30:49 1562

原创 数仓分层

000概述数仓分层是数据仓库设计中十分重要的一个环节,优秀的分层设计能够让整个数据体系更容易理解和使用本文的大纲001,介绍数据分层的作用002,分层设计的原则以及介绍一种通用的数据分层设计003,具体案例004,落地实践意见005,思考001,数据分层的作用我们需要一套行之有效的数据组织和管理方法来让我们的数据体系更有序,这就是数据分层。数据分层的好处有①,清晰数据结构:每一...

2019-06-13 11:21:08 28632 2

原创 工作中Hive的行列转换

hive的行列转换,个人理解就是一变多,多变一的过程。一,行转列在项目中遇见这样一个问题,原始数据经过处理以后是这样的前者是话题ID,后面是与话题相似的前30个话题ID因为要过滤掉用户已经接触过的话题ID,所以,需要将这个数据变成以下的格式17796 1622417796 17385…在hive中创建映射表create external table category_r...

2019-06-12 16:57:02 450

原创 如何设计执行表命名规范

数据仓库的实施和落地需要团队中不同成员的参与和配合,因此也需要各种各样的规范,其中最典型的就是表命名规范。规范的表命名能让使用者轻而易举的明白该表的作用和含义以流程图的方式来展示,更加直观和易懂,本图侧重dwm层表的命名规范,其余命名是类似的道理表命名,其实在很大程度上是对元数据描述的一种体现,表命名规范越完善,我们能从表名获取到的信息就越多。以上图为例,我们单纯从表中就能获得如下信息:分...

2019-06-12 14:53:16 604

原创 了解公司的数据

001,数据核心维度分布数据核心维度分布主要是指数据中那些比较重要的列的内容分布,比如说用户最基本的年龄,性别和城市信息。这是最常用的数据分布。再引申一点会涉及一些业务内容,比如说各省份的人的订单情况,不同时间段男女活跃信息对比等等,一般分为三个部分:1,基础资料2,业务行为3,用户画像002,数据口径1,假设性别字段在表A中的取值是0、1、2(未知、男、女),在表B中取值是0、1、2...

2019-06-12 14:28:49 195

原创 数据矩阵的设计

001,业务数据矩阵业务数据矩阵,我们可以认为它的作用是从全局的角度来对公司的数据进行规划和设计。在数据仓库的设计初期,数据仓库架构师会根据对业务和数据的理解来设计一个全局的业务数据矩阵,以此从宏观的角度来描述公司的业务和数据现状,并指导后续的数据仓库建模如下表,是业务数据矩阵的表示方法,其中每一列是一个业务主题,每一行是一个数据主题。1,业务主题:我们可以将一个业务主题理解为公司的一条业务...

2019-06-12 14:17:11 3006

原创 数据质量监控

本文链接:术东居士,https://blog.csdn.net/zhaodedong/article/details/89322066000 数据质量数据质量的保证,是数仓的重中之重。数据质量主要从四个方面进行评估,即,完整性,准确性,一致性和及时性通过本文,你将获得如下几方面的知识点:1,数据质量核心关注的要点2,从数据计算链条理解,每一个环节会出现哪些数据质量问题3,从业务逻辑理解...

2019-06-12 13:49:16 4084

原创 hive的数据倾斜问题

1,数据倾斜的现象多数task执行速度较快,少数task执行时间非常长,或者等待很长的时间后提示你内存不足,执行失败2,为什么数据倾斜,以及解决方案①数据本身的问题1,null空值或者是一些没有意义的信息之类的(大多是这个原因)2,无效数据,大量重复的测试数据或者是对结果数据影响不大的有效数据3,有效数据,业务原因导致的正常数据分布,例如统计各省份的信息解决办法:1,2两种情况,直...

2019-06-11 11:01:27 106

空空如也

空空如也

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

TA关注的人

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