大数据处理
文章平均质量分 93
一 铭
公众号:大数据架构师修行之路
展开
-
如何选择: 数据仓库(Data Warehouse),数据湖(Data Lake),数据湖仓(Data Lakehouse)
databricks公司推出delta lake后,又推出了Data Lakehouse。该产品结合了数据仓库和数据湖的优势。本文介绍了数据仓库,数据库,数据湖仓的特点和使用场景,避免在使用时产生混淆。原创 2023-03-12 10:17:54 · 1624 阅读 · 0 评论 -
通过Papermill+Airflow来调度运行Jupyter-Notebook(.ipynb)文件-实战
通过Parpermill+Airflow来运行Jupyter-Notebook(.ipynb)文件实战在完成数据处理和数据科学代码时,通常我们会使用jupyter-notebook来进行开发,我们可以会开发很多个notebook文件(.ipynb),notebook文件之间可能还存在依赖关系。notebook一多管理起来就会比较麻烦,对上线和任务调度更是一个不小的挑战。Parpermill是一...原创 2020-04-26 12:53:05 · 2567 阅读 · 0 评论 -
spark sql实战(pyspark)—如何把多个udf作用于同一列数据
概述本文介绍如何把多个udf函数使用到dataframe/dataset的同一列上。使用思路有时候我们需要在同一列上进行多个函数操作,形成一个函数链。也就是把上一个函数的输出作为下一个函数的输入,把最后的结果作为处理结果。有多种方式可以实现该功能,这介绍一种函数链的方式,基本思路如下:把需要对列进行处理的函数放到一个链表中分别通过函数链上的每个函数来对列数据进行处理把上一个函数的处...原创 2019-12-23 08:27:04 · 1067 阅读 · 0 评论 -
spark2 rdd实战-使用mapPartitons实战
概述本文讲述map和mapPartitions的相同点和区别。并对mapPartitions优缺点进行总结,并总结了mapPartitions的使用例子。map和mapPartitionsmapmapPartitionstransformationtransformation基于一行进行操作基于一个分区的数据操作没处理完一行就返回一个对象处理完一个分区的...原创 2019-04-11 23:01:33 · 2447 阅读 · 0 评论 -
分布式图数据库-JanusGraph简介
概述本文介绍分布式图数据库JanusGraph的基本概念和优势。基本概念JanusGraph是一个可扩展的图数据库(graph database),针对存储和查询包含分布在多机群集中的数千亿个顶点和边的图进行了优化。JanusGraph是一个事务数据库,可以支持数千个并发用户实时执行复杂的图遍历。此外,JanusGraph还提供以下功能:弹性和线性可扩展性,适用于不断增长的数据和用户...原创 2019-04-11 22:53:29 · 2810 阅读 · 0 评论 -
大数据治理开源组件Griffin介绍
概述大数据发展到今天,对数据质量的要求越来越高,如何保证数据的质量,如何对数据的一致性进行检测?本文介绍开源的数据治理组件griffin的功能和组成。griffin是国人(ebay工程师)编写的一款数据治理开源软件。Griffin介绍Apache Griffin(以下简称Griffin)是一个开源的大数据数据质量解决方案,它支持批处理和流模式两种数据质量检测方式,可以从不同维度(比如离线任...原创 2019-04-06 18:13:53 · 10105 阅读 · 0 评论 -
大数据中间件-Alluxio介绍
概述本文介绍大数据中间件Alluxio的基本概念。什么是AlluxioAlluxio以内存速度统一数据的访问。它是世界上第一个虚拟分布式存储系统(virtual distributed storage system)。它在计算框架和存储系统之间的搭起了一座桥梁,使应用程序能够通过统一的接口连接到多个存储系统。Alluxio以内存为中心的架构使数据访问速度比现有解决方案快几个数量级。在数据生...翻译 2019-04-05 21:30:19 · 3172 阅读 · 0 评论 -
postgres-xl集群安装与使用
概述本文是几年前的整理笔记,现分享出来。实际上是把我cu上的那篇文章整理到这里。供大家参考。手动安装postgres-xl比较麻烦,而且容易出错。手动安装时参考了网上的一篇文章,还是没有安装成功。最后用pgxc_ctl进行自动安装,终于安装成功了。记录的过程如下:主机规划cnode1 (gtm)cnode2 (gtm_proxy,coordinator,datanode)cnode3...原创 2019-04-04 10:57:25 · 871 阅读 · 0 评论 -
Postgresql-XL介绍
概述postgresql-xl类似于greenplum,都是MPP数据库,postgresql-xl一直都是开源的,但开源社区活跃度不是很高,gp在前两年也开源了,两者各有优缺点,在性能上有些方面不相上下,但gp要相对稳定一些。据称都支持海量数据,但这两种数据在实际使用过程中的数据量,都有一定的上限。本文介绍postgresql-xl的基本概念,在几年前对该数据库进行过调研,这里做个整理,分享出...原创 2019-04-04 10:52:13 · 3519 阅读 · 0 评论 -
spark2实战-使用checkpoint保存和读取还原RDD
概述本文讲述如何使用checkpoint来保存rdd,并读取还原rdd的数据。checkpoint简介checkpoint可以把rdd持久化到磁盘上,可以是本地磁盘也可以是外部存储系统(比如:hadoop文件系统)。要注意的是:在rdd进行checkpoint时,会先把rdd的血缘(lineage)去掉。另外:在大数据量的情况下,保存和读取rdd数据也会十分消耗资源。所以,是选择使用ch...原创 2019-04-17 09:33:42 · 3394 阅读 · 3 评论 -
spark2原理分析-SparkEnv的初始化
概述本文讲述spark执行环境:SparkEnv的概念和实现原理。spark执行环境(SparkEnv)的基本概念spark执行环境的实现类是:SparkEnv,该类包括所有spark运行实例(master和worker)需要的运行环境工具类,包块:序列化,block manager,map output tracker,RpcEnv等等。spark的运行实例通过SparkEnv的全局变量...原创 2019-05-19 10:14:03 · 493 阅读 · 0 评论 -
spark2实战-通过spark dataframe导入csv文件到动态分区表
概述本文讲述如何把一个dataframe加载到spark的动态分区表中。场景介绍把csv和parquet文件加载到spark的动态分区表中,有很多中方案,这里介绍如何通过spark的dataframe把数据文件加载到动态分区表中。注意:为了保证性能,指定分区的字段的字典数据的唯一值最好不要超过几万。这是spark-2.3的partitionBy算子的源码的注释中写到的。数据准备有如下的...原创 2019-05-19 10:21:00 · 1784 阅读 · 0 评论 -
spark2原理分析—shuffle框架的实现概要分析
概述本文分析spark2的shuffle过程的实现。shuffle过程介绍shuffle总体流程spark2的shuffle过程可以分为shuffle write和shuffle read。shuffle write把map阶段计算完成的数据写入到本地。而shuffle read是从不同的计算节点获取shuffle write的就按出来的数据,这样就会发生网络的数据传输和磁盘的i/o。为...原创 2019-05-19 20:41:21 · 1779 阅读 · 0 评论 -
spark2原理分析-shuffle框架之ShuffleReader实现分析
概述本文讲述shuffleReader的具体实现。从这篇文章中,我们已经知道shuffleReader是一个抽象类,该抽象类只有一个read函数,用来在shuffle阶段从本地或远程获取数据。该抽象类的实现类是:BlockStoreShuffleReader。本文主要讲述该实现类的具体实现。shuffle reader实现要点shuffle过程可以从两个地方来读取数据块,一个是本地的bl...原创 2019-05-25 21:34:31 · 673 阅读 · 0 评论 -
Spark2 Dataset实现原理分析-Dataset实现原理概要
概述本文讲述spark sql中的dataset的组成部分,并对其创建过程进行分析。Dataset要点我们可以总结出dataset的一些要点,如下:和关系型数据表一样,Dataset是强类型的。数据集的行的集合,被称为Dataframe。和RDD一样,Dataset的操作分为两类:转换(transformations)和行动(action)。和RDD一样,Dataset是lazy的...原创 2019-06-07 22:03:34 · 892 阅读 · 0 评论 -
spark2 Dataset实现原理分析-Dataframe原理介绍和Dataset的对比
概述本文讲述Spark Dataframe的原理要点。Dataframe原理要点Spark SQL引入了一个名为DataFrame的表格函数数据抽象。设计它的目的在于:简化Spark应用程序的开发。这样就可以在Spark基础架构上处理大量结构化表格数据。DataFrame是一种数据抽象或特定于域的语言(domain-specific language ),用于处理结构化和半结构化数...原创 2019-06-15 14:05:42 · 1205 阅读 · 0 评论 -
spark2原理分析-BlockManagerMaster实现原理
概述本文讲说明spark中BlockManager的基本原理。BlockManager的基本概念BlockManager运行在spark的每个节点上(包括driver和executors),它提供了一个保存和获取本地或远端数据块到内存、磁盘、或off-heap中的统一接口。BlockManage的实现分析数据块管理的总体架构spark数据块管理的总体架构如下图所示:从该架构图可见,...原创 2019-08-17 21:07:19 · 860 阅读 · 0 评论 -
flink实战—Watermarks的原理和应用
概述本文介绍flink的一个重要特性:水印(Watermarks)的原理,并通过实际的例子说明如何使用该特性。环境:flink-1.7.1水印(Watermarks)简介我们看到对事件时间(Event Time)的支持是流体系结构的核心。当计算基于事件时间时,我们如何知道所有事件是否已经全部到达,我们是否可以计算并输出窗口的结果?换句话说,我们如何跟踪事件时间并知道输入流中已达到某个事件时...原创 2019-02-19 08:28:35 · 1647 阅读 · 0 评论 -
storm实战问题和解决办法
概述本文分析在使用storm过程中可能出现的问题,及其解决办法。实战问题和解决办法修改worker节点上的工作进程(worker process)数量问题描述我们知道,每个worker节点上都可能有多个工作进程(worker process)运行,每个工作进程运行storm的spout或bolt服务。有时,我们需要增加或减少worker节点上的工作进程数量。解决办法在storm.y...原创 2019-02-11 22:07:25 · 442 阅读 · 0 评论 -
bloomfilter的实现原理与使用
bloom filter原理这是一个比较“古老”的算法了,通过一个bit数组作为hash的桶来标识某个元素是否存在过。给出一个item,计算该字符串对应的hash桶中的n的位置,并把该位置的bit位设置为1。可以准确的判断某个item是否存在,但由于一个item可能对应多个bit的位置。所以,当判断某个元素是否不存在时,可能有误差。如下图所示:bloom filter要点不能获取插入...原创 2019-01-31 13:17:18 · 1615 阅读 · 0 评论 -
HBase架构深入分析(二)
HBase架构深入分析(二) 通过《HBase机构深入分析(一)》已经知道HBase大致的架构和组件。二,继续深入分析HBase的架构设计。Region的Flush 当MemStore累积足够的数据时,整个排序的数据集被写入位于HDFS中的新的HFile中。HBase的每个列族使用多个HFiles,其中包含实际数据存储单元格(cell)或Key-Value的实例。这些HFile文件随着时翻译 2017-05-30 16:41:49 · 1474 阅读 · 0 评论 -
storm安装配置(单机版)
storm 单机版安装配置原创 2017-05-21 12:04:32 · 940 阅读 · 0 评论 -
Spark事件总线接口ListenerBus
Spark事件总线接口ListenerBus介绍ListenerBus是事件总线接口。它是一个trait类,它定义了事件和处理事件的listener之间的接口。该接口主要包括以下函数: (1)添加listener (2)删除listener (3)给特定listener发送事件 (4)把事件发送给所有的listener (5)通过特定的类查找listener 它创建了一个线程安全的链表,原创 2017-08-07 18:24:01 · 732 阅读 · 0 评论 -
Elasticsearch实现原理分析-3
近实时搜索 为什么深度分页在分布式搜索可能是危险的? 计算搜索相关性的权衡翻译 2017-08-16 22:23:28 · 1308 阅读 · 0 评论 -
Elasticsearch实现原理分析-1
介绍 本文是分析Elasticsearch系列文章中的一篇,是一个译文。共有三篇,每篇讲解部分Elasticsearch的实现原理。 在翻译的过程中,也需要查看对应部分的源码,来加深对实现原理的理解。但这里并没有对源码进行分析,源码的分析放到后面的系列文章进行介绍。 本文介绍了Elasticsearch的以下原理:是Master/Slave架构,还是Master-less架构?翻译 2017-08-14 23:08:20 · 9253 阅读 · 0 评论 -
Elasticsearch实现原理分析-2
分布式系统 一致性 并发控制 选主机制 数据分片机制 translog(Write Ahead Log - WAL) Lucene segments翻译 2017-08-15 20:43:00 · 3181 阅读 · 0 评论 -
通过例子学习spark dataframe -- transformations函数(1)
dataframe类型化函数Typed transformationscoalescedropDuplicateswheresortselectdistinctintersectunionlimitgroupByKeymapmapPartitions说明transformations函数分为两类: * Typed transformations 这类函数的返原创 2017-12-03 20:05:50 · 3805 阅读 · 1 评论 -
通过例子学习spark dataframe -- transformations函数(2)
通过例子学习spark dataframe transformations函数2说明数据说明agggroupByapply 和 colcubedropjoinnaselectwithColumn 和 withColumnRenamedstat通过例子学习spark dataframe – transformations函数(2)说明transformations函数分为两类原创 2017-12-03 22:36:49 · 3965 阅读 · 0 评论 -
通过例子学习spark rdd--Action函数
action函数foreachforeachPartitioncollectsubtractreducetreeReducefoldaggregateaggregateByKeycountcountByValuezipWithIndextakefirsttakeOrderedtopmaxisEmptysaveAsTextFilekeyBykeysaction原创 2017-11-26 15:14:52 · 1246 阅读 · 0 评论 -
通过例子学习spark dataframe--基础函数和Action函数
spark dataframe基础函数和Action函数基础函数columnsdtypesinputFilesprintSchemarddschemawriteAction函数countforeachPartitionhead 和 firsttakeAsListspark dataframe–基础函数和Action函数基础函数说明 基础函数主要包括对dataframe原创 2017-12-06 23:36:08 · 1948 阅读 · 0 评论 -
单机安装zookeeper集群
单机安装zookeeper集群zookeeper介绍Zookeeper集群主要角色有Leader,Learner(Follower,Observer(当服务器增加到一定程度,由于投票的压力增大从而使得吞吐量降低,所以增加了Observer。)以及client: * Leader:领导者,负责投票的发起和决议,以及更新系统状态 ,注意写操作必须要经过leader同意。 * Follower:接受客原创 2017-12-18 19:44:34 · 1124 阅读 · 0 评论 -
spark dataframe实战(持续更新)
spark dataframe实战说明:该文基于spark-2.0+dataframe介绍dataframe是dataset的行的集合。Dataset是分布式数据集合。Dataset是Spark 1.6+中添加的一个新接口,它提供了RDD的很多优点。 (强类型化,使用强大的lambda函数的功能),以及Spark SQL优化执行引擎的优点。数据集可以从JVM对象构建,然后使用函原创 2017-12-19 10:21:49 · 6914 阅读 · 0 评论 -
kafka源码分析—Controller
概述本文描述了kafka的controller的实现原理,并对其源代码的实现进行了讲解。controller运行原理在Kafka集群中,controller多个broker中的一个(也只有一个controller),它除了实现正常的broker的功能外,还负责选取分区(partition)的leader。 第一个启动的broker会成为一个controller,它会在Zookee...原创 2018-08-14 19:31:50 · 1077 阅读 · 0 评论 -
kafka原理分析—broker总体架构和启动流程
概述本文分析了kafka的broker的实现架构,通过本文的分析,我们可以对broker的实现架构的各个部分有一个总体的了解。实现broker的总体架构图下图是broker内部的总体架构图(该图来自于kafka官方的设计文档):从图中可以看出,kafka系统是由若干子系统构成。根据核心的功能模块,可以大体划分成以下几个子系统:客户端连接请求处理服务客户端指令处理服务日志管理子系统...原创 2019-01-18 13:49:00 · 1674 阅读 · 3 评论 -
kafka原理分析—网络层的实现原理分析
概述本文分析kafka网络层的实现原理。通过这篇文章我们可以对kafka broker的系统架构有一个整体的概念。这篇文章着重介绍kafka网络层的实现原理。网络层功能介绍kafka中网络层的主要功能是:监听客户端的连接请求,和客户端建建立网络连接;和客户端建立连接后,启动处理线程,接收客户端的命令请求;把客户端的请求发送给消息处理子系统;kafka网络层实现原理分析和很多高...原创 2019-01-18 23:55:12 · 639 阅读 · 0 评论 -
kafka原理分析—API层实现总体框架分析
概述本文描述了kafka broker API层的实现原理。API层主要用来处理kafka客户端发送过来的请求,或者把请求发送给对应的处理子系统,并把处理结果返回给客户端。也可以查看这篇文章来了解API层的功能。API层的启动和初始化上图是kafka API层的启动和初始化过程,可以看到,API层是通过一个线程池来实现的,该线程池也可以通过修改server.properties文件中的...原创 2019-01-19 21:50:13 · 413 阅读 · 0 评论 -
HBase架构深入分析(一)
深入分析HBase架构原创 2017-05-28 23:16:14 · 1320 阅读 · 0 评论