03 2022 档案
摘要:1、Kafka Broker 工作流程 1.1、Zookeeper 存储的 Kafka 信息 [hui@hadoop103 zookeeper-3.4.10]$ bin/zkCli.sh [zk: localhost:2181(CONNECTED) 0] ls / [zookeeper, spark
阅读全文
摘要:1、提高吞吐量 想要提高生产者的吞吐量可以通过调整一下4个参数来实现 batch.size:批次大小,默认16k linger.ms:等待时间,修改为5-100ms compression.type:压缩snappy RecordAccumulator:缓冲区大小,修改为64m 代码实现 publi
阅读全文
摘要:1、生产者消息发送流程 1.1、发送原理 在消息发送的过程中,涉及到了两个线程——main线程和Sender线程。在main线程中创建了一个双端队列RecordAccumulator。main线程将消息发送给RecordAccumulator,Sender线程不断从RecordAccumulator
阅读全文
摘要:1、安装部署 1.1、集群规划 hadoop103 hadoop104 hadoop105 zk zk zk kafka kafka kafka 1.2、安装&配置 下载地址 https://kafka.apache.org/downloads.html 解压安装包,重命名安装路径 [hui@had
阅读全文
摘要:问题场景 单独执行 /opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties 可以正常启动 kafka 但是封装了群起脚本如下 #!/bin/sh case $1 in
阅读全文
摘要:1、Kafka 定义 Kafka传统定义:Kafka是一个分布式的基于发布/订阅模式的消息队列(MessageQueue),主要应用于大数据实时处理领域; 发布/订阅:消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接收感兴趣的消息; Kafka最新定义:Kaf
阅读全文
摘要:在流数据处理应用中,一个很重要很常见的的操作就是窗口计算。这里的窗口指的是划定的一段时间范围,即时间窗,在这个范围内的数据进行数据处理就是我们所说的窗口计算,因此窗口和时间是分不开的。 一、FLink 时间语义 时间从理论和哲学的角度解释有一点玄妙,但对于普通人来说,时间其实是生活中在熟悉不过的一个
阅读全文
摘要:一、Scala 概述 Scala是一门多范式(multi-paradigm)的编程语言,Scala支持面向对象和函数式编程 Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接. scala单作为一门语言
阅读全文
摘要:一、写在前面 一直有一个想法:先把 spark 系统的学习一下,不要在三天打鱼两天晒网了,也是本着对自己负责,对未来负责的态度,就先总结一下学习Scala的所有小知识吧,希望自己能够坚持下来。加油。 二、REPL 环境配置 Scala安装文件下载地址 https://www.scala-lang.o
阅读全文
摘要:分区概述 分区是大数据处理中一个非常重要的一环。分区是将数据进行重新分布,传输到不同的通道进行下一步数据处理。之前在进行 wordcount 的时候已经使用过有关分区的算子 keyby,keiby 是按照键的哈希值进行的重分区操作。 KeyedStream<Tuple2<String, Long>,
阅读全文
摘要:Transformation 数据源读入数据之后,我们就可以使用各种转换算子,将一个或多个DataStream转换为新的DataStream,如上图所示。一个Flink程序的核心,其实就是所有的转换操作,它们决定了处理的业务逻辑。我们可以针对一条流进行转换处理,也可以进行分流、合流等多流转换操作,从
阅读全文
摘要:Flink Source 简介 Flink 获取执行环境之后,就可以运行FLink 处理数据了,但是在对数据进行处理之前需要将数据读进来,有数据,才能处理数据。Flink 可以通过各种途径获取数据,然后通过API构建 DataStream 对数据进行一列列处理。今天我们总结一下 Flink 读取数据
阅读全文
摘要:flink 上下文一些细节 Flink 程序可以在 本地环境运行,也可以在集群环境下运行,不同的运算环境,提交的运行过程也不太一样,这就需要运行程序的时候需要获取上下文环境,从而建立起与flink框架的联系,只有获取到上下文环境信息才能将任务分配到不同的taskmanager上运行。 StreamE
阅读全文
摘要:Lambda expressions are not supported at language level '5' 解决方案 1. 打开 File --> Project Stucture 选择项目设置Lanugage level, 如图所示 这里设置改下 2. 打开 File --> Setti
阅读全文
摘要:接下来我们看下常见RDD的转换算子和行动算子。 1、基本RDD的操作 首先来讲讲那些转化操作和行动操作受任意数据类型的RDD支持。 1.1、针对每个元素的转换操作 你很可能会用到的两个最常用的转化操作是map()和filter()。转化操作map()接收一个函数,把这个函数用于RDD中的每个元素,将
阅读全文
摘要:Spark 中的 RDD 其实是一个分布式对象集合,每个 RDD 都被分为多个分区,这些分区运行在集群的不同的节点上。RDD 支持转换操作和行动操作。转化操作会由一个 RDD 生成一个新的 RDD ,例如 scala> val lines = sc.textFile("README.md") 这里通
阅读全文
摘要:spark 为了达到高并发,高吞吐数据处理能力封装了三大数据对象; RDD 弹性分布式数据集 累加器:分布式共享只写变量 广播变量:分布式共享只读变量 1、RDD 概述 1.1、RDD 引入之IO流 首先回顾下java 中IO的设计模式 IO流和RDD之间的关系 1.2、什么是RDD RDD(Res
阅读全文
摘要:Mysql 是常用的轻量级关系型数据库,也是常见的数据库软件之一,今天记录一下安装mysql的方法,便以后使用 1、软件准备 01_mysql-community-common-5.7.16-1.el7.x86_64.rpm 02_mysql-community-libs-5.7.16-1.el7.
阅读全文
摘要:一、Yarn 部署简介 Spark自身提供计算资源,无需其他框架提供资源。But 这种方式降低了和其他第三方资源框架的耦合性,独立性非常强。请注意:Spark主要是计算框架,而不是资源调度框架,所以本身提供的资源调度并不是它的强项,所以还是和其他专业的资源调度框架集成会更靠谱一些。接下来我们看一下在
阅读全文
摘要:1、Zookeeper 内部原理 1.1、Zookeeper 内部选举机制 (1)服务器1启动,此时只有它一台服务器启动了,它发出去的报文没有任何响应,所以它的选举状态一直是 LOOKING状态。 (2)服务器2启动,它与最开始启动的服务器1进行通信,互相交换自己的选举结果,由于两者都没有历史数据,
阅读全文
摘要:1、Zookeeper 概述 1.1、概述 Zookeeper 是一个开源的分布式的,为分布式应用提供协调服务的 Apache 项目 工作机制 Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的
阅读全文
摘要:一、概述 DataX 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。 DataX 设计 为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成
阅读全文
摘要:需求 表temp_user_login,标记每天用户是否签到(说明:该表包含所有用户所有工作日的出勤记录) ,包含三个字段:日期 date 用户id user_id if_login 0 未签到 1 签到 问题1:统计截至当前每个用户已经连续签到的天数(输出表仅包含当天签到的所有用户,计算其连续签到
阅读全文
摘要:需求 原始数据 year tag 2014 1 2015 1 2016 0 2017 0 2018 0 2020 1 2021 1 2022 1 结果数据 2014 1 1 2015 1 2 2016 0 1 2017 0 2 2018 0 3 2020 1 1 2021 1 2 2022 1 3
阅读全文
摘要:需求描述 有一张记录用户购物信息表,第一个字段 shop_id 订单ID,第二个字段 commodity_id 物品ID,第三个字段 sale 物品金额, 110 1 10 订单ID110 物品ID1 金额10 现在要求出每个订单中剔除物品金额最大最小后的平均值。 原始数据 shop_id comm
阅读全文
摘要:Sink有下沉的意思,在Flink中所谓的Sink其实可以表示为将数据存储起来的意思,也可以将范围扩大,表示将处理完的数据发送到指定的存储系统的输出操作. 之前我们一直在使用的print方法其实就是一种Sink kafkaSink 依赖添加 <dependency> <groupId>org.apa
阅读全文
摘要:需求描述 数据如下 问题: 用户总量,用户平均年龄,用户平均观看时长 每10岁一个分段,统计每个区间的用户总量,用户平均观看时长 每个用户最喜欢的节目 观看时长大于5min的用户总量,只要有一个节目用户观看时间小于5min就不能算 数据准备 create table temp_userlook_03
阅读全文
摘要:数据准备 desc temp_shop_info; select * from temp_shop_info; shop_id commodity_id sale 110 1 10 110 2 20 110 3 30 110 4 50 110 5 60 110 6 20 110 7 80 111 1
阅读全文
摘要:问题描述 不知怎得最近在启动测试环境的时候 hdfs 总是进入安全模式,无奈手动离开此模式才能进行正常操作 [hui@hadoop201 ~]$ hdfs dfsadmin -safemode get Safe mode is ON [hui@hadoop201 ~]$ hdfs dfsadmin
阅读全文
摘要:需求 对同一个用户,在同一个位置,连续的多条记录进行合并 合并原则:开始时间取最早的,停留时长加和 字段 userID, locationID, time, duration 样例数据 user_a location_a 2022-02-03 08:00:00 60 user_a location_
阅读全文
摘要:滚动聚合算子 常见的滚动聚合算子sum,min,maxminBy,maxBy作用 KeyedStream的每一个支流做聚合。执行完成后,会将聚合的结果合成一个流返回,所以结果都是DataStream参数 如果流中存储的是POJO或者scala的样例类, 参数使用字段名 如果流中存储的是元组, 参数就
阅读全文
摘要:查找每个用户在Facebook上的受欢迎程度百分比。受欢迎程度百分比定义为:用户拥有的朋友总数除以平台上的用户总数,然后乘以100转换成一个百分比。 输出每个用户及其受欢迎程度百分比。按用户id升序排列。 “id1”和“id2”列是成对的朋友。表如下: id1 id2 1 2 1 3 1 4 1 5
阅读全文
摘要:需求 遍历字符串,并以一个字符一行的形式显示出来,如遍历"a,b,c,d,e,f"字符串,使其每个字符都生成一行记录; 思路分析 在hive中可以借助posexplode()函数对数组结构的数据进行(xing)行(hang)转列,并对数组中每一位都生成一个索引值.该函数强大之处就是为数组中每一位生成
阅读全文
摘要:TransForm 简介 转换算子可以把一个或多个DataStream转成一个新的DataStream.程序可以把多个复杂的转换组合成复杂的数据流拓扑。 常用算子 1、map 作用 将数据流中的数据进行转换, 形成新的数据流,消费一个元素并产出一个元素 参数 lambda表达式或MapFunctio
阅读全文
摘要:需求 现有一个字符串,使用hivesql 统计指定字符出现的次数,比如一个字符串 “love hive”,现在需要统计“ve” 在字符串中出现的个数 select "love hive" str; love hive 实现方案 1、先将目标字符串里的匹配字符串替换成空 select regexp_r
阅读全文