自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 常用Shell命令汇总-用户和用户组管理

不知道大家平时有没有跟我一样的感受,就是很多shell命令自己其实用过,但时间一久又忘记了,导致又要到处百度。开始写这个系列的目的第一是为了总结,第二是为了以后忘记时可以直接到这找哈哈哈哈哈。平时在百度时还发现一个问题,就是其实我只想要最常用的命令,但是你给我列出一堆,作为选择困难症的我,我会选择记最简单。本次总结都会列出工作中最常用的一些命令。下面介绍一下linux中的用户和用户组管理三个重要的文件# 存储用户的关键信息/etc/passwd# 存储用户组的关键信息/etc/group.

2021-06-13 12:31:26 1280

原创 常用Shell命令汇总-运行模式

不知道大家平时有没有跟我一样的感受,就是很多shell命令自己其实用过,但时间一久又忘记了,导致又要到处百度。开始写这个系列的目的第一是为了总结,第二是为了以后忘记时可以直接到这找哈哈哈哈哈。平时在百度时还发现一个问题,就是其实我只想要最常用的命令,但是你给我列出一堆,作为选择困难症的我,我会选择记最简单。本次总结都会列出工作中最常用的一些命令。运行模式在Linux中存在一个进程:init(initialize,初始化),进程id是1#查看该进程ps -ef | grep init该进程存.

2021-06-12 15:13:59 377

原创 常用Shell命令汇总-vim

不知道大家平时有没有跟我一样的感受,就是很多shell命令自己其实用过,但时间一久又忘记了,导致又要到处百度。开始写这个系列的目的第一是为了总结,第二是为了以后忘记时可以直接到这找哈哈哈哈哈。平时在百度时还发现一个问题,就是其实我只想要最常用的命令,但是你给我列出一堆,作为选择困难症的我,我会选择记最简单。本次总结都会列出工作中最常用的一些命令。下面就从最简单vim命令开始三种模式命令模式:可以输入快捷键进行一些操作(如删除行,复制行,移动光标,粘贴等等)编辑模式:在该模式下可以对文件的内容进.

2021-06-12 15:06:28 645 1

原创 一文认识数据湖

数据湖的提出随着互联网的兴起,客户产生的数据量是越来越大。为了存储这些数据,以往的单个数据库已经不能满足,公司通常会构建数十个独立运行的业务数据库来支持不同的业务和用户。但是这也导致了一个数据孤岛,整个组织中数据分散到这个地方,由于无法集中存储和利用这些数据,公司对于数据的利用效率并不高,因此企业开始逐步走向数据仓库模式。数据仓库的兴起,人们发现,数据孤岛的问题貌似被解决了,但是随之又引发了另外一个问题。随着互联网的发展,数据增长的太快,而数仓对于数据建模有严格的限制,每开发一次数仓的新应用,流程就很长

2021-03-14 20:00:59 548 4

原创 Flink-1.12.0 CEP详解与实战

什么是CEPCEP(Complex Event Processing),复杂事件处理,一个或多个由简单事件构成的事件流通过一定的规则匹配,然后输出用户想得到的数据,满足规则的复杂事件。Flink CEP简介Flink CEP是在flink中实现的复杂事件处理库,也就是说搭配Flink实时处理的能力,FLink CEP能够在流处理的场景去做一些实时的复杂事件匹配,特点是能够作用于一个无限的数据流上,这就意味着它可以将某种规则的数据匹配一只保持下去;举个例子:下图中原始流包含了各种形状的图形,并且是杂

2021-02-19 14:02:24 1605 3

原创 Flink1.12-Flink Client集成Hive快速入门

Hive已经成为数据仓库生态系统中的核心。它不仅仅是一个用于大数据分析和ETL场景的SQL引擎,同样也是一个数据管理平台,一些被大家广泛使用大数据处理引擎都声称对Hive有着很好的兼容性。而Flink从1.9开始支持Hive,只不过是beta版,不推荐在生产环境中使用。在Flink1.10版本中,标志着对Blink的整合宣告完成,对Hive的集成也达到了生产级别的要求。本文以目前最新的Flink1.12.1为例,阐述Flink集成Hive的简单过程。HiveCatalog多年来,Hive Metas.

2021-01-31 23:51:22 1073 2

原创 ClickHouse副本同步及分布式DDL的原理

