大数据组件综合笔记(一)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: Hadoop:Hadoop是一个分布式存储和计算框架,具有高可靠, 高扩展, 高容错的特点(数据副本和集群);由底层HDFS分布式文件系统负责存储,和MapReduce负责分布式计算,以及后续增加的yarn负责资源协调管理。

大数据组件概念介绍


集群:多个人做同样的事

分布式:多个人协作,干不同的事情。

Hadoop:Hadoop是一个分布式存储和计算框架,具有高可靠, 高扩展, 高容错的特点(数据副本和集群);由底层HDFS分布式文件系统负责存储,和MapReduce负责分布式计算,以及后续增加的yarn负责资源协调管理。

Yarn:yarn是hadoop2.0为了分离资源管理和计算组件而引入的,yarn的诞生源于存储在HDFS的数据需要更多的交互模式,能提供更多的处理框架,而不单单是MR模式。

ZooKeeper:是一个分布式的,开放源码的,用于分布式应用程序的协调服务(service),基于观察者模式,接受观察者的注册,然后监听数据变化。

Hive:是由FaceBook开源的一个数据仓库工具,主要用于解决海量结构化日志的数据统计,可以将结构化的数据文件映射成一张表,并提供类似于SQL的查询方式来统计分析海量数据(主要离线分析),本质上是将HSQL转化成MapReduce程序。


大数据环境搭建


1.介绍一下集群搭建的过程?

下载hadoop 2.X,下载JDK1.8,安装CentOS7镜像,这里我自己是用VM虚拟机的环境来搭建三台集群。

安装Linux系统并停掉防火墙,禁止SeLinux,配置时间同步定时刷新集群系统时间

通过VM直接克隆出另外两台机器,配置IP地址,确保三台机器相互之间能ping通,能联网。

然后增加专门用于hadoop的hadoop用户,为root用户和hadoop都配置ssh免秘钥登录:

首先修改/etc/hosts文件,每台机器都生成公钥秘钥,并把公钥拷贝到彼此之间的机器上

然后集群机器互相验证免秘钥登录

接着添加本地的公钥文件到自己的认证文件authorized_keys中,否则后续格式化hadoop可能报错。

最后每台机器都安装hadoop和JDK,并添加对应环境变量,然后配置hadoop的四大核心配置文件(core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml)

取某一台机器做namenode节点进行格式化hadoop,接着启动hadoop验证集群是否搭建成功。

简述的过程是:

安装CentOS7虚拟机 --> 配置IP、hosts文件和时间同步 --> 设置免秘钥登录 --> 安装hadoop --> 格式化hadoop --> 启动hadoop和运行mr程序。

2.说一两个搭建过程遇到的坑?

hdfs namenode -format 格式化的时候失败过,一开始是ssh免秘钥登录的问题,后面又是yarn-site.xml配置文件的格式问题,最好从其它地方粘贴的配置代码先用工具格式化一下,并检查里面是否有中文符号。

另一个坑是虚拟机联网问题,我这里是用自定义网络然后选的vm-ware8,集群的IP一定要在同一网段,并且网关要和物理机上vm-ware8的IP地址相关联。


HDFS


1.请介绍一下HDFS?

Hadoop由三部分组成:HDFS、分布式计算MapReduce和资源调度引擎Yarn。

HDFS 是一个分布式文件系统,负责文件存储。它的文件系统和平时看到的Linux很像,有目录结构,顶层目录是/,存放着文件,以及可以对文件进行增删,修改,移动等功能,不同的是它具有分布式的特点,hdfs的文件系统可以横跨多个机器,文件可能是存储在不同机器上的,但用户在使用时会被当作是存储在一台机器上。HDFS具有高可用、容错率高、可扩展的特点。在HDFS中有一个核心概念-block块。

HDFS上的文件,是按照128M为单位,切分成一个个block的,分散的存储在集群的不同数据节点上。128M是指上限,实际可能block文件的大小不到128M。

而为了保证数据的可用及容错,每一个block都可以设置副本数,默认是3,在集群搭建中,在hdfs-site.xml文件就可以设置默认副本数。每一个block的副本并不会存放在同一个服务器上面,而是分开存储在不同服务器,假如第一个block块暂时奔溃了,HDFS的主节点就会为了维持设置的block副本数,会重新在其它服务器上创建一模一样的block1。

