自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 问答 (1)
  • 收藏
  • 关注

原创 自定义hive的权限

hive的自定义权限

2022-05-08 18:29:11 715

原创 理解Delta lake ,理解数据湖

目前遇到的痛点目前的数据部门从组织架构,从个人的负责的方向,处理的任务上,基于现在的数据架构,以及数仓的建设,看起来比较合理,但是也存在非常大的问题。目前的数据架构是从客户端上报数据,通过logserver输出到kafka,这时分为了两步取走,第一步通过flink任务,将数据写到hdfs上,然后将数据通过add partition的方式添加到hive里面。第二步是通过flink实时任务,将数据写到CK,或者其他的kakfa做一些开发。这个链路存在哪些问题呢?数据的质量如何保证实时数据和离线数据是

2021-01-14 16:17:05 296

原创 小文件合并

概述hdfs小文件合并可减少namenode中保存的元数据信息,减轻namenode压力,并且提升数据查询效率。但要注意到,我们一般只合并n天前的数据,比如3天前,所以基本上我们是在合并冷数据,合并热数据可能出现问题,一般不推荐合并。小文件合并工具大致可分为 小文件目录扫描 和 小文件合并 两个阶段,下面予以介绍。小文件扫描1.0对于直接给定的hdfs目录,我们并不能很好地判断该目录能否进行合并,比如将两个配置文件合并就是不对的,因此小文件合并主要针对hive表进行。扫描的输入是一系列的hive

2021-01-05 17:12:41 913

原创 数据服务架构

1.系统架构2.系统功能接口规范化定义在系统上定义API的输入输出,生成API文档,屏蔽了中间的存储,数据的流转通过API来进行数据网关作为网关服务,数据服务必须要具备认证、权限、限流、监控四大功能,这是数据和接口复用的前提首先是认证,需要支持开发和生产两种模式,开发模式比较便于使用通过appcode直接认证,生产通过 accesskey 和 secretkey,应用每次调用 API 接口,都必须携带 acesskey 和 secretkey其次是限流,授权的时候会为每个应用进行

2020-12-18 10:50:27 1523

原创 数据服务调研开发

1. 背景调研在7-8月双月okr中,可以看到好多小伙伴的okr内容都提到了数据服务的概念,首先就可以说明这个在数据部门发展过程中是一个必不可少的路径服务化:不同系统之间通过服务方式交互,服务通常以 API 接口形式存在服务化在业务系统中提的比较多,它使业务系统化繁为简,实现业务的拆分,要想搞清楚数据服务解决了什么问题,就要先知道,没有数据服务,我们在日常数据建设中存在哪些痛点数据不知道被哪些应用访问数据存储多份,浪费资源底层数据变更,项目也得跟着改没有统一的管理平台数据不知道被哪些

2020-12-18 10:45:25 250

原创 Spark远程Debug调试

1.首先调试spark分为好几个阶段 有spark提交阶段,spark-driver,executor,下面分别介绍如何进行调试spark-submit 或者spark-sql的提交spark-sql的提交 也是通过spark-submitspark-submit是通过spark-classspark-class会去执行 java -cp xxx的命令 来启动spark,...

2020-11-13 11:32:55 1354 1

原创 spark 写文件 与hive写文件 出现 权限对比

背景描述从spark on yarn 迁移到 k8s 的过程中,发现写到hive表中的数据的权限是不一致的。原来的权限是现在的权限是对比两次的提交不一致的地方,发现在提交的时候有加一个参数spark.sql.hive.convertInsertingPartitionedTable = true 加上之后会出现问题,改为false 不会出现权限的丢失。问题复现在了解到qtt-hive和社区的hive的修改的部分问题后,发现qtt-hive是通过修改部分代码来保...

2020-10-28 11:53:15 1054

原创 深入理解JVM-各个阶段的作用

###JVM的组成class loader我们所说的类加载过程即是指JVM虚拟机把.class文件中类信息加载进内存,并进行解析生成对应的class对象的过程。举个通俗点的例子来说,JVM在执行某段代码时,遇到了class A, 然而此时内存中并没有class A的相关信息,于是JVM就会到相应的class文件中去寻找class A的类信息,并加载进内存中,这就是我们所说的类加载过程。由此可见,JVM不是一开始就把所有的类都加载进内存中,而是只有第一次遇到某个需要运行的类时才会加载,且只加载一次