基本上所有的分布式存储系统都有一个共同的特点,将庞大的数据量分成多个小块存储在不同的机器上,通常称为分片,每个分片为了保证它数据不丢失,它们又有各自副本。ClickHouse也不例外,一起来看看ClickHouse是怎么实现的副本同步原理副本同步的原理其实我们在前面的篇幅中我们已经提到过,现在再用一张手画图复习一下简单来说它们的副本同步机制是通过Zookeeper的监听机制实现的,当我们向Node1发送写入操作请求,Node1会推送操作日志到zookeeper集群中,Node2通过监听发现Nod.

2021-01-13 19:22:09 3465

原创 MergeTree原理详解之数据存储

前面我们讲解了MergeTree引擎索引的原理,但是仅仅依靠索引,并不能支撑ClickHouse如此强悍的性能。这篇文章将为你解决以下问题,数据在底层具体是如何存储,怎么根据索引编号找到对应的数据。列独立存储说到存储,大部分MPP数据库都是用的同一种思想,即列式存储。ClickHouse也不例外。在MergeTree中,数据按照列存储,注意哦,是完全列式存储,每个列字段都拥有一个与之对应的.bin文件,这些文件承载着数据的物理存储。数据文件以分区目录的形式被组织存储,在bin文件中只会保存当前分区.

2020-12-20 20:28:17 1042 2

原创 MergeTree原理详解之索引

前面我们提到了ClickHouse的MergeTree引擎,在ClickHouse众多的表引擎中,MergeTree引擎最为强大,在生产环境中的绝大多数场景都会使用此系列的表引擎。值得注意的是只有MergeTree系列的表引擎才支持主键索引,数据分区,数据副本,数据采样这样的特性,只有此系列的表引擎才支持ALTER操作。MergeTree表引擎在写入一批数据的时候,数据总会以数据片段的形式写入磁盘,并且数据片段不可修改。为了避免片段过多,clickhouse会通过后台的的线程,定期合并这些数据片段,属于

2020-12-07 00:04:17 5968

原创 ClickHouse集群搭建

前两篇文章给大家介绍了ClickHouse及其核心架构,以及ClickHouse的单机部署。但是在实际生产中我们很少会是单机运行,因此今天就给大家介绍ClickHouse集群的部署方法Zookeeper集群部署ClickHouse虽说不依赖Hadoop生态,但是依赖于zookeeper,作用是实现ClickHouse多个实例之间的通信。例如一个客户端向其中一个实例发起写入数据的操作,该实例接收到请求后会将操作日志写入zookeeper中,这样其他实例监听到zookeeper的变化,便从目标实例下载数.

2020-11-15 16:45:13 4902

原创 ClickHouse介绍与核心架构

ClickHouse是什么ClickHouse全称是Click Stream,Data Warehouse,简称ClickHouse就是基于页面的点击事件流,面向数据仓库进行OLAP分析。ClickHouse是一款开源的数据分析数据库,由战斗民族俄罗斯Yandex公司研发的,Yandex是做搜索引擎的,就类似与Google,百度等。我们都知道搜索引擎的营收主要来源与流量和广告业务,所以搜索引擎公司会着重分析用户网路流量,像Google有Anlytics,百度有百度统计,那么Yandex就对应于Yande

2020-11-08 14:01:50 5297

原创 ClickHouse单机部署

今天给大家分享ClickHouse的单节点部署,单节点部署是集群部署的前提,今天就先来看看单机怎么部署吧,集群部署以及ClickHouse的相关介绍将放在后面讲解单节点部署环境准备操作系统CentOS7必须确保自己的系统支持SSE指令集,如果不支持则不能直接使用预编译的安装包,需要通过源码编译特定的版本进行安装。可通过以下命令验证是否支持SSE指令集grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "

2020-10-29 00:05:38 719

原创 flink-1.11-Standalone模式启动源码解读之Master启动

前面我们分析了Standalone模式下执行start-cluster.sh脚本后的一系列脚本执行流程,最后一步是执行flink-daemon.sh脚本,在该脚本中会执行对应的java类,其中JobManager对应的类是StandaloneSessionClusterEntrypoint,下面我们就跟着源码看看Standalone session模式下Master是如何启动的。首先看下main方法的代码从main我们大概可以看出启动的一个大概流程。首先是获取环境配置与用户的特定配置,然后将配置加.

2020-08-30 17:19:10 625

