首页 > 编程知识 正文

大数据处理框架,大数据整合的整体框架

时间:2023-05-05 12:20:53 阅读:165608 作者:157

大数据框架总结了zookeeperhadoophiveflumesqoopazkabanoozieimpalahueredishbasenosql数据库ELKkafka软件框架之间的依赖关系

zookeeper

大数据领域的分布式服务协调框架主要支持其他框架的正常运行

永久节点:

正常永久节点

序列化持久性节点

临时节点—当客户端断开连接时,节点将消失

普通临时节点

序列化临时节点

watch机制:类似于侦听器

hadoop hdfs

分布式文件存储系统

namenode :主节点主要用于管理元数据信息

fsimage :相对完整的元数据信息。

edits :在最近一段时间内,客户端操作日志的操作次数达到了100W,而且还有一个小时的限制

datanode :以块为单位存储的数据存储,默认块128m

secondaryNameNode :主要合并fsimage和edist文件

snn需要复制和备份fsimage和edits文件,snn也是元数据的冷备份

snn合并流程:我知道

作业历史:查看历史作业进程

读取数据过程

客户端开始文件的读取请求,NameNode检查元数据(有无读取权限、文件存在),返回是否可以读取。 如果是可读的,NameNode将根据需要返回部分或所有文件的块列表(多线程)。 对于每个块,NameNode返回包含该块副本的DataNode地址。 返回的DN根据网络拓扑图中的距离进行排序,距离客户机越近,返回的DN地址越靠前。 心跳机制超时时报告的DN状态为STALE,这样的列在后面。 客户端选择高位数据节点以读取块。 如果客户端本身是DataNode,则直接从本地获取数据(短读特性); 如果读取过程中断,客户端将需要重新请求DN读取block。 所有块传输完成后,在客户端连接到完整的文件。

客户端制作ABC机器和pipeline。

client开始以packet为单位(默认64K )向a上传第一个block,a收到packet后传递给b,b在每次传递给c的packet时进入响应队列并等待响应。

使用ack机制来确定一个块是否成功上载,在一个块的传输完成后,客户端将让NameNode将第二个块上载到服务器,直到所有块都上载写入数据过程:背诵

客户端开始请求上载文件,NameNode检查元数据(目标文件是否已经存在,父目录是否存在),并返回是否可以上载。

如果可以上载,客户端将请求上载第一个块。

NameNode根据配置文件中指定的备份数量和机架识别原理分配文件,并返回可用的DataNode地址,如a、b和c。

如果拷贝数为3,NN将寻找三台机器。 第一台:离客户端最近的机器。 第二台:最近机器同一路由器下的机器。 第三台:在不同的路由器下找机器。 客户端制作ABC机器和pipeline。

client开始以packet为单位(默认64K )向a上传第一个block,a收到packet后传递给b,b在每次传递给c的packet时进入响应队列并等待响应。

使用ack机制来确定一个块是否成功上载,在一个块的传输完成后,客户端将让NameNode将第二个块上载到服务器,直到所有块都上载

mapreduce:

三个key,value对

八个步骤

步骤1 (读入文件,解析为key。 value对k1 v1 LongWritable Text步骤2 )定制映射器逻辑,接收k1 v1并转换为k2 v2 Text IntWritable (步骤3 )将分区为同一个密钥的数据发送到同一个读操作key合并,value形成一个集合第四步:排序数据key2第五步:约定combiner调整步骤选项可以求平均值不能使用约定第六步:将key2分组value形成集合的第7步骤:定制reduce逻辑,经过k2 v2转换后生成新的k3 v3输出文本写入第8步骤:输出

资源调度方法: 3个

FIFO :先进先出无人使用

使用fair scheduler公平调度apache版本

capacity scheduler容量调度器cdh使用的调度方案

通过定制capacity scheduler配置,不同的用户可以将任务发送到不同的队列以隔离资源

实现多租户、资源隔离

hive

数据仓库基本概念:数据仓库主要就是面向数据分析
将hive的元数据信息保存在mysql里面了

独立表模型
外部表:external 外部表删除表的时候,不会删除hdfs的数据
内部表:删除表的时候,会删除hdfs的数据

分区表:一般与外部表或者内部表搭配使用 分文件夹 partition by
分桶表:一般与外部表或者内部表搭配使用 分文件 cluster by into xxx buckets