2020-09-11 19:08:56 513

原创 数据平台-调度系统(1)-quartz

在数据平台中,每天都会有上万个任务进行流转,如何准确,实时的完成任务,是非常关键的一步。公司在发展的过程经历了azikaban->airflow->dataflow(自研airflow支持k8s)->kepler的一个过程。目前使用的调度系统任务3w+,日执行10w+。上线0事故,非常稳定的运行。底层调度器用的是quartz,写调度系统之前肯定要了解调度器的源码。于是记录下。Quartz是Java领域著名的开源任务调度工具。Quartz提供了极为广泛的特性如持久化任务,集群和分布式任务

2020-09-08 20:08:05 343

原创 离线数据平台的开发历程

发展历程实时平台的建设可以通过搜索 趣头条基于Flink+ClickHouse构建实时数据平台 大佬分享的ppt来学习使用,本系列的分享主要是针对离线平台产品的研发使用迭代经历。数据门户数据查询:封装 Hive,SparkSQL,Presto 等底层查询引擎,为用户提供 SQL 入口的数据查询界面数据展示:提供实时 & 离线数据,通过指标块,趋势图,维度下钻等方式支持用户的报表 & 分析需求AB实验:提供科学流量分配&实验数据报告,为产品功能上线,算法策略优化等提供小

2020-08-26 08:57:34 500

原创 数据平台-元数据中心

元数据的作用数据中台的构建,需要确保所有的口径一致,要先把原先口径不一致的,重复的指标进行梳理,整合成一个统一的指标字段(指标管理系统),而前提,要搞清楚指标的业务口径,数据来源,计算逻辑。这些东西就是属于元数据元数据包括哪些数据数据字典数据血缘数据特征下面举个例子任务 flow_dws_trd_sku_1d 读取表dwd 生成汇总表dws数据字典描述的是数据的结构信息。包括表名,注释信息,产出的任务,哪些字段,字段含义,字段类型等等。数据血缘指的是上游表是由哪些下游表生成,一般做故

2020-08-26 08:55:35 1534

原创 SpringBean的生命周期

