自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)

原创 DStream操作之Window Operations(开窗函数)

什么是DStreamDiscretized Stream是Spark Streaming的基础抽象,代表持续性的数据流和经过各种Spark算子操作后的结果数据流。在内部实现上,DStream是一系列连续的RDD来表示。每个RDD含有一段时间间隔内的数据,如下图:对数据的操作也是按照RDD为单位来进行的 Spark Streaming使用数据源产生的数据流创建DStream,也可...

2020-04-20 08:44:48 54

原创 Spark Streaming原理篇

概述Spark Streaming类似于Apache Storm,用于流式数据的处理。根据其官方文档介绍,Spark Streaming有高吞吐量和容错能力强等特点。Spark Streaming支持的数据源有很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象操作如:map、reduce、join、window等进行运算...

2020-04-20 08:23:51 31

原创 spark中dataset、dataframe、和RDD的区别

DataFrameDataFrame的前身是SchemaRDD,从Spark 1.3.0开始SchemaRDD更名为DataFrame。与SchemaRDD的主要区别是:DataFrame不再直接继承自RDD,而是自己实现了RDD的绝大多数功能。你仍旧可以在DataFrame上调用rdd方法将其转换为一个RDD。在Spark中,DataFrame是一种以RDD为基础的分布式数据集,类似于传统数...

2020-04-20 07:57:41 88

原创 Spark SQL之DataFrame

Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。相比于Spark RDD API,Spark SQL包含了对结构化数据和在其上运算的更多信息,Spark SQL使用这些信息进行了额外的优化,使对结构化数据的操作更加高效和方便。有多种方式去使用Spark SQL,包括SQL、DataFrames API...

2020-04-18 11:39:03 49

原创 RDD容错机制之checkpoint

什么是checkpoint(1)、Spark 在生产环境下经常会面临transformation的RDD非常多(例如一个Job中包含1万个RDD)或者具体transformation的RDD本身计算特别复杂或者耗时(例如计算时长超过1个小时),这个时候就要考虑对计算结果数据持久化保存;(2)、Spark是擅长多步骤迭代的,同时擅长基于Job的复用,这个时候如果能够对曾经计算的过程产生的数据进行...

2020-04-17 17:40:20 38

原创 Spark任务调度

任务调度流程图各个RDD之间存在着依赖关系,这些依赖关系就形成有向无环图DAG,DAGScheduler对这些依赖关系形成的DAG进行Stage划分,划分的规则很简单,从后往前回溯,遇到窄依赖加入本stage,遇见宽依赖进行Stage切分。完成了Stage的划分。DAGScheduler基于每个Stage生成TaskSet,并将TaskSet提交给TaskScheduler。TaskSched...

2020-04-17 17:34:21 28

原创 Spark计算模型之RDD

RDD概述什么是RDDRDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将数据缓存在内存中,后续的查询能够重用这些数据,这极大地提升了查询速度。Dataset:一个数据...

2020-04-17 17:29:50 59

原创 Spark概述和环境搭建

为什么学习SparkSpark是一个开源的类似于Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点**;但不同于MapReduce的是**Spark中的Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map redu...

2020-04-17 16:38:19 44

原创 Hbase高级应用

建表高级属性下面几个shell 命令在hbase操作中可以起到很到的作用,且主要体现在建表的过程中,看下面几个create 属性1、BLOOMFILTER 默认是Row布隆过滤可以每列族单独启用。使用 HColumnDescriptor.setBloomFilterType(NONE | ROW | ROWCOL) 对列族单独启用布隆。 Default = ROW 对行进行布隆过滤。...

2020-04-17 12:32:09 30

原创 HBase数据库介绍

介绍1.基于Google BigTable模型开发2.典型的key/value系统3.建立在hdfs之上4.提供高可靠性、高性能、列存储、可伸缩、实时读写nosql的数据库系统。5.Apache Hadoop生态系统中的重要一员,主要用于海量结构化和半结构化数据存储。6.介于nosql和(Relational Database Management System:RDBMS)关系型数据...