HDFS的体系架构是典型的主从架构Master/Slave,有客户端和服务端,客服端通过NameNode主节点来访问存放在各个DataNode上的文件信息,NameNode负责管理每个子节点,同时还有secondaryNameNode做备份主节点。

在NameNode管理每个DataNode过程中,有心跳机制能让namenade周期性地从集群中的每个datanode接受心跳信号和块状态报告,以便得知各集群节点是否正常运行,同时在hadoop集群刚启动时也会用到心跳机制,此时会先进入一个安全模式,等心跳确认99.9%的节点都正常后才进行正常工作,允许外界写入文件到HDFS。

HDFS有一个重要特性,那就是高可用,实现高可用最关键的是消除单点故障,会用到刚才体系架构中提到的SecondaryNamenode,概括来说就是当处于active状态的Namenode节点出问题后,他们之间有zookeeperFC会通知另一个暂时处于Standby状态的SecondaryNamenode准备替换工作,zookeeperFC是用来协调监控NameNode的,通知后原来的NameNode变成Standby状态,而SecondaryNamenode进行运行工作。

HDFS的联邦对应于HDFS的可拓展的特点,可以解决内存受限的问题,提高吞吐量和隔离不同类型的应用,但一般集群规模达到几千台的情况下才可能用到联邦(联邦,即支持多个NameNode主节点,每个Namenode分管一部分的元数据目录,并共享所有datanode存储资源)。

至此HDFS概括性介绍完毕,对于HDFS的读写流程请翻看其它回答。

2.HDFS的机制是指什么,它有什么作用?

HDFS的机制是指它的心跳机制,我们知道HDFS是典型的Master/Slave主从架构,由一个Namenode管理多个Datanode过程中HDFS会用到它的心跳机制,其工作原理如下:

1.首先master启动的时候,会开一个icp server;

2.接着各个slave从节点启动时,连接上master,并且每隔3秒就向master发送一个icp server的”心跳“,携带状态信息;

3.然后master通过这个心跳的返回值,得知从节点的状态,并向从节点传达命令。

心跳机制的作用有三点:

(1)Namenode通过心跳机制全权管理数据,它周期性地从集群中的每个namenode接受心跳信号和块状态报告,有心跳意味着从节点工作正常,块状态报告中也会有该datanode上所有数据的列表。

(2)Datanode启动后向Namenode注册,并通过心跳上报数据块列表,3秒发送一次心跳,返回并执行Namenodede命令,如果10分钟都没有发送,代表这个Datanode出问题不可用。

(3)hadoop集群刚启动时会进入一个安全模式,这个安全模式也会用到心跳机制,只有Namenode得到99.9%datanode的反馈后安全模式才会解除。

3.请简述下HDFS文件的读写流程


HDFS读流程


在获取文件名称后,运行在JVM虚拟机上的HDFS客户端,通过文件系统调用Namenode上的RPC方法(远程调用),让Namenode返回给客户端关于块的位置信息

客户端获得位置信息后,就通过FSDataInputStream找到不同DataNode节点建立连接并读取数据

数据源源不断的写入客户端,假设第一个block读取完成,就关闭指向该DataNode的连接,接着读下一个,以此类推。

在读取数据过程中,存储在datanode的block本身有一个crc32位的校验码,当读取给客户端时会重新生成一个crc校验码,并对比前后两次校验码,相等说明读取的跟存入的是同一个文件。


HDFS写流程


客户端要向HDFS写数据,首先要跟namenode通信以确认可以写文件并获得接收文件block的datanode,然后,客户端按顺序将文件逐个block传递给相应datanode,并由接收到block的datanode负责向其他datanode复制block的副本。

在写入数据的过程中,底层会有一个data queue队列和ack queue队列,写入数据时,block块是按一个一个字节来将数据写入到一个名为chunk的小块(chunk中包含4byte的校验值),写满chunk后再放到一个package中,后续每个package要加入到data queue队列。

data queue中的package会逐步被发送到对应的datanode及其副本,同时还会复制一份写到ack queue队列中。待package写入完成后会重新生成校验值,这时拿新的校验值和ack queue中的package的校验值一一比对,如果比对成功,ack queue就删除对应package,如果比对不成功那么ack就把package发送回data queue再传输写入一次。

4.HDFS存储大量的小文件会发生什么问题?

首先Namenode存储着文件系统的元数据,元数据记录了文件、块、目录,大约占150字节大小。如果hdfs的小文件过多,那么会占用元数据中记录文件的内存,给Namenode造成压力,影响hadoop存储和访问的效率。