原创 flink-1.11-StandaloneSession模式源码解读之脚本启动流程

还记得刚接触Flink的时候,就是简简单单的配置了几个配置文件然后执行start-cluster.sh脚本集群就起来了。接着打开flink web页面上传我们要执行jar包。当初这一切看起来是多么简单,其实底层确蕴含着很多的逻辑,今天我们就从start-cluster.sh脚本开始,一探究竟。start-cluster.sh我们先来看看start-cluster.sh这个脚本bin=`dirname "$0"`bin=`cd "$bin"; pwd`# 先调用config.sh读取配置

2020-07-15 22:34:12 1060

原创 Spark1.3.1源码(3)-Task提交

前面我们已经分析了DAGScheduler对Stage划分,并对Task的最佳位置进行计算之后,通过调用taskScheduler的submitTasks方法,将每个stage的taskSet进行提交。今天给大家讲一下taskScheduler是如何将Task发送到各个Executor上执行的。TaskScheduler在taskScheduler的submitTasks方法中会为每个TaskSet创建一个TaskSetManager,用于管理taskSet。然后向调度池中添加该TaskSet.

2020-07-05 23:23:43 100

原创 Spark1.3.1源码(2)-DAGScheduler中stage划分和提交

前面我们已经介绍了SparkSubmit提交任务后,Worker的调度以及Executor的注册过程。今天我们将介绍Spark是如何将我们程序划分成一个个job并且提交到对应的Executor执行的。我们知道RDD分为两种,transformation和action。只有当执行action时才会真正提交job进行计算。并且还会根据RDD之间的依赖关系(宽依赖、窄依赖)进行stage的划分,将stage中的一个个task提交到对应的Executor上执行。我们以一个闭着眼睛都能写得出的WordCount.

2020-07-01 22:58:40 181

原创 Spark1.3.1源码(1)-Spark Submit任务提交以及Worker向Executor注册

当我们写好的Spark程序想要提交到集群运行时,我们通常是调用SparkSubmit脚本进行提交,那调用Spark Submit脚本是如何在集群中执行我们的Spark程序的,Master是如何进行调度的,Executor如何向Driver注册的等等,过程复杂,这篇文章将为你一一揭晓。1.任务提交Executor的注册流程执行命令bin/spark-submit,内部通过exec执行${SPARK_HOME}/bin/spark-class org.apache.spark.deploy.SparkS.

2020-06-30 10:41:54 226

原创 Spark-RDD编程API快速入门

RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个可分区,不可变,里面的元素可并行计算的结合。RDD具有自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显示地将工作集换存在内存中,后续的查询能够重用工作集,这极大地提升了查询速度。RDD的属性一组分片(Partition):即数据集的基本组成单...

2020-04-19 20:14:50 234

原创 Spark超简单入门