2020-04-17 11:33:52 72

原创 HBase内部原理

系统架构系统架构Client1 包含访问hbase的接口,client维护着一些cache来加快对hbase的访问,比如region的位置信息。Zookeeper1 保证任何时候,集群中只有一个master2 存贮所有Region的寻址入口----root表在哪台服务器上。3 实时监控Region Server的状态,将Region server的上线和下线信息实时通知给Maste...

2020-04-17 11:33:21 28

原创 HBse集群结构和集群搭建

HBase集群结构HBase基本组件说明:Client:包含访问Hbase的接口,并维护cache来加快对Hbase的访问,比如region的位置信息。HMaster:是HBase集群的主节点,可以配置多个用来实现HA为RegionServer分配region负责Region的负载均衡发现失效的RegionServer并重新分配其上的regionRegionServer:Re...

2020-04-17 10:01:25 40

原创 ETL+数据可视化+工作调度

数据入库建表语句按data分区,以优化查询效率因为又分区,所以不能用put命令导入数据 要用load装载要看表内数据的时候记得要加select * from *** limit 1000 不然表太大内存会溢出查看hdfs端口 50070ETL 工作的实质就是从各个数据源提取数据,对数据进行转换,并最终加载填充数据到数据仓库维度建模后的表中。只有当这些维度/事实表被填充好,ETL工作才算完...

2020-03-31 19:32:54 153

原创 Hive级联求和

**tip:**在hive中,如果从分析出计算当前的数据跟之前的状态数据有关(比如漏斗模型算转化率)--------->先把自己跟自己join–>就会把自己当前的状态数据跟之前的状态数据join起来出现在一行中。例子:create table t_salary_detail(username string,month string,salary int)row format de...

2020-03-31 17:45:02 40

原创 剑指offer之字符串

