笔记-离线阶段框架总结

1  zookeeper

        大数据领域里面一个分布式服务协调框架,主要是帮助其他的框架正常运行

1.1  节点类型

  • 永久节点:

       普通永久节点

       序列化永久节点

  • 临时节点:客户端一旦断开连接,节点消失

      普通临时节点

       序列化临时节点

1.2  watch机制

        类似于监听器

2  hadoop

2.1  hdfs:分布式文件存储系统

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

        fsimgae:一份比较完整的元数据信息

        edits:最近一段时间客户端的操作日志,操作次数达到100w次,还有时间限制1小时

  • datanode:数据存储,以block块为单位来进行存储,默认block128M
  • secondarynamenode:主要进行合并fsimage以及edist文件

2.1  读取数据的过程:必须掌握

第一步:客户端请求namenode上传文件

第二步:namenode校验客户端是否能够上传

第三步:客户端请求namenode第一个block块上传位置

第四步:namenode通过机架感知原理,找到离客户端最近的一个block块的位置,告诉给客户端

第五步:与datanode建立长连接pipeline管道,客户端以packet(64kb)的方式发送数据到datanode上面去

2.2  写入数据的过程:必须掌握

第一步:客户端请求namenode上传数据

第二步:namenode校验客户端是否有权限,文件是否存在,校验通过,直接告诉客户端允许上传

第三步:客户端请求namenode第一个文件block块地址

第四步:namenode寻找对应的block块地址返回给客户端

第五步:客户端直接与对应的datanode进行通信,将数据写入到datanode对应的block块里面去,数据以packet为单位进行传输,packet默认是64kb,datanode反向的进行数据校验

        写入过程遵循就近原则:

                心跳比较活跃

                磁盘比较空闲

       

2.3 MapReduce:

2.3.1  八个步骤:       

第一步:读取文件,解析成key,value对

第二步:自定义map逻辑,接收k1,v1转换成为k2,v2

第三步:分区,相同key的数据发送到同一个reduce里面去,key合并,value形成一个集合

第四步:排序,对数据key2进行排序

第五步:规约,combiner,调优步骤,可选项,比如求平均值不能使用

第六步:分组,key2合并,value形成一个集合

第七步:自定义reduce逻辑,接收k2,v2转换成新的k3,v3输出

 第八步:输出k3,v3进行保存         

2.4  yarn:资源调度管理平台

2.4.1资源调度方式:

  •  FIFO:先进先出
  •  fair scheduler:公平调度Apache版本使用
  • capacity  scheduler:容量调度器,cdh使用的调度方式
  • 自定义capacity scheduler:配置实现,不同用户提交不同的任务

3  hive

3.1  数据仓库基本概念

        数据仓库主要就是面向数据分析,将hive的元数据信息保存在MySQL里面

3.2  独立表模型:

外部表:external,外部表删除表的时候,不会删除hdfs的数据

内部表:删除表的时候,会删除hdfs的数据

分区表:一般与外部表或者内部表搭配使用,分文件夹 ,关键字:partition by

分桶表:一般与外部表或者内部表搭配使用,分文件,关键字:cluster by  into  xxx buckets

3.3  hive基本语法

group by

自定义函数

爆炸函数explode

例如lateral view 主要与分析函数(开窗函数)分组求topN

row_number  over

rank  over

dens_rank over(partition by  xxx order by xxx)

例:select * ,row_number() over(partition by s_id  order by score) from user;

3.4  数据存储格式、压缩、调优

3.4 1 数据存储格式:行式存储以及列式存储

        行式存储:textFile,sequenceFile

        列式存储:orc,parquet

        在ods层:使用textFile

        在dw层:使用orc存储格式,配合snappy压缩,数据压缩比6:1

        原始文件100GB,使用orc格式配合sanppy之后数据大概剩下100/6

3.5  hive调优:尽量多掌握几个

  • map端join
  • 合并小文件
  • 控制map个数以及reduce个数
  • 表的优化
  • 本地模式
  • 推测执行

4  flume-数据采集工具

4.1离线分析

        将数据保存到hdfs里面去,hdfsSink:文件滚动的时长,文件event数据量,文件大小

        文件夹滚动策略:多长时间在hdfs上面滚动生成一次文件夹

        问:flume怎么配置将数据发送到hdfs上面去(一般接近128M)

  • 多长时间发送一次数据到hdfs上面去

        hdfs.rollInterval

        hdfs.rollSize

        hdfs.rollSize

  • 多长时间在hdfs上面生成一个文件夹

        hdfs.round 

        hdfs.roundValue

        hdfs.roundUnit

4.2  实时处理

        将数据发送到kafka里面去

5  sqoop-数据导入导出工具

        重点:

  • 增量数据怎么解决,利用update_time
  • 减量数据怎么解决:做拉链表
  • 更新数据怎么解决:做拉链表

6  azkaban-任务调度工具

7  oozie-完全替代azkaban

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

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

10 kafka:消息队列

        作用:解耦,异步,并行,一般用于数据的统一的管理平台

11  软件框架之间的依赖关系

  • zookeeper依赖jdk
  • hadoop:ha模式:依赖zk
  • hive:依赖hadoop和MySQL
  • flume没有依赖
  • sqoop没有依赖
  • azkaban没有依赖
  • impala依赖hive,必须启动hive,Metastore服务
  • oozie依赖于hadoop
  • hue没有依赖,可以独立运行
  • redis依赖C程序,yum -y install gcc-c++
  • HBASE依赖于zookeeper和hadoop
  • elk没有依赖
  • kafka依赖zookeeper
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值