Spark概述1.1. 什么是Spark(官网:http://spark.apache.org)Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL、Spark ...

2020-04-19 20:13:44 170

原创 HBase简介

什么是hbaseHBASE是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBASE技术廉价的PC Server上搭建起大规模结构化存储集群。HBASE的目标是存储并处理大型的数据,更具体来说是仅需普通的硬件配置,就能够处理极大规模的数据。HBASE是Google Bigtable的开源实现,但是也有很多不同之处。比如:Google Bigtable底层是以GFS作为其文件存储系...

2020-03-11 18:18:18 224

原创 数据采集-flume的使用

前言 在一个完整的大数据处理系统中, 除了hdfs+mapreduce(或spark)+hive组成分析系统的核心之外,还需要数据采集、结果数据导出、任务调度等不可或缺的辅助系统, 而这些辅助工具在hadoop生态体系中都有便捷的开源框架,如图所示:日志采集框架FlumeFlume介绍概述Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系...

2020-03-02 19:01:14 1312

原创 Hive实例-解析百万json以及python脚本的使用

实例 使用UDF解析一百万条json并按字段插入表中1. 编写UDFpublic class MovieJsonParser extends UDF { public String evaluate(String json) throws IOException { ObjectMapper objectMapper = new ObjectMapper...

2020-02-10 19:49:34 1114

原创 Hive数据仓库你了解了吗

在工作中我们经常使用的数据库,数据库一般存放的我们系统中常用的数据,一般为百万级别。如果数据量庞大,达到千万级、亿级又需要对他们进行关联运算,该怎么办呢?前面我们已经介绍了HDFS和MapReduce了,它俩结合起来能够进行各种运算,可是MapReduce的学习成本太高了,如果有一种工具可以直接使用sql将hdfs中的数据查出来,并自动编写mapreduce进行运算,这就需要使用到我们的hive...

2019-10-28 13:23:06 943

原创 MapReduce案例-好友推荐

用过各种社交平台(如QQ、微博、朋友网等等)的小伙伴应该都知道有一个叫 "可能认识" 或者 "好友推荐" 的功能(如下图)。它的算法主要是根据你们之间的共同好友数进行推荐,当然也有其他如爱好、特长等等。共同好友的数量越多,表明你们可能认识,系统便会自动推荐。今天我将向大家介绍如何使用MapReduce计算共同好友算法 假设有以下好友列表,A的好友有B,C,D,F,E,O; ...

2019-10-09 18:58:48 1547

原创 Spring Boot核心(基本配置)

上一篇Spring Boot我们简单讲了如何快速创建一个SpringBoot项目。大家都知道SpringBoot非常强大,可以轻松与各种工具集成,但是我们知其然,也必须知其所以然。今天开始就和大家一起学习一下SpringBoot核心,核心由于过于重要,需要分成好几章,今天我们先来看看基本配置。入口类和@SpringBootApplication 使用过或者瞄过一眼Spring ...

2019-09-23 09:25:59 972

原创 Spring Boot初识

今天准备开一个新系列springboot,springboot结束后会更新springcloud,想要学会springcloud先学springboot吧。以后springboot和hadoop轮流更新 嘻嘻。在开篇呢,想给大家推荐一本书,也是最近公司一直推荐阅读的,。话说,刚看到这本书的时候,我以为是讲的人从如何从底层爬到顶层,走向人生巅峰。其实并不是哈哈,这本书主要是讲我们在日常工作...

2019-09-17 09:20:00 1958 2

原创 案例-使用MapReduce实现join操作

哈喽~各位小伙伴们中秋快乐,好久没更新新的文章啦,今天分享如何使用mapreduce进行join操作。在离线计算中,我们常常不只是会对单一一个文件进行操作,进行需要进行两个或多个文件关联出更多数据,类似与sql中的join操作。今天就跟大家分享一下如何在MapReduce中实现join操作需求 现有两张,一张是产品信息表,一张是订单表。订单表中只表存了产品ID,如果想要查出订...

2019-09-15 10:08:15 2415

原创 Spring boot运行原理-自定义自动配置类

在前面SpringBoot的文章中介绍了SpringBoot的基本配置,今天我们将给大家讲一讲SpringBoot的运行原理,然后根据原理我们自定义一个starter pom。本章对于后续继续学习SpringBoot至关重要,了解SpringBoot运行原理对于我们深入学习SpringBoot有着非常重要的作用。SpringBoot的自动配置从何而来 要想了解SpringBoo...

2019-09-02 19:24:46 2126

原创 使用docker搭建hadoop集群

Hello小伙伴们,上一篇我们讲了怎么使用虚拟机搭建hadoop集群。由于这种方式搭建起来,虚拟机较大,如果是从0开始搭建的话,那是十分缓慢。下面就给大家伙讲讲怎么使用docker搭建hadoop集群。docker简介百度百科上这么解释:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows ...

2019-08-28 10:36:27 1338

原创 手把手搭建Hadoop-HA高可用分布式文件系统

背景根据我们之前搭建的hadoop集群,都只有一个namenode,一个resourcemanager。一旦namenode挂了,整个hdfs就废了,因为namenode负责着元数据信息的管理,响应客户端。如果是resourcemanager挂了,那么yarn也是废了,无法尽心资源调度,没办法跑mapreduce,spark等运算框架。这种情况下就急需一个高可用的hadoop集群前提...

2019-08-26 18:33:55 1225

原创 hdfs详细介绍

之前有人问我,“我放了一个***.avi在linux服务器上,你肯定找不到嘻嘻”。登上去发现etc文件夹大了好几个G。。。。你4不4撒,你为什么不把avi切成多块,放到不同服务器上,这谁能发现呢??1. HDFS前言上面开个玩笑,hdfs实际上不是让我们当作网盘来使用的。● 设计思想 ○ 分而治之:将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据...

2019-06-27 19:18:25 1300

空空如也

空空如也

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

TA关注的人

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