flume kafka hive spark flink笔记

目录

Flume 

一:flume是什么?

二:flume核心概念:

Kafka

一:kafka是什么?

二:为什么使用kafka?

三:如何保证消息不被重复?

四:如何保证消息不丢失?

五:如何保证消息的顺序性?

六:消息队列快写满怎么办?

七:kafka的ack机制:

HIVE

一:hive是什么?

二:hive的优势?

三:Hive(行转列 列转行)

四:hive的自定义函数?

五:内部表与外部表?

六:hive优化

七:hive存储格式:

八:小文件是如何产生的?

九:维度建模

十:hive的运行模式

impala

Spark

一:spark是什么?

二:spark的基本原理:

三:spark的运行模式:

四:spark集群角色:

五:spark作业运行流程:

Flume

一:flume是什么?

flume是一个可分布式,可靠。可高可用得日志收集,汇聚和传输得系统。适用于大部分得日常数据采集场景。


二:flume核心概念:

webserver-

  taildir source---采集组件和数据源对接,获取数据。他有断点续传功能和读取多目录文件的功能
                  (source和channel中间有一个put事务)
   Memory channel-- 读写速度快 
               (channel和sink中间有take事务)

      通过这两个事务,flume提高了数据传输的完整性和准确性
    kafka sink--能够将数据推送到kafka下消息队列。---hdfs

Kafka

一:kafka是什么?


 kafka是一个消息队列
topic  ---- 消息存放的目录即主题   producer 生产消息到topic的一方
consumer ---- 订阅topic消费消息的一方  broker  kafka的服务实例就是一个broker
Kafka中发布订阅的对象是topic。我们可以为每类数据创建一个topic,把向topic发布消息的客户端称作producer
从topic订阅消息的客户端称作consumer。Producers和consumers可以同时从多个topic读写数据
一个kafka集群由一个或多个broker服务器组成,它负责持久化和备份具体的kafka消息。


二:为什么使用kafka?


解耦--异步--削峰
引入消息队列后, 系统A产生的数据直接发送到消息队列中, 哪个系统需要系统A的数据就直接去消息队列中消费, 这样系统A就和其他系统彻底解耦了
引入消息队列后, 系统A将消息发送到消息队列中就可以直接返回, 接口总共耗时很短, 用户体验非常棒
在高并发场景下(比如秒杀活动)某一刻的并发量会非常高, 如果这些请求全部到达MySQL, 会导致MySQL崩溃,
 这时我们需要引入消息队列, 先将请求积压到消息队列中, 让MySQL正常处理.

Kafka是一个分布式的消息队列, 一个topic有多个partition, 每个partition分布在不同的节点上
Kafka还可以为partition配置副本机制, 一个主副本对外提供服务, 多个从副本提供冷备功能(即只起备份作用, 不提供读写).


三:如何保证消息不被重复?

 导致消息重复的原因:分区重平衡--消费者重启或宕机  都会导致消费者消费消息后没有提交offset
业务手段来解决, 比如我们在消费前先查询数据库, 判断是否已消费(status = 1), 或消费后在Redis中做个记录,
 下次消费前先从Redis中判断是否已消费.

四:如何保证消息不丢失?


导致消息丢失的原因:kafka没有保存消息  消费者还没消费就提交offset。然后消费者重启或宕机。
配置partition副本机制  关闭自动提交offset,改为手动提交
先消费,消费成功后在手动提交offset 

五:如何保证消息的顺序性?

 kafka只保证单个分区内的消息有序,所以保证消息的顺序性,只能一个topic。一个partition,一个consumer。

六:消息队列快写满怎么办?

 
原因:消费端出了问题,导致无法消费或消费极慢
紧急扩容---批量重导

七:kafka的ack机制:


针对生产者,我们的ack设置1,leader收到了,就回应生产者offset,
还可以设置0,这个很容易丢数据,设置-1的话,也可以,leader和follower都收到数据,才返回消息。

HIVE

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hadoop是一个开源的分布式计算框架,可用于处理大数据集并提供高可靠性,高可用性和高性能。要进行详细的安装部署,需要运行以下步骤: 1. 安装Java:Hadoop基于Java编写,因此需要安装适当的Java版本。 2. 安装Hadoop:以二进制文件的形式下载Hadoop,并将其解压缩到目标位置。编辑Hadoop配置文件,并设置必要的参数,例如本地文件系统和Hadoop所依赖的其他组件。 3. 部署HDFS:使用bin/hdfs script启动HDFS守护进程并格式化NameNode。配置HDFS,并在数据节点上创建数据目录。 4. 部署YARN:使用bin/yarn script启动YARN守护进程,并在ResourceManager节点上运行MR程序的ApplicationMaster服务。重新配置YARN,并设置资源管理器和节点管理器。 5. 安装Spark:以二进制文件的形式下载Spark,并将其解压缩到目标位置。编辑Spark配置文件,并设置必要的参数,例如运行模式,内存设置和调试选项。 6. 安装Hive:以二进制文件的形式下载Hive,并按照说明进行安装。配置Hive,并设置Metastore和HiveServer2。 7. 安装HBase:以二进制文件的形式下载HBase,并按照说明进行安装。配置HBase,并设置区域服务器和HBase主服务器。 8. 安装Oozie:以二进制文件的形式下载Oozie,并按照说明进行安装。编辑Oozie配置文件,并设置必要的参数,例如数据库连接,属性和内存设置。 9. 安装Kafka:以二进制文件的形式下载Kafka,并按照说明进行安装。配置Kafka,并设置必要的参数,例如Zookeeper连接,日志存储位置和日志大小限制。 10. 安装Flume:以二进制文件的形式下载Flume,并按照说明进行安装。配置Flume,并设置必要的参数,例如Flume代理,事件类型和目标。 11. 安装Flink:以二进制文件的形式下载Flink,并按照说明进行安装。配置Flink,并设置必要的参数,例如集群模式,任务管理器,计算管道和作业提交方式。 12. 安装ES:以二进制文件的形式下载Elasticsearch,并按照说明进行安装。配置Elasticsearch,并设置必要的参数,例如节点类型,索引设置和查询配置。 13. 安装Redash:以二进制文件的形式下载Redash,并按照说明进行安装。配置Redash并设置必要的参数,例如数据库连接,权限和查询模式。 以上提到的大数据技术是开源的,所以可以在官网上找到相关二进制文件和详细的安装部署指南。也可以使用一些自动化的部署工具,如Puppet和Ansible来简化整个过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值