通常可以通过两种方法处理:

HAR文件方案:启动mr程序,通过hadoop archive命令将小文件压缩成一个har文件,适用于文件归档。

Sequence Files方案:还不太会用,暂不说明。

5.block块为什么设置比较大?是不是越大越好?

block的大小是由磁盘传输速度决定的,比如磁盘传输速度是200MB/S,那么block一般设定256MB。

如果block太大,那么从磁盘传输数据的时间会明显变慢,另一方面,mapreduce中的map任务一般一次处理一个block块,如果块过大,mr的处理速度也会变慢。

如果block太小,那么就会跟hdfs存储大量小文件的问题一样,会给namenode造成内存的压力。


MapReduce分布式计算


1.MapReduce的shuffle过程是怎么样的?

MapReduce的shuffle过程实际上包含在map阶段和reduce阶段,也就是Map Shuffle和Reduce Shuffle;

Map Shuffle的过程是对map的结果进行分区排序,然后按照同一分区的输出合并在一起写入到磁盘中,最终得到一个分区有序的文件。大致流程是:

从map task输出的kv对数据会先写入到一个环形缓冲区,大小为100MB,但写满80%时就会溢出写入到磁盘文件;

在写入到磁盘文件的过程中,会对kv对进行HashPartition分区和排序,HashPartition是mr程序默认的分区方法,它会对kv对的key求hash值,然后对reduce的个数求模运算,最后得到的分区号作为分配给不同reduce的根据,分区后具有相同分区号的键值对存储在一起,每个分区里面的键值对又按key值进行排序。

接下来会判断是否需要combine压缩具有同一键的键值对数据

然后作为map输出准备传输给reduce

Reduce Shuffle过程中,是从reduce端通过网络传输向磁盘获取map输出开始,中间reduce shuffle也会把键相同的键值对数据放到一起,然后排序合并,最终形成一个整体有序的数据块,但这个过程是一直到调用reduce方法之前,也就是reduce shuffle并不包括调用reduce方法、

2.Combiner的作用

Combiner为了避免map task和reduce task之间的数据传输压力而设置的,它允许用户针对map task的输出指定一个合并函数,这个函数可以压缩具有同一key值的键值对,从而减少传输到reduce的数据量,减少网络带宽和reduce的负载。

但实际上combiner是作为可选项,有没有设置或者设置多少次都不会影响最终结果,在shuffle过程中会判断是否设置而进行压缩。

3.如何诊断是否有数据倾斜存在并处理?

数据倾斜有两种原因:(1)某一个key对应的键值对数量要远远大于其它键的键值对数量;(2)部分数据记录的大小远超过平均值。

可以在MR程序的reduce方法中追踪每个键的最大值,并且设置阈值,当超过该阈值时就可以认为发生了数据倾斜,可以输出到日志文件进行分析。

第二种是很对编写MR程序时,从业务层面去考虑自定义的分区键是否合理。就跟ADS库建表时可以默认指定哪个字段作为分区键。

MR程序中改用TotalOrderPartitioner替换HashPartitioner,它可以通过对原始数据进行抽样得到的结果集来预设分区边界值,也就是能找出导致数据倾斜的key值,再分散处理。


MR程序中使用Combiner


4.简述一下MapReduce的过程

MapReduce是采用一种分而治之的思想设计出来的分布式计算框架,它由两个阶段组成:map阶段和reduce阶段。

在map阶段中:

首先读取HDFS中的文件,每个文件都以一个个block形式存在,block中的数据会被解析成多个kv对,然后调用map task的map方法;

map方法对接收到的kv对进行分片处理,转换输出成新的kv对;

然后对kv对进行分区和排序压缩,中间会涉及到map的shuffle过程,最后存入本地磁盘,供后续reduce task作为输入参数使用。

在reduce阶段中:

reduce方法将多个map task的输出,按照不同的分区传输到不同的reduce 上进行合并排序,这中间也涉及到reduce的shuffle过程(shuffle就像洗扑克牌一样)

然后reduce方法对输入的键值对汇总计算,输出计算结果

最后把reduce的输出保存在HDFS文件中。


Yarn资源调度框架



1.介绍下Yarn的框架?(重要)

Yarn的框架也是经典的主从结构,和HDFS的一样,大体上yarn由一个ResourceManager和多个NodeManager构成,RM为主节点,NM为从节点。