替换空格题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy思路1:调用内置函数public class Solution { public String replaceSpace(StringBuffer str) { return str.toStri...

2020-03-19 10:49:47 20

原创 剑指offer之链表

从尾到头打印链表输入一个链表,按链表从尾到头的顺序返回一个ArrayList。思路1:递归 时间复杂度 On空间复杂度On/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val ...

2020-03-18 17:59:29 11

原创 剑指offer之数组

二位数组中的查找1.在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。1.暴力法:时间复杂度 n^2public class Solution { public boolean Find(int target, int [][] array)...

2020-03-16 18:26:13 28

原创 spark为什么比MapReduce速度快

比mapreduce在内存中快100倍, 比mapreduce在磁盘中快10倍重要原因:1)mapreduce中间结果数据只能够保存在磁盘,spark可以保存在内存中。比如说一个任务有2个job,在mapreduce中会存在shuffle,同样spark里面也会存在shuffle * 它们的shuffle产生的数据都会落地到磁盘 * mapreduce中前面的job运行...

2020-03-07 17:05:27 311

原创 kafka的文件存储机制

概述同一个topic下有多个不同的partition,每个partition为一个目录,partition命名的规则是topic的名称加上一个序号,序号从0开始。每一个partition目录下的文件被平均切割成大小相等(默认一个文件是1G,可以手动去设置)的数据文件,每一个数据文件都被称为一个段(segment file),但每个段消息数量不一定相等,这种特性能够使得老的segment可以被...

2020-03-07 16:25:54 53

原创 Hive分区/分桶

分区表:创建分区表 ​ create table t_user_partition(id int, name string) partitioned by (country string) row format delimited fields terminated by ",";分区表数据导入hadoop fs -put 不能导入分区表的数据 load data ...

2020-02-19 11:32:57 19

原创 Flume 的 load-balance(负载均衡)、failover(容错)

负载均衡负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法。Load balancing Sink Processor 能够实现 load balance 功能,如下图Agent1 是一个路由节点,负责将 Channel 暂存的 Event 均衡到对应的多个 Sink组件上,而每个 Sink 组件分别连接到一个独立的 Agent 上,示例配置,如下所示:a1.sinkg...

2020-02-15 18:22:48 67

原创 Flume简单案例

采集目录到 HDFS**采集需求:**服务器的某特定目录下,会不断产生新的文件,每当有新文件出现,就需要把文件采集到 HDFS 中去根据需求,首先定义以下 3 大要素 采集源,即 source——监控文件目录 : spooldir 下沉目标,即 sink——HDFS 文件系统: hdfs sink source 和 sink 之间的传递通道——channel,可用 file cha...

2020-02-15 18:12:24 134

原创 Flume安装部署

上传安装包到数据源所在节点上然后解压 tar -zxvf apache-flume-1.6.0-bin.tar.gz然后进入 flume 的目录,修改 conf 下的 flume-env.sh,在里面配置 JAVA_HOME根据数据采集需求配置采集方案,描述在配置文件中(文件名可任意自定义指定采集方案配置文件,在相应的节点上启动 flume agent案例测试先在 flume 的...

2020-02-15 18:00:20 18

翻译 Flume概述

概述Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的软件。Flume 的核心是把数据从数据源(source)收集过来,再将收集到的数据送到指定的目的地(sink)。为了保证输送的过程一定成功,在送到目的地(sink)之前,会先缓存数据(channel),待数据真正到达目的地(sink)后,flume 在删除自己缓存的数据。Flume 支持定制...

2020-02-15 17:46:26 14

原创 MapReduce处理流程

MapReduce 的输入和输出MapReduce 框架运转在<key,value>键值对上,也就是说,框架把作业的输入看成是一组<key,value>键值对,同样也产生一组<key,value>键值对作为作业的输出,这两组键值对可能是不同的。一个 MapReduce 作业的输入和输出类型如下图所示:可以看出在整个标准的流程中,会有三组<key,val...

2020-02-15 17:27:48 62

原创 MapReduce之WordCount

(1)用户编写的程序分成三个部分:Mapper,Reducer,Driver(提交运行 mr 程序的客户端)(2)Mapper 的输入数据是 KV 对的形式(KV 的类型可自定义)(3)Mapper 的输出数据是 KV 对的形式(KV 的类型可自定义)(4)Mapper 中的业务逻辑写在 map()方法中(5)map()方法(maptask 进程)对每一个<K,V>调用一次(...

2020-02-14 22:15:38 30

原创 hdfs上传下载文件流程

HDFS 写数据流程1、 client 发起文件上传请求,通过 RPC 与 NameNode 建立通讯,NameNode检查目标文件是否已存在,父目录是否存在,返回是否可以上传;2、 client 请求第一个 block 该传输到哪些 DataNode 服务器上;3、 NameNode 根据配置文件中指定的备份数量及副本放置策略进行文件分配,返回可用的 DataNode 的地址,如:A,B...

2020-02-14 22:04:51 95

原创 Hadoop2.0配置文件介绍

Hadoop2.0配置文件介绍hadoop-env.sh文件中设置的是 Hadoop 运行时需要的环境变量。JAVA_HOME 是必须设置的,即使我们当前的系统中设置了 JAVA_HOME,它也是不认识的,因为 Hadoop 即使是在本机上执行,它也是把当前的执行环境当成远程服务器。core-site.xmlhadoop 的核心配置文件,有默认的配置项 core-default.xmlc...

2020-02-14 11:13:34 45

原创 关于zookeeper

Zookeeper数据模型采用树形层次结构,Zookeeper树上每个节点成为一个Znode,和文件系统的目录树一样,ZooKeeper 树中的每个节点可以拥有子节点。但也有不同之处:**Znode 兼具文件和目录两种特点。**既像文件一样维护着数据、元信息、ACL、时间戳等数据结构,又像目录一样可以作为路径标识的一部分,并可以具有子 Znode。用户对 Znode 具有增、删、改、查等操...

2020-02-13 10:34:25 59

空空如也

空空如也

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