生命周期的概要流程Bean 的生命周期概括起来就是 4 个阶段:实例化(Instantiation)属性赋值(Populate)初始化(Initialization)销毁(Destruction)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-liS3QrIJ-1598322335610)(evernotecid://97E9B663-FEA6-4C0C-B3BB-2FFD94DC35AA/appyinxiangcom/16306208/ENResource/p2

2020-08-25 10:26:36 109

原创 SpringBoot的自动装配

@Import注解源码解析Spring 3.0之前,创建Bean可以通过xml配置文件与扫描特定包下面的类来将类注入到Spring IOC容器内。而在Spring 3.0之后提供了JavaConfig的方式,也就是将IOC容器里Bean的元信息以java代码的方式进行描述。我们可以通过@Configuration与@Bean这两个注解配合使用来将原来配置在xml文件里的bean通过java代码的方式进行描述@Import注解提供了@Bean注解的功能,同时还有xml配置文件里标签组织多个分散的xml文件

2020-08-25 10:26:05 157

原创 数据抽取工具选型调研

数据抽取工具调研1.数据抽取简述数据抽取是从数据源中抽取数据的过程。实际应用中,数据源较多采用的是关系数据库。从数据库中抽取数据一般有以下几种方式。(1)全量抽取全量抽取类似于数据迁移或数据复制,它将数据源中的表或视图的数据原封不动的从数据库中抽取出来,并转换成自己的ETL工具可以识别的格式。全量抽取比较简单。(2)增量抽取增量抽取只抽取自上次抽取以来数据库中要抽取的表中新增或修改的数据。在ETL使用过程中。增量抽取较全量抽取应用更广。如何捕获变化的数据是增量抽取的关键。对捕获方法一般有两点要求

2020-08-25 10:24:57 920

原创 mysql的mvcc机制

MySQL InnoDB MVCC 机制的原理及实现什么是 MVCCMVCC (Multiversion Concurrency Control) 中文全程叫多版本并发控制,是现代数据库(包括 MySQL、Oracle、PostgreSQL 等)引擎实现中常用的处理读写冲突的手段,目的在于提高数据库高并发场景下的吞吐性能。MVCC中对应的增删改查待补充InsertselectupdatedeleteMVCC中底层的实现undo log日志管理...

2020-08-25 10:22:52 84

原创 无锁 VS 偏向锁 VS 轻量级锁 VS 重量级锁

无锁 VS 偏向锁 VS 轻量级锁 VS 重量级锁这四种锁是指锁的状态,专门针对synchronized的。在介绍这四种锁状态之前还需要介绍一些额外的知识。首先为什么Synchronized能实现线程同步?在回答这个问题之前我们需要了解两个重要的概念:“Java对象头”、“Monitor”。Java对象头synchronized是悲观锁,在操作同步资源之前需要给同步资源先加锁,这把锁就是存在Java对象头里的,而Java对象头又是什么呢?我们以Hotspot虚拟机为例,Hotspot的对象头主要

2020-08-25 10:21:29 636

原创 MAC 安装配置mysql

安装mysql 社区下载mysql.dmg文件点击安装即可常见问题没有my.cnf文件默认mac安装是没有文件的,先执行:mysql --verbose --help | grep my.cnf得到:/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf新建一个my.cnf文件sudo vim my.cnf然后将# Example MySQL config file for medium syste

2020-08-25 10:20:55 121

原创 mysql事务隔离级别

事务的并发带来了什么问题脏读当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。例子:1. 张三初始工资1000元,人事修改为2000 但是未提交2. 张三读取工资 发现修改为2000 3. 人事发现修改错误,回滚了提交。张三再读发现变成了1000张三读到的2000就是脏数据幻读指事务不独立执行时发生的现象,表现为新增删除的时候。 事务A操作所有数据,变更了所有行的数据。然后事务B新增了一条

2020-08-25 10:20:31 100

原创 mysql锁机制

为什么要加锁在显示开启事务的情况下,如果不加锁 执行下面的则会出现数据的异常。会丢失更新InnoDB锁类型常见概念乐观锁 悲观锁乐观锁和悲观锁是两种并发控制的思想,可用于解决丢失更新的问题。悲观锁和乐观锁,也并不是 MySQL 或者数据库中独有的概念,而是并发编程的基本概念。主要区别在于,操作共享数据时,“悲观锁”即认为数据出现冲突的可能性更大,而“乐观锁”则是认为大部分情况不会出现冲突,进而决定是否采取排他性措施。乐观锁:通过版本号/cas算法实现 ABA问题悲观锁:synchron

2020-08-25 10:18:05 83

原创 Docker的简单使用

docker的安装通过uname -r命令查看你的当前的内核使用root登录,确保yum包更新到最新yum -y update卸载旧版本yum remove docker docker-common docker-selinux docker-engine安装需要的软件包yum install -y yum-utils device-mapper-persistent-data lvm2设置yum源 并更新yum包索引yum-config-manager --add-repo

2020-08-25 10:16:30 114

原创 supervisorctl的使用

supervisorctl的使用查看配置文件cat /etc/supervisord.conf; Sample supervisor config file.[unix_http_server]file=/var/run/supervisor/supervisor.sock ; (the path to the socket file);chmod=0700 ; sockef file mode (default 0700);chown=nobody

2020-08-25 10:15:21 419

原创 GRPC的JAVA使用介绍

[ TOC ]GRPC的使用1.创建maven项目并且添加依赖将下面的依赖添加到pom文件中,GRPC一共依赖四个jar包。 <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-netty-shaded</arti...

2019-11-19 14:58:14 1110 1

原创 元数据平台解决方案

一 遇到的问题数据平台中元数据的管理一般有离线数据元数据 实时数据元数据,本次主要解决了离线的元数据。也就是hive的metastore信息。但是metastore数据存储在mysql中,而且数据之间关联性比较强比如存储数据库的dbs,存储表的tbls,存储字段信息的colums_v2等等。想要获取到一个字段需要关联大量的表。造成了查询速度过慢,而且对于hive的元数据库也会有比较大的压力。...

2019-08-17 17:30:06 442

原创 livy简介

livy简介什么是livyLivy通过提供REST服务来简化与Spark集群的交互。它可以通过job或者代码片段的方式来提交Spark任务,并同步或者异步地获得任务的结果,以及管理spark context,上述功能通过简单的REST接口或者RPC服务来实现。livy也可以简化Spark与一些应用程序之间的交互,使得Spark可以用于一些web应用(比如Hue)。更多的功能包括:拥有长...

2019-02-16 11:08:28 13208 1

原创 简单SQL练习题

Student(Sid,Sname,Sage,Ssex) 学生表       Sid:学号;Sname:学生姓名;Sage:学生年龄;Ssex:学生性别Course(Cid,Cname,Tid) 课程表                    Cid,课程编号;Cname:课程名字;Tid:教师编号SC(Sid,Cid,score) 成绩表                            ...

2019-02-15 15:11:33 1514

原创 clickhouse简介

什么是ClickHouse?ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。在传统的行式数据库系统中,数据按如下顺序存储:处于同一行中的数据总是被物理的存储在一起。Id Device_code Title Cmd Log_time1 89354350662 read 500 2018-10-18 05:19:202 9032...

2018-12-20 21:00:06 3550

原创 druid数据查询

数据查询。1.概览Durid通过提供 http rest风格的查询方式去请求查询节点。通过json文件将查询内容表达出来,结构通过json格式返回,来查询Durid中的数据。通常查询时,发送Post请求到broker节点 curl -X POST '&lt;broker_host&gt;:&lt;port&gt;/druid/v2/?pretty' -H 'Content-Type:...

2018-12-20 20:59:09 1582

原创 druid数据摄入

数据摄入Druid的数据摄入有两种方式,一种是流式数据源,一种是静态数据源数据源种类静态数据源:数据已经生产完毕,不会有新数据产生的数据源,静态数据通常表现为离线数据,静态服务可以通过实时节点摄入,也可以通过索引服务启动一个任务摄入。流式数据源:指的是持续不断地生产数据的数据源。如日志,消息队列等。对于流式数据的摄取,Druid提供了两种方法,分别是Push(推送)和Pull(拉取...

2018-12-20 20:58:37 1333

原创 druid集群安装

一.下载安装(以下操作均需在所有节点执行)创建/opt/druid目录作为安装目录。 下载最新版本druid wget http://static.druid.io/artifacts/releases/druid-0.12.3-bin.tar.gz 解压下载后的文件并重命名为druid tar -zxvf druid-0.12.3-bin.tar.gz;mv druid-0.12.3 d...

2018-12-20 20:58:10 1124

原创 druid简介

Druid的由来随着大数据分析需求的爆炸性增长,很多公司都经历过将以关系型商用数据库为基础的数据平台,转移到一些开源生态的大数据平台,例如Hadoop 或Spark 平台,以可控的软硬件成本处理更大的数据量。Hadoop 设计之初就是为了批量处理大数据,但数据处理实时性经常是它的弱点。例如,很多时候一个MapReduce 脚本的执行,很难估计需要多长时间才能完成,无法满足很多数据分析师所期望的...

2018-12-20 20:57:29 1880

原创 Flink提交任务至yarn

在flink on yarn模式中,flink yarn-session的两种提交方式1.公用一个yarn-session在yarn中初始化一个flink集群,开辟指定的资源,以后提交任务都向这里提交。这个flink集群会常驻在yarn集群中,除非手工停止。2.每个job提供一个yarn-session  每次提交都会创建一个新的flink集群,任务之间互相独立,互不影...

2018-09-29 16:54:07 23205

原创 文章标题

zookeeperzookeeper 中的两种算法:paxos (选举算法)和Zabzookeeper的核心是原子广播,这个机制保证了各个server之间的同步实现这个机制的协议叫做Zab协议,Zab有两种模式 他们分别是恢复模式(选主)和广播模式(同步)当服务启动或者在leader崩溃后Zab进入恢复模式,当leader选举出来且大多数的server完成了和leader的状态同步后 恢复模式就

2017-04-17 19:54:56 196

原创 spark从kafka中获取数据

spark从kafka获取数据两种方式1.kafkaUtils.createStream利用 Kafka 消费者高级 API 在 Spark 的工作节点上创建消费者线程,订阅 Kafka 中的消息,数据会传输到 Spark 工作节点的执行器中,但是默认配置下这种方法在 Spark Job 出错时会导致数据丢失,如果要保证数据可靠性,需要在 Spark Streaming 中开启Writ

2017-04-14 15:22:06 2855

原创 flume+kafka 积累一波

1.flume的安装首先进行解压:$tar zxvf apache-flume-1.6.0-bin.tar.gz /home/hadoop             // 自定义目录 解压完成进行配置进入/home/hadoop/apache-flume-1.6.0-bin/cof目录,里面flume-conf.properties.template主要配置Flume-env

2016-07-13 16:29:18 366

空空如也

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

TA关注的人

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