ResourceManager是一个全局的资源管理器,负责整个系统的资源调度管理和分配,包括处理客户端请求、启动并监控ApplicationMaster,监控NodeManager,以及分配和调度资源。

在ResourceManager中由两个组件构成: Schedule调度器和ApplicationManager应用程序管理器

Schedule调度器会根据容量、队列等限制条件,对应用程序的资源需求进行资源分配。(调度器有三种:先进先出调度器,容量调度器和均分调度器)

ApplicationManager则主要负责管理整个系统中所有应用程序,接受job请求,为应用分配一个Container来运行ApplicationMaster并管理,它和ApplicationMaster的区别是Master运行在NodeManger上的,而ApplicationManager是ResourceManager内部的一个组件。

ApplicationMaster负责管理yarn内运行的应用程序的每个实例,负责协调来自ResourceManager的资源,并通过NodeManager监控容器的执行和资源使用情况。

NodeManager在集群上有多个,它负责每个节点上的资源使用,处理ApplicationManager的请求,以及负责接受ResourceManager的资源分配命令,分配具体的Container给应用,同时还将Container的使用情况报告给ResourceManager。

这里的Container实际上是一个资源抽象概念,代表系统上分配的资源,包括内存、磁盘、IO等。

具体过程如下:

当客户端应用程序向ResourceManager提交应用需要的资源请求后,ResourceManager中的ApplicationManager接受到请求,并返回一个Container给NodeManger,告诉NodeManager启动一个ApplicationMaster实例。

ApplicationMaster启动后向ResourceManager注册,此时客户端可以和ApplicationMaster直接交互,并告诉它需要的资源请求;后续ApplicationMaster继续发送资源请求给ResourceManager,待ResourceManager的Schedule处理后返回具体的Container信息,ApplicationMaster接收到资源信息后会分配给各个NodeManager来启动运行job任务(比如mr程序,内部是多个map task、reduce task)。

在运行过程中,客户端和ApplicationMaster保持交互,可以得知程序的运行情况。ApplicationMaster此时主要监控和管理任务运行,而NodeManager会定时向ResourceManager汇报自身的运行状况和Container的使用信息,待程序运行完毕后,ApplicationMaster关闭,并向ResourceManager归还所有Container。

概括来说其过程如下:

应用程序提交 --> 申请资源 --> 启动ApplicationMaster --> 申请运行任务的Container --> 分

发Container --> 运行task任务 --> task任务结束 --> 回收Container。

另外还有JobHistoryServer(作业历史服务,记录在yarn中调度的作业历史运行情况) 和 Timeline Server(写日志数据),需要手动开启。

2.Yarn的动态性是指什么?

是指多个应用程序的ApplicationMaster动态地和ResourceManager进行沟通,不断地申请资源,释放,再申请,再释放资源的过程。

3.Yarn的调度器有哪三种?他们的区别是什么?(重要)

yarn中有三种调度器选择:FIFO Scheduler(先进先出调度器),Capacity Scheduler(容量调度器),Fair Scheduler(均分调度器)


三种调度器区别


hadoop1.x使用的默认调度器就是FIFO。FIFO采用队列方式将一个一个job任务按照时间先后顺序进行服务,比较好理解,哪个任务先进来就先完成它,在继续下一个任务。

hadoop2.x使用的默认调度器是Capacity Scheduler。Capacity Schedule调度器以队列为单位划分资源,队列有独立的资源,队列的结构和资源是可以进行配置的。

Fair Scheduler调度器会为所有job任务动态调整系统资源,且是平均分配的形式,让任务公平的共享集群资源

Zookeeper分布式协调框架

1.请简单介绍下Zookeeper?(重要)

ZooKeeper是一个分布式的,开放源码的,用于分布式应用程序的协调服务。

Zookeeper有攘其外,安其内的特点,也就只指它内部和谐统一,外部一致对外。

攘其外是指Zookeeper服务端有两种模式:单机的独立模式和集群的仲裁模式,所谓仲裁是指一切事件只要满足多数派同意就执行,不需要等到集群中的每个节点反馈才执行。Zookeeper本身也是服从主从架构的,在仲裁模式下会有一个主要的节点作为Leader(领导者),而其余集群中的节点作为Follower(公民),对某一事件是否执行,leader都会先征询各个follower的反馈信息再做决定,如果多数派同意,leader就将命令下发到所有的follower去执行。

