- 博客(85)
- 收藏
- 关注
原创 HQL 虚拟视图和行转列函数
行转列函数:explode(col_name)案例array 行转列create table `users`.`t_view`(pageid string,adid_list array<int>)row format delimitedfields terminated by '\t'collection items terminated by ',';# 语法lateralView: LATERAL VIEW udtf(expression) tableAlias
2021-10-14 16:35:20
372
转载 大数据举个例子
举个栗子帮助理解▌场景:小星与阿呆即时聊天中阿呆:小星,今天来我家玩,来的路上,有一家披萨店,很好吃,顺便带一点哈。小星:哦,要不你来我家玩吧,你顺便带上披萨。阿呆:小星,你竟然都这么说了,看来只能抛硬币解决了。小星:丫的,这个怎么抛,我怎么知道你有没有搞鬼。阿呆:嗯,那到也是,要不这样。1对结果加密阿呆:我心中想一个数,假设为A,然后A在乘以一个数B,得到结果C。A是我的密钥,我把结果C告诉你。你来猜A是奇数还是偶数,猜中了,算你赢。小星:这不行,如果你告诉我C是12,我猜A是奇数,你可
2021-10-13 16:29:43
461
原创 什么是大数据
1.1 什么是大数据主要解决:海量数据的存储和海量数据的分析计算问题大数据中的存储单位:bit,byte,KB,MB,GB,TB,PB,EB,ZB1byte = 8bit 1KB = 1024byte 1MB = 1024KB 1GB = 1024MB 1TB = 1024GB …1.2 大数据特点Volume(大量):数据量庞大Velocity(高速):比如淘宝双十一Variety(多样):数据库和文本为主的结构化数据,非结构化数据越来越多(m
2021-10-12 10:02:50
387
转载 Flume介绍
Flume介绍Flume是Cloudera 开发的框架,它是用来进行数据和日志的收集工具,它采用的是实时的收集数据(比如:一号店,美团等都用Flume)。组合的架构一般有Kafka/flume + storm / spark streamingFlume的分布式概念我可以收集很多服务器上的日志,每个服务器都要运行一个Flume去收集,因为日志文件不可能在一台机器上。Flume特点Flume是用Java语言编写的,所以要用JVM环境Flume仅仅支持Linux系统Flume比较灵活,是因为我们只
2021-10-11 17:30:22
453
转载 Hive sql编程面试题
Hive sql编程面试题第1题表结构:uid,subject_id,score求:找出所有科目成绩都大于某一学科平均成绩的学生数据集如下1001 01 901001 02 901001 03 901002 01 851002 02 851002 03 701003 01 701003 02 701003 03 851)建表语句create table score( uid string, subject_id string, score int)row
2021-10-08 17:40:21
1102
转载 Hadoop MapReduce架构与解析
Hadoop MapReduce 架构hadoop MapReduce 采用了Master/Slave架构,具体如下图所示。它主要由以下几个组件组成:Client、JobTracker、TaskTracker和Task。1.Client用户编写的Map Reduce程序通过Client提交到Job Tracker端;同时 ,用户可以通过Client提供的一些接口查看作业运行状态。在Hadoop内部用“作业”(Job)来表示Map Reduce程序。一个Map Reduce程序可对应若干个作业,每个作
2021-09-30 14:15:15
543
转载 flink高级
6. TaskManager在集群启动过程中起到什么作用?TaskManager的启动流程较为简单: 启动类:org.apache.flink.runtime.taskmanager.TaskManager 核心启动方法 : selectNetworkInterfaceAndRunTaskManager 启动后直接向JobManager注册自己,注册完成后,进行部分模块的初始化。7. Flink 计算资源的调度是如何实现的?TaskManager中最细粒度的资源是Task slot,代表了一个固定大小
2021-09-29 16:08:03
131
原创 ElasticSearch
ElasticSearch1、准备工作安装Centos7、建议内存2G以上、安装java1.8环境2、基本配置l 设置IP地址vi /etc/sysconfig/network-scripts/ifcfg-ens33# 网络重置service network restartl 添加用户[root@localhost ~]# adduser elk[root@localhost ~]# passwd elk以下授权步骤可省略[root@localhost ~]# whereis
2021-09-28 16:44:35
97
转载 flink面试题高级
1. Flink Job的提交流程用户提交的Flink Job会被转化成一个DAG任务运行,分别是:StreamGraph、JobGraph、ExecutionGraph,Flink中JobManager与TaskManager,JobManager与Client的交互是基于Akka工具包的,是通过消息驱动。整个Flink Job的提交还包含着ActorSystem的创建,JobManager的启动,TaskManager的启动和注册。2. Flink所谓"三层图"结构是哪几个"图"?一个Flink任
2021-09-27 18:51:29
392
转载 如何建设实时数仓
1 为什么要建设实时数仓在开始说如何建设实时数仓之前,我们先说一下建设实时数仓的目的,实时数仓解决了什么问题。其实在很多情况下,我们对于实时数仓的定位可能是没有那么准确的。我们都知道,传统数仓一个非常重要的功能是用于记录历史,而实时数仓恰恰相反,它更重视处理当前的状态。因此,我们创建实时数仓的目的就在于解决传统数据仓库由于时效性低而解决不了的问题。传统数仓可以解决的问题,我们不解决;如果问题本身就不适合用数仓解决的话,我们也不去解决。这是我们建设实时数仓的一些基本原则。实时数仓作为数仓的一种,他也包
2021-09-23 11:28:08
630
转载 Flink任务延迟高,想解决这个问题,你会如何入手?
11. Flink任务延迟高,想解决这个问题,你会如何入手?在Flink的后台任务管理中,我们可以看到Flink的哪个算子和task出现了反压。最主要的手段是资源调优和算子调优。资源调优即是对作业中的Operator的并发数(parallelism)、CPU(core)、堆内存(heap_memory)等参数进行调优。作业参数调优包括:并行度的设置,State的设置,checkpoint的设置。12. Flink是如何处理反压的?Flink 内部是基于 producer-consumer 模型来进行消
2021-09-22 17:46:18
2790
转载 LeetCode算法题目
1、反转链表用迭代方法定义两个指针curr和prev,时间复杂度为O(n),空间复杂度为O(1);class Solution{ public ListNode reverseList(ListNode head){ ListNode prev = null; ListNode curr = head; while(curr !=null){ ListNode nextTemp = curr.next;
2021-09-17 17:55:41
140
转载 Flink 中级面试题2
6. Flink 的 kafka 连接器有什么特别的地方?Flink源码中有一个独立的connectors模块,所有的其他connector都依赖于此模块,Flink 在1.9版本发布的全新kafka连接器,摒弃了之前连接不同版本的kafka集群需要依赖不同版本的connector这种做法,只需要依赖一个connector即可。7. 说说 Flink的内存管理是如何做的?Flink 并不是将大量对象存在堆上,而是将对象都序列化到一个预分配的内存块上。此外,Flink大量的使用了堆外内存。如果需要处理
2021-09-15 18:58:20
157
原创 ELK的一个介绍
一、ElasticSearch简介一个完整的集中式日志系统,需要包含以下几个主要特点:收集-能够采集多种来源的日志数据传输-能够稳定的把日志数据传输到中央系统存储-如何存储日志数据分析-可以支持 UI 分析警告-能够提供错误报告,监控机制ELK提供了一整套解决方案,并且都是开源软件,之间互相配合使用,完美衔接,高效的满足了很多场合的应用。目前主流的一种日志系统。1.1、ElasticsearchElasticsearch是一个基于Apache Lucene™的开源搜索引擎。无论在开源还是专
2021-09-14 14:36:14
198
转载 flink面试中级
1. Flink是如何支持批流一体的?本道面试题考察的其实就是一句话:Flink的开发者认为批处理是流处理的一种特殊情况。批处理是有限的流处理。Flink 使用一个引擎支持了DataSet API 和 DataStream API。2. Flink是如何做到高效的数据交换的?在一个Flink Job中,数据需要在不同的task中进行交换,整个数据交换是有 TaskManager 负责的,TaskManager 的网络组件首先从缓冲buffer中收集records,然后再发送。Records 并不是一个
2021-09-13 19:00:42
135
转载 Flink生产环境中的并行度和资源设置
在使用Flink处理生产实际问题时,并行度和资源的配置调优是经常要面对的工作之一,如果有效和正确地配置并行度是任务能够高效执行的必要条件。Flink中的计算资源首先理解Flink中的计算资源的核心概念,比如Slot、Chain、Task等,这有助于我们快速定位生产中的问题。Task SlotFlink都是以集群在运行,在运行的过程中包含两类进程,其中之一就是TaskManager。在Flink集群中,一个TaskManager就是一个JVM进程,并且会用独立的现场来执行task,为了控制一个Tas
2021-09-10 15:05:31
1039
1
转载 HQL表操作
1 创建表1.1 语法#1. CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name # 表名[(col_name data_type [COMMENT col_comment], ...)] # 列名[COMMENT table_comment] #表批注[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] # 分区[CLU
2021-09-09 15:51:08
540
转载 Flink中有哪些窗口?
16. Flink中有哪些窗口?Flink 支持两种划分窗口的方式,按照time和count。如果根据时间划分窗口,那么它就是一个time-window 如果根据数据划分窗口,那么它就是一个count-window。flink支持窗口的两个重要属性(size和interval)如果size=interval,那么就会形成tumbling-window(无重叠数据) 如果size>interval,那么就会形成sliding-window(有重叠数据) 如果size< interval, 那
2021-09-08 19:39:08
1947
原创 核心交易分析指标的计算
在核心交易分析中完成如下指标的计算为了计算方便在dws层生产一张每日销售数据– 创建一张日期维度表,存放日期相关维度– 在订单宽表上增加日期对应维度信息如。订单日,订单周,订单周开始时间,订单月,订单季度,订单年DROP TABLE IF EXISTS dws.dws_trade_orders_w;create table if not exists dws.dws_trade_orders_w(orderid string, – 订单idcat_3rd_id string, – 商品三级分类
2021-09-07 15:32:05
190
原创 面试必练:50道经典SQL练习
–1.学生表— Student(S,Sname,Sage,Ssex)–S 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别–2.课程表– Course(C,Cname,T)–C --课程编号,Cname 课程名称,T 教师编号–3.教师表– Teacher(T,Tname)–T 教师编号,Tname 教师姓名–4.成绩表– SC(S,C,score)–S 学生编号,C 课程编号,score 分数–创建测试数据create table Student(S var
2021-09-07 15:27:02
237
转载 flink
1 简单介绍一下 FlinkFlink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。并且 Flink 提供了数据分布、容错机制以及资源管理等核心功能。Flink提供了诸多高抽象层的API以便用户编写分布式任务:DataSet API, 对静态数据进行批处理操作,将静态数据抽象成分布式的数据集,用户可以方便地使用Flink提供的各种操作符对分布式数据集进行处理,支持Java、Scala和Python。DataStream API,对数据流进行流处理操作,将流式的数据抽象成分布
2021-09-03 18:05:30
1347
转载 Hadoop MapReduce的生命周期
Hadoop MapReduce 作业的生命周期假设用户编写了一个MapReduce程序,并将其打包成xxx.jar文件,并提交作业,该作业的运行过程如图所示:这个过程分为以下5个步骤:作业提交与初始化。用户提交作业后,首先由JobClient实例将作业相关信息,(比如讲程序jar包、作业配置文件、分片元信息文件等)上传到分不是文件系统(一般为HDFS)上,其中分片元信息文件记录了每个输入分片的逻辑位置信息。然后JobClient通过RPC通知JobTracker收到新作业提交请求后,由作业调度
2021-09-02 15:52:27
141
转载 大数据面试题解析之数据处理篇-Flink
大数据面试题解析之数据处理篇-Flink1.Flink基础1. 简单介绍一下 FlinkFlink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。并且 Flink 提供了数据分布、容错机制以及资源管理等核心功能。Flink提供了诸多高抽象层的API以便用户编写分布式任务:DataSet API, 对静态数据进行批处理操作,将静态数据抽象成分布式的数据集,用户可以方便地使用Flink提供的各种操作符对分布式数据集进行处理,支持Java、Scala和Python。DataStrea
2021-09-01 18:59:53
908
转载 集群时间同步
集群时间同步时间同步的方式:找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间。配置时间同步具体实操:1)时间服务器配置(必须root用户)(0)查看所有节点ntpd服务状态和开机自启动状态[atguigu@hadoop102 ~]$ sudo systemctl status ntpd[atguigu@hadoop102 ~]$ sudo systemctl is-enabled ntpd(1)在所有节点关闭ntp服务和自启动[atguigu
2021-08-31 14:58:51
441
转载 Hive中如何处理JSON格式数据
Hive中如何处理JSON格式数据Hive 处理json数据总体来说有三个办法:使用内建的函数get_json_object、json_tuple使用自定义的UDF(一进一出),自定义UDTF(一进多出)第三方的SerDe–》JSONSerder1、使用内建函数处理get_json_object(string json_string, string path)返回值:String说明:解析json字符串json_string,返回path指定的内容;如果输入的json字符串无效,那么返回
2021-08-30 18:05:52
3394
转载 kafka消息一致性
消息丢失的案例:Leader接收消息后,更新Leader的LEO,但是Remote-LEO和HW并没有更新。如果生产者设置acks=1,则表示此消息已经发送成功。如果acks=-1,默认 min.insync.replics=1,也表示消息已经发送成功:Follower拉取消息,放到本地,此时,更新Follower的LEO为3:假如,在Follower发起第二次请求的时候,Leader和Follower都宕机,则:两者随后重启,由于副本重启后以HW作为标准对消息进行截断,则无论哪个先重启,都
2021-08-27 18:06:49
357
转载 Hive 自定义函数-UDF
为什么要自定义函数hive的内置函数无法满足实际开发环境的所有情况,这个时候需要我们根据业务自定义函数来解决问题。hive提供了很多模块的自定义功能,如:serde、自定义函数、输入输出格式化等常见的自定义函数UDF:User Define Function.一对一的输入输出,非常使用。UDAF:User Define Agregation Function.用户的自定义聚合函数。多对一的输入输出 UDTF:User Define Table‐Generate Function.用户自定的表生
2021-08-26 15:38:40
232
转载 Hive面试题
Hive面试题1.Hive的架构2 Hive和数据库比较Hive 和数据库除了拥有类似的查询语言,再无类似之处。1)数据存储位置Hive 存储在 HDFS 。数据库将数据保存在块设备或者本地文件系统中。2)数据更新Hive中不建议对数据的改写。而数据库中的数据通常是需要经常进行修改的,3)执行延迟Hive 执行延迟较高。数据库的执行延迟较低。当然,这个是有条件的,即数据规模较小,当数据规模大到超过数据库的处理能力的时候,Hive的并行计算显然能体现出优势。4)数据规模Hive支持很大
2021-08-25 17:00:58
264
原创 CentOS安装
CentOS安装在VMware中新建虚拟机默认即可,不需要做任何修改,直接下一步选择稍后安装操作系统,然后下一步选择安装的操作系统为Linux,版本为CentOS7 64位虚拟机命名,可随意取, 安装位置最好选择固态硬盘(有固态的情况)按照物理机CPU实际情况,选择处理器配置, 处理器数量*每个处理器内存数量要小于等于物理机CPU的数量,否则报错.查看物理机CPU数量:选择虚拟机CPU配置选择分配给虚拟机的内存,最少2G,后续建议适当调大网络类型选择N
2021-08-24 12:03:24
114
转载 如何二分查找
二分查找例题.在有序表{7,14,18,21,23,29,31,35,38}中查找18.【解析】对于折半查找有序表里面其中的一个元素的话我们需要注意以下几点>首先我们需要将表中的元素从小到大排序,由于题目中已经说了是有序表所以我们不需要将这些元素排序(切记这一步很重要)>由于是折半查找顾名思义也就是将表中的元素拆分成一半缩小范围来查找,所以我们需要引入2个变量low和high以及mid,其中low标志每一次折半首元素,high标志位每一次折半的尾元素,mid表示为中间元素。弄清楚了上
2021-08-23 17:34:56
92
转载 hive常用的函数(待补充)
1、解析URL字符串的: parse_url用法:select parse_url("",[HOST,PATH,QUERY,REF,PROTOCOL,FILE,AUTHORITY,USERINFO])举例 :select parse_url('http://facebook.com/path/p1.php?query=1', 'PROTOCOL') from dual; ---httpselect parse_url('http://facebook.com/p
2021-08-20 18:41:25
234
原创 spark任务的提交流程
spark任务的提交流程(yarn)spark一般都是部署到yarn上使用的,所以就说y问的最多的就是arn的提交流程,两种模式最大的区别就是driver端的执行位置Yarn Client模式第一步,Driver端在任务提交的本地机上运行第二步,Driver启动之后就会和ResourceManager通讯,申请启动一个ApplicationMaster第三步,ResourceManager就会分配container容器,在合适的nodemanager上启动ApplicationM.
2021-08-19 21:07:43
327
转载 Yarn资源调度
YARN调度策略大揭秘YARN调度策略,即存在于resourceManager中, 主要为了进行资源的调度。一共有三大类调度器,分别是FIFO、 Capacity Scheduler和Fair Scheduler。 Hadoop2.9.2默认的资源调度器是Capacity Scheduler。下面,我们依次来介绍这三种调度器。1. FIFO(先进先出调度器)先进先出的调度器,一般很少有人使用,其特性是当一个任务请求发来后,如果使用FIFO调度器,按照任务到达时间排序,先到先服务,即将YARN集群中所
2021-08-18 16:27:27
226
原创 如何修改网络YUM源
修改网络YUM源默认的系统YUM源,需要连接国外apache网站,网速比较慢,可以修改关联的网络YUM源为国内镜像的网站,比如网易163,aliyun等安装wget, wget用来从指定的URL下载文件[root@hadoop101 ~] yum install wget在/etc/yum.repos.d/目录下,备份默认的repos文件,[root@hadoop101 yum.repos.d] pwd/etc/yum.repos.d[root@hadoop101 yum.repos.
2021-08-17 15:06:33
299
转载 面试必练:50道经典SQL练习
–1.学生表— Student(S,Sname,Sage,Ssex)–S 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别–2.课程表– Course(C,Cname,T)–C --课程编号,Cname 课程名称,T 教师编号–3.教师表– Teacher(T,Tname)–T 教师编号,Tname 教师姓名–4.成绩表– SC(S,C,score)–S 学生编号,C 课程编号,score 分数–创建测试数据create table Student(S var
2021-08-16 21:02:33
1990
1
转载 分享大数据常见的面试题
分享大数据常见的面试题一、mr的shuffle流程说到mr的Shuffle,那么首先要明确shuffle属于哪个阶段。shuffle就是从Map端输出到Reduce输入的整个过程,这个过程广义上称之为shuffle。Shuffle横跨Map端和Reduce端,在Map端包括Spill过程,在Reduce端包括copy和sort过程,如图所示:Map的shuffle过程包括了spill、collect、sort、和Marge首先每个map任务不断地以键值对的形式,把数据输出到内存中构造的一个环形数据
2021-08-13 16:52:39
99
转载 kafka安装使用
集群部署1)解压安装包[user1@hadoop102 software]$ tar -zxvf kafka_2.11-2.4.1.tgz -C /opt/module/2)修改解压后的文件名称[user1@hadoop102 module]$ mv kafka_2.11-2.4.1.tgz kafka3)在/opt/module/kafka目录下创建logs文件夹[user1@hadoop102 kafka]$ mkdir logs4)修改配置文件[user1@hadoop102 kafk
2021-08-13 10:21:02
166
转载 数据仓库的分层,你知道吗?
数据仓库的分层,你知道吗?数据仓库更多代表的是一种对数据的管理和使用的方式,它是一整套包括了数据建模、ETL(数据抽取、转换、加载)以及作用调度等在内的完整的理论体系流程。数据仓库在构建过程中通常都需要进行分层处理。业务不同,分层的技术处理手段也不同。分层的主要原因是在管理数据的时候,能对数据有一个更加清晰的掌控。详细来讲,主要有如下几个原因。清晰的数据结构每一个数据分层都有它的作用域,在使用表的时候能更方便地定位和理解。将复杂的问题简单化将一个复杂的任务分解成多个步骤来完成,每一层只处理单一
2021-08-11 18:15:19
12884
原创 Zookeeper简介
Zookeeper内部原理节点类型stat结构体czxid-创建节点的事务zxid:每次修改ZooKeeper状态都会收到一个zxid形式的时间戳,也就是ZooKeeper事务ID。事务ID是ZooKeeper中所有修改总的次序。每个修改都有唯一的zxid,如果zxid1小于zxid2,那么zxid1在zxid2之前发生。ctime - znode被创建的毫秒数(从1970年开始)mzxid - znode最后更新的事务zxidmtime - znode最后修改的毫秒数(从1
2021-08-10 17:14:26
134
转载 关于git用法的一个小提示
和大家聊到了个小“bug”,整理个笔记方便记录咱们一般默认的步骤都是先把远程仓库复制到本地,然后编辑配置文件,进行推送,同步等相关的操作上面这个大家都很熟悉了,但是往往不经意的时候会发现下面的情况(开篇的问题):什么情况呢,就是我们想编辑的时候发现曾经可以编辑的按钮,变成了灰色不可点击状态,这是为什么呢,先从这三个按钮的介绍说起:第一个(local):仓库级配置文件:该文件位于当前仓库下,路径.git/,文件名为.gitconfig,这个配置中的设置只对当前所在仓库有效第二个(gl
2021-08-09 19:11:52
87
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人