hive基本语法 group by
自定义函数
爆炸函数 explode 将数组给炸开
lateral view UDTF 函数 主要与爆炸函数配合使用

分析函数 都是用于分组求topN row_number over rank over dens_rank over (partition by order by )

每个,每月,各个 都是需要进行分组 group by

每月最大的前五个值:分析函数
select
*,row_number() over(partition by s_id order by score )
from user;

多使用子查询
select from (
) temp

数据存储格式,压缩,调优
数据存储格式:行式存储以及列式存储
行式存储:textFile,sequenceFile
列式存储:orc,parquet

在ods层:使用textFile
在dw层:使用orc存储格式 配合snappy压缩 数据压缩比 6 :1
原始文件100GB 使用orc格式配合snappy之后数据大概剩下 100/6

hive调优:尽量多背几个
map端join
合并小文件
控制map个数以及reduce个数
表的优化
本地模式
推测执行

flume

flume:数据采集工具 离线分析:
将数据保存到hdfs上面去:hdfsSink 文件滚动的时长,文件event数据量,文件大小
文件夹滚动策略:多长时间在hdfs上面滚动生成一次文件夹
多长时间发送一次数据到hdfs上面去,采集一次数据都是一般接近128M
hdfs.rollInterval 30 Number of seconds to wait before rolling current file (0 = never roll based on time interval)
hdfs.rollSize 1024 File size to trigger roll, in bytes (0: never roll based on file size)
hdfs.rollCount 10 Number of events written to file before it rolled (0 = never roll based on number of events)

多长时间在hdfs上面生成一个文件夹hdfs.roundfalseShould the timestamp be rounded down (if true, affects all time based escape sequences except %t)hdfs.roundValue1Rounded down to the highest multiple of this (in the unit configured using hdfs.roundUnit), less than current time.hdfs.roundUnitsecondThe unit of the round down value - second, minute or hour.flume多长时间采集一次:多长时间怎么配置将数据发送一次到hdfs上面去实时处理:将数据发送到kafka里面去 sqoop

sqoop:数据的导入导出工具
增量数据怎么解决
减量数据怎么解决:做拉链表
更新数据怎么解决:做拉链表
启动了多少个mapTask -m 每条数据库数据量大概有多大

azkaban

azkaban: 任务调度工具 自己会使用就行

oozie

oozie: 完全替代azkaban

impala

impala: 完全替代hive 比较消耗内存,官方建议内存128GB起步

hue

hue:管理工具,主要与其他的各种框架进行整合

redis

redis:内存数据库 存取速度都比较快
string
hash
list
set
zset
运行模式
单机版
主从模式
哨兵模式
redis集群

hbase nosql数据库

大数据领域里面一个分布式的nosql 数据库
rowkey
列族

时间戳
多版本
一张hbase表,有多个region
一个region两部分组成:一个HLog + 多个store模块
一个store模块:一个memoryStore + 多个StoreFile

flush:数据从memoryStore到storeFile
compact:数据从storeFile到HFile
split:大的HFile达到10GB的时候,就会进行分裂,region也会一分为二
hbase的数据读写流程:元数据记录表 hbase:meta表
多版本特性:一个cell里面可以存放多个值
TTL过期时间
namespace:命名空间

使用hbase存储微博数据

ELK

ELK:elasticse 全文检索框架,也是类似于一个数据库
index
type
document
field
shard
replicat
mappings
settings

kafka

kafka:消息队列 用于实时处理场景
作用:解耦,异步,并行
一般用于数据的统一的管理平台
核心 概念
producer
topic
consumer
partition
segment
.log
.index

软件框架之间依赖关系

1、zookeepper没有任何依赖 依赖jdk
2、hadoop
ha模式:依赖zk
3、hive 依赖hadoop 和 mysql
4、flume 没有依赖
5、sqoop没有依赖
6、azkaban没有依赖
7、impala 依赖hive 必须启动hive metastore服务
8、oozie 依赖于hadoop
9、hue 没有依赖

10、redis 依赖C程序 yum -y install gcc-c++
11、hbase 依赖于zookeeper以及hadoop
12、ELK 没有依赖
13、kakfa 依赖zookeeper

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。