安其内是指Zookeeper的leader选举,leader的选举会发生在集群启动时和运行中leader挂了,概括选举过程也是少数服从多数选出新leader。

在Zookeeper中的数据结构也是个重要概念,因为Zookeeper所提供的服务主要是通过它以下三部分组成:

Zookeeper = Znode(数据节点,也是简约版文件系统)+ 原语(可以理解成Zookeeper的命令) + Watcher(通知机制,类似监听器)

Znode可以分为持久节点和临时节点,在用Zookeeper的命令create创建文件时默认时一个持久节点,而临时节点是会随着会话关闭而删除。另外也可以创建为有序节点,在创建时追加一个自增数字的标识。

Watcher通知机制类似于监听器的过程,即有注册 + 监听事件+ 回调函数,客户端在znode上注册一个Watcher监视器,当znode上数据出现变化,watcher监测到此变化就会通知客户端。在HDFS的HA高可用上也用到了Zookeeper的这种机制。

2.Zookeeper的工作原理?

3.Zookeeper读写流程:

在Client向Follwer发出一个读写的请求

Follwer把请求发送给Leader,Leader接收到以后开始发起投票并通知每个Follwer进行投票

Follwer把投票结果发送给Leader

Leader将结果汇总后如果需要读取或写入,则开始执行同时把读写操作通知给Follwer,然后commit

Follower执行并把请求结果返回给Client

4.加入Zookeeper中某个Follower出故障了怎么办?(重要)

这会启动Zookeeper的状态同步过程。具体来说如下:

在完成leader选举后,各Follower和leader进行连接通信,并在每一次事务执行时,Follower都会把自己的最大事务ID发送给leader,当某个Follower出故障后,leader就根据原先该Follower发送的zxid确定同步点,向它同步记录最大zxid之后的内容。

当完成同步后,会通知Follower已成为为update状态,Follower受到update消息后,就可以重新接受客户端的请求继续工作。


Hive


1.概括性地介绍一下Hive及其用法?(重要)

Hive主要解决海量结构化日志的数据统计分析,它是hadoop上的一种数据仓库工具,可以将结构化的数据文件映射成一张表,并提供类似于SQL的查询方式,本质上来说是将Hive转化成MR程序。

Hive与其它数据库的区别:

Hive数据是存储在HDFS,本质上是转换成mr程序执行,因此查询效率比较慢,涉及mr程序的资源调度和任务计算;HDFS的数据操作是支持覆盖追加,它不支持update和事务;扩展性好,可以在多个集群上做应用开发;Hive的读时速度快,因为在加载数据时并不会做数据校验,在读取数据时才会校验数据;处理数据规模大,适合于海量数据查询。


Hive的优缺点:

优点:操作接口采用类SQL语法;不用写MR程序来计算;支持用户自定义函数

缺点:不支持update和事务;查询延时严重。

Hive的架构原理

Hive首先是一个客户端工具,它提供了一些用户可操作的接口,可以通过交互shell,JDBC和web UI方式连接Hive,在Hive的内部有个Driver驱动器,驱动器里面实现了解析器,编译器,优化器和执行器的功能,在用Hsql查询表时,sql语句在驱动器中会先做语法和语义解析,解析之后再进行相应的语法编译,然后在通过优化器时产生逻辑计划和物理计划,并进行优化,最后在执行器中转换成对应的mr jar包,打包给hadoop集群运行获得结果.

其中,在用SQL查询语句之前,Hive会将存放在hdfs的数据和对应的表建立映射关系,而记录这些映射信息和表结构信息的元数据,会存放在Hive指定的数据库中,比如mysql或者它自身warehourse目录下。

大体流程如下:

用户接口(shell、JDBC、Web UI) --> Driver(解析、编译、优化、执行)–> MR程序 --> hadoop集群

Hive的交互方式有三种:Hive交互Shell,Hive JDBC服务和Hive的命令

Hive交互Shell:直接输入在hive中/bin目录下的hive命令,进行sql查询

JDBC服务:

启动hiveServer2服务:bin/hive --service hiveserver2

然后 beeline命令连接hiveserver2:

bin/beeline

beeline> !connect jdbc:hive2://node1:10000

Hive命令:在hive命令后面加 -e 选项后,接sql查询语句即可。

bin/hive -e "show databases;"

Hive的数据类型和mysql的类似,常用的int、bigint、double、string、date、boolean,还有smallint、tinyint、float、varchar、timestamp,另外还有三种复合数据类型:array(数组),map(键值对),struct(一组命名的字段),复合类型在建表时需要特别指定。


Hive的建表操作

Hive的表可以分为外部表和内部表,外部表创建时需要执行EXTERNAL关键字,它仅记录数据所在的存储路径,删除数据时外部表只是删除表的元数据,在重新建表后能直接关联上原来的数据,通常用作底层表;而内部表不需要指定EXTERNAL关键字,在删除数据后会把表的元数据和真实数据一起删除,通常用作中间表。

建表时建议指定分区,partitioned by,分区是把表的数据分目录存储在不同文件夹中,后期查询时可以避免全量扫描提升查询效率,可以指定一级分区,二级分区等;分区有动态和静态之分,在插入数据时可以给定具体的分区值做静态分区的方式插入,也可以只写明分区键做动态分区的方式插入,动态分区的方式会根据插入数据的值自动划分分区,但可能产生较多的小文件,浪费系统内存和IO。

还可以指定分桶,Clustered by,分桶类似于将文件切分,它是将整个数据内容按照分桶键的值做hash算法,得出的结果再和分桶数做模运算来进行切分,指定了分桶表之后,后续select查询条件要加tablesample(bucket x out of y),适用于需要抽样调查的情况。

最后建表时可以指定每一行中字段的分隔符,用”row format delimited fields terminated by“指定;可以指定文件存储类型,stored as 二进制文件,文本文件、或列式存储文件。以及指定表在hdfs上的存储位置location。


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
2月前
|
存储 分布式计算 API
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
109 0
|
1月前
|
SQL 数据采集 分布式计算
【赵渝强老师】基于大数据组件的平台架构
本文介绍了大数据平台的总体架构及各层的功能。大数据平台架构分为五层:数据源层、数据采集层、大数据平台层、数据仓库层和应用层。其中,大数据平台层为核心,负责数据的存储和计算,支持离线和实时数据处理。数据仓库层则基于大数据平台构建数据模型,应用层则利用这些模型实现具体的应用场景。文中还提供了Lambda和Kappa架构的视频讲解。
198 3
【赵渝强老师】基于大数据组件的平台架构
|
2月前
|
SQL 存储 分布式计算
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
46 9
|
1月前
|
SQL 分布式计算 大数据
【赵渝强老师】大数据生态圈中的组件
本文介绍了大数据体系架构中的主要组件,包括Hadoop、Spark和Flink生态圈中的数据存储、计算和分析组件。数据存储组件包括HDFS、HBase、Hive和Kafka;计算组件包括MapReduce、Spark Core、Flink DataSet、Spark Streaming和Flink DataStream;分析组件包括Hive、Spark SQL和Flink SQL。文中还提供了相关组件的详细介绍和视频讲解。
|
2月前
|
大数据 网络安全 数据安全/隐私保护
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(二)
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(二)
153 5
|
2月前
|
XML 大数据 网络安全
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(一)
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(一)
78 4
|
2月前
|
消息中间件 监控 Java
大数据-109 Flink 体系结构 运行架构 ResourceManager JobManager 组件关系与原理剖析
大数据-109 Flink 体系结构 运行架构 ResourceManager JobManager 组件关系与原理剖析
83 1
|
3月前
|
存储 分布式计算 资源调度
两万字长文向你解密大数据组件 Hadoop
两万字长文向你解密大数据组件 Hadoop
155 11
|
4月前
|
前端开发 大数据 数据库
🔥大数据洪流下的决战:JSF 表格组件如何做到毫秒级响应?揭秘背后的性能魔法!💪
【8月更文挑战第31天】在 Web 应用中,表格组件常用于展示和操作数据,但在大数据量下性能会成瓶颈。本文介绍在 JavaServer Faces(JSF)中优化表格组件的方法,包括数据处理、分页及懒加载等技术。通过后端分页或懒加载按需加载数据,减少不必要的数据加载和优化数据库查询,并利用缓存机制减少数据库访问次数,从而提高表格组件的响应速度和整体性能。掌握这些最佳实践对开发高性能 JSF 应用至关重要。
78 0
|
6月前
|
存储 分布式计算 大数据
Hadoop 生态圈中的组件如何协同工作来实现大数据处理的全流程
Hadoop 生态圈中的组件如何协同工作来实现大数据处理的全流程