- 博客(50)
- 问答 (1)
- 收藏
- 关注
原创 Spark入门
spark的特性:响应速度快、易用性、通用性、兼容性(可以运行在各种模式下: stadnAlone,yarn,mesos和local模式)spark的主要架构模块:sparkCore:核心模块,最底层的支持,支持上层的各种其他的模块稳定运行。可以用于做数据清洗,格式的转换等等,可以替代掉mr sparkSQL:处理结构化的数据的模块,用于结构化的数据分析,可以替代掉hive sparkStreaming:用于实时处理的模块,可以替代掉storm graphx:图计算 ,主要用于分析一些用户
2021-06-26 23:52:44
193
原创 大数据项目之电商数仓-业务数据仓库
电商业务流程简介电商术语SKU,库存量单位,即库存进出计量的基本单元,可以是以件,盒,托盘等为单位。SKU这是对于大型连锁超市DC(配送中心)物流管理的一个必要的方法。现在已经被引申为产品统一编号的简称,每种产品均对应有唯一的SKU号。SPU,标准化产品单元。是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。常用的表:订单表、订单详情表、商品表、用户表、商品一级分类表、商品二级分类表、商品三级分类、支付流水表数仓理论:表的分类实体表:实体表,一般
2021-06-17 05:51:11
969
原创 大数据项目之电商数仓-用户行为数据仓库
数据仓库分层把复杂问题简单化,把一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解清晰的数据结构,每一层都有它的作用域,这样我们在使用表的时候能更方便的定位和理解。 便于维护数据的准确性,当数据出现问题的时候,可以不用修复所有的数据,只需要从有问题的步骤开始修复减少重复开发,规范数据分层,通过中间层数据,能够减少极大的重复计算,增加一次计算结果的复用性隔离原始数据,使得真是数据与统计数据接耦分层结构图ODS层(原始数据层)原始数据层,存放原始数据,直接加载原
2021-06-11 22:54:48
1358
3
原创 大数据项目之电商数仓-用户行为数据采集
数据仓库简介数据仓库是为企业所有决策制定过程,提供所有系统数据支持的战略集合,通过数据仓库中的数据的分析,可以帮助企业改进业务流程、控制成本、提高产品质量等。项目需求实时采集买点的用户行为数据实现数据仓库的分层搭建每天定时导入业务数据根据数据仓库中的数据进行报表分析技术选型角度: 数据采集传输、数据存储、数据计算、数据查询系统架构图设计系统数据流程设计...
2021-06-08 22:04:51
982
3
原创 大数据框架总结
Kafka Eagle这是一款Kafka监控工具,Kafka Eagle主要是有几个我们关注的点:流量,最长可以查看最近七天的流量波动图lag size邮件告警可以用Kafka Sql分析课程框架总结Zookeeper 分布式服务协调框架,帮助其他节点正常运行永久节点: 普通永久节点、序列化永久节点临时节点(客户端一旦断开节点消失): 普通临时节点、序列化临时节点Watch机制 类似于监听器Hdfs 分布式文件存储NameNode 主节点:用于管理元数据fsimage 一份
2021-06-03 23:15:24
134
3
原创 Kafka入门
消息队列简介消息Message是指在应用之间传送的数据,消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。消息队列Message Queue是一种应用间的通信方式,消息发送后可以立即返回,有消息系统来确保信息的可靠专递,消息发布者只管把消息发布到MQ中而不管谁来取,消息使用者只管从MQ中取消息而不管谁发布的,这样发布者和使用者都不用知道对方的存在,常用的有RabbitMQ,ActiveMQ(支持消息队列当中事务处理),RocketMQ(阿里开源的消息队列)消息队列的模型:主要是基
2021-05-30 02:21:48
111
原创 Hadoop之ClouderaManager
基本介绍简单来说,Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具,使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。Cloudera Manager有四大功能:• 管理:对集群进行管理,如添加、删除节点等操作。• 监控:监控集群的健康情况,对设置的各种指标和系统运行情况进行全面监控。• 诊断:对集群出现的问题进行诊断,对出现的问题给出建议解决方案。• 集成:多组件进行整合。Cloude
2021-05-26 01:29:59
474
2
原创 Hadoop之Oozie
Oozie简介对于我们的工作,可能需要好几个Hadoop作业来协作完成,往往一个job的输出会被当做另一个job的输入来使用,这个时候就涉及到了数据流的处理。我们不可能就盯着程序,等它运行完再去运行下一个程序,所以,一般的做法就是通过Shell来做,但是如果涉及到的工作流很复杂(比方说有1,2,3,4四个作业,1的输出作为2 3 4的输入,然后2 3的结果运算之后再和1的结果进行某种运算……最后再输出)是很费时费力的。这里就用到了Oozie,一个能把多个MR作业组合为一个逻辑工作单元(一个工作流),从而自
2021-05-24 22:22:30
432
原创 Hadoop之Hue
Hadoop User Experience一个图形化界面,提供一个Web界面可以供我们查看执行我们其他的框架Hue是一个开源的Apache Hadoop UI系统,最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python Web框架Django实现的。通过使用Hue我们可以在浏览器端的Web控制台上与hadoop集群进行交互来分析处理数据,例如操作HDFS上的数据,运行MapReduce Job等等。简单就理解就是hadoop可视化工具Hue集成H
2021-05-23 05:14:05
984
原创 Impala
Impala简介Impala是基于Hive的大数据查询引擎,直接使用Hive的元数据库metadata,意味着Impala元数据都存储在Hive的metastore中,并且Impala兼容Hive的绝大多数sql语法,所以需要安装Impala的话,必须先安装Hive,保证HIve安装成功,并且还需要启动Hive的metastore服务,它实际上只提供了计算服务,不提供存储服务Impala的优点Impala很快,因为所有计算都可以放入内存中计算放弃了MapReduce,用C++来实现,有针对的硬件优
2021-05-22 01:51:37
98
原创 Hadoop之工作流调度
工作流调度将综合案例123中实现的模块串起来,定时的执行一、flume数据的采集: flume一直在采集,不需要定时的执行二、数据的清洗需要定时的执行三、表模型三个mr的程序第一个:mr清洗数据第二个:pageView表模型第三个:visit表模型四、Hive建表加载数据: 每天产生的数据,都要定时的加载到Hive的对应的分区表里面去五、数据的分析的hql语句: 自己开发的hql语句写到脚本里面定时的执行六、数据的导出: sqoop数据的导出也需要定时执行...
2021-05-20 02:41:48
342
原创 Hadoop之数据仓库设计
维度表和事实表事实表:在多维数据仓库中,保存度量值的详细值或事实的表称为事实表,事实表的记录在不断地动态增长,所以它的体积通常远大于其他表。维度表:在事实表中使用整数键值时,维度成员的名称需要放到另一种表中——也就是维度表。通常,事实表中的每个维度都有一个维度表。维度表可以看作是用户来分析数据的窗口,纬度表中包含事实数据表中事实记录的特性,有些特性提供描述性信息,有些特性指定如何汇总事实数据表数据,以便为分析者提供有用的信息。结论:事实表就是你要关注的内容;维度表就是你观察该事务的角度,是从
2021-05-18 02:51:51
311
原创 Hadoop之网站流量日志数据分析
网站流量日志数据分析系统点击流数据模型点击流是指用户在网站上持续访问的轨迹,按照时间来进行先后区分,基本上所有大型网站都有日志埋点。通过js的方式,可以获得用户在网站上所访问的内容,包括url。埋点收集过来的数据,都发送到日志服务器,一条日志大概1KB。然后分析用户的点击数据,得到我们的点击流模型。日志数据例子:192.168.52.100 a.html2018-11-20 11:20:20可以分析计算有多少用户访问?一共访问多少页面?平均一个用户访问多少页面?页面停留时间?等等问题,可以把访问数据
2021-05-16 02:09:57
2115
2
原创 Hadoop之sqoop
sqoop产生的原因: 多数使用Hadoop技术的处理大数据业务的企业,有大量的数据存储在关系型数据中。由于没有工具支持,对Hadoop和关系型数据库之间数据传输是一个很困难的事。所以sqoop产生了。sqoop简介: sqoop是连接关系型数据库和Hadoop的桥梁,主要有两个方面(导入和导出):将关系型数据库的数据导入到Hadoop及其相关的系统中,如Hive和HBase将数据从Hadoop系统里抽取并导出到关系型数据库sqoop的优点:可以高效、可控的利用资源,可以通过调整任务数来控制
2021-05-14 05:14:09
297
原创 Hadoop之Flume
flume的采集频率是怎么设置的?设置flume的采集频率,有两种控制策略,第一种: 文件127.9M的时候采集一次 第二种: 两个小时滚动一次flume的监测flume比较脆弱,一旦抛异常,就会停止工作,只能够手动重启,那么什么情况下flume死掉了?如果目的地数据没有增多,或者源数据没有变少,flume都有可能死掉了,可以写一个脚本定时执行检测,检测源数据有没有减少和目的地数据有没有增多,杀掉flume,重新启动,也可以用failover的机制flume监控文件的内容变化,将文件里面新增的数据全
2021-05-11 21:30:54
310
1
原创 Hadoop之Hive(调优篇)
Hive调优Fetch抓取Hive中对某些情况的查询可以不必使用MapReduce计算。例如:SELECT * FROM score;在这种情况下,Hive可以简单地读取score对应的存储目录下的文件,然后输出查询结果到控制台。通过设置hive.fetch.task.conversion参数,可以控制查询语句是否走MapReduce.本地模式大多数的Hadoop Job是需要Hadoop提供的完整的可扩展性来处理大数据集的。不过,有时Hive的输入数据量是非常小的。在这种情况下,为查询触发执行任务
2021-05-10 02:23:01
199
原创 Hadoop之Hive(使用篇)
创建数据库create database if not exists myhive;use myhive;设置数据库键值对信息create database foo with dbproperties ('owner'='itcast', 'date'='20190120');删除数据库drop database myhive2;创建表的语法create [external] table [if not exists] table_name (col_name data_type
2021-05-08 19:50:24
2414
原创 Hadoop之Hive
数据仓库数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持。数据仓库是存数据的,企业的各种数据往里面存,主要目的是为了分析有效数据,后续会基于它产出供分析挖掘的数据,或者数据应用需要的数据,如企业的分析性报告和各类报表等。可以理解为: 面向分析的存储系统 。当企业需要对不同来源、不同形式、不同主题的数据整合起来,供给数据分析、数据挖掘、数据报表使用时,有这么一个中间层将各种原始数据科学地加工处理成下游需要的样子。这个中间层就是数据仓库产生价值的地方主要特征数据仓库是面向主题的、集成
2021-05-06 22:14:48
436
原创 Hadoop之MapReduce(TopN和Yarn)
TopNGroupingComparatorGroupingComparator是MapReduce当中reduce端的一个功能组件,主要的作用是决定哪些数据作为一组,调用一次reduce的逻辑,默认是每个不同的key,作为多个不同的组,每个组调用一次reduce逻辑,我们可以自定义GroupingComparator实现不同的key作为同一个组,调用一次reduce逻辑。有如下订单数据:现在需要求出每一个订单中成交金额最大的一笔交易订单id商品id成交金额Order_00000
2021-05-05 04:37:43
141
原创 Hadoop之MapReduce
MapReduce的思想核心是“分而治之”,适用于大规模数据处理场景。Map负责“分”,即把复杂的任务分解为若干个“简单的任务”来并行处理。可以进行拆分的前提是这些小任务可以并行计算,彼此间几乎没有依赖关系;Reduce负责“合”,即对map阶段的结果进行全局汇总...
2021-04-29 15:47:14
161
原创 Hadoop之HDFS篇
随着数据量越来越大,在一个操作系统中存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统,HDFS只是分布式文件管理系统中的一种,通过目录树来定位文件优点:高容错性,自动保存多个副本,通过增加副本的形式,提升容错性,当某一个副本丢失之后,可以自动恢复适合处理大数据可以构建在大量廉价机器上,通过多副本机制,提高可靠性缺点:不适合低延时数据访问,如毫秒级的存储无法高效的对大量小文件进行存储,存储大量小文件
2021-04-25 22:45:20
80
原创 Hadoop完全分布式搭建
集群运行服务规划NameNode在内存中保存着整个文件系统的名称空间和文件数据块的地址映射,Hadoop中的NameNode好比是人的心脏,非常重要!绝对不可以停止工作hadoop 中HDFS的高可靠指的是可以同时启动2个NameNode。其中一个处于工作状态,另一个处于随时待命状态。这样,当一个NameNode所在的服务器宕机时,可以在数据不丢失的情况下,手工或者自动切换到另一个NameNode提供服务。 两个NameNode为了数据同步,会通过一组称作JournalNodes的独立进程进行相互通信(
2021-04-25 01:18:42
97
原创 Hadoop架构
1.x的版本架构模型介绍文件系统核心模块:**NameNode:**集群中的主节点,管理元数据(文件的大小,文件的位置,文件的权限),主要用于管理集群当中的各种数据。Secondary NameNode: 主要能用于Hadoop中元数据信息的辅助管理。DataNode:集群中的从节点,主要用于存储集群当中的各种数据。数据计算核心模块:JobTracker:接收用户的计算任务,并分配任务给从节点。TaskTracker:负责执行主节点JobTracker分配的任务...
2021-04-19 22:26:25
132
原创 Hadoop离线ZooKeeper基础
ZooKeeper基础分布式服务协调框架,主要用于协调辅助其他框架正常运行,主要为了解决应用系统中一致性问题,不干活,协助别人干活
2021-04-16 02:13:24
103
原创 Hadoop离线linux基础
常用指令ps -ef | grep mysql 查看某个系统进程find / -name hello.txt 从根路径下面查找文件用户与用户组Linux是一个多用户多进程操作的服务器系统多用户:允许多个用户同时登陆操作useradd username 创建用户passwd username 设置密码root用户的家目录在/rootroot用户可以操作普通用户普通用户的家目录在/home/username普通用户只能操作家目录下面的内容用户组 我们可以把很多用户归纳..
2021-04-09 02:00:13
81
原创 Shell编程入门
创建一个简单的shell脚本并运行mkdir shell #创建shell文件夹,选做 vim myShell.sh #编辑shell脚本 #!/bin/bash echo 此处有空行 "hello, world" #脚本内输入 ll #查看使用权限 chmod 744 myShell.sh #更改权限使之可以被执行 ./myShell.sh #运行脚本A = 100 #定义一个变量unset #取消一个变量readonly A = 99 #定义一个静态变量,⚠️ ...
2021-04-07 01:30:19
95
原创 Linux基础(四)
进程管理什么是进程?在Linux中,每个执行的程序(代码)都称为一个进程,每个进程都分配一个ID号。每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程,例如www服务器ps 命令 用来查看系统中,有哪些正在执行,以及执行情况PID 进程识别号 PPID父进程识别号TTY 终端机号 TIME 此进程消耗CPU时间 CMD 正在执行的命令或者进程名-a 显示当前所有进程信息 -u以用户的格式显示信息 -x显示后台进程运行的参数 -ef显示父进程...
2021-04-05 01:06:43
46
原创 Linux基础(三)
磁盘分区、挂载Linux无论有几个分区,分给哪一个目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成文件系统的一部分 Linux采用了一种叫‘载入’的处理方法,它的的整个文件系统中包含了一整套文件和目录,且将一个分区和目录联系起来,这时候要载入的一个分区将使它的存储空间在一个目录下获得lsblk可以查看分区情况磁盘查询实用指令查询系统整体磁盘使用情况:df -h查询指定目录的磁盘占用情况:du -h /目录统计/home文件夹下文件的个.
2021-04-02 04:39:09
47
原创 Linux基础(二)
权限ls -l 中内容显示如下-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc第0位确定文件类型(目录(d),文件(-),链接(l), c, b) 第1-3位确定所有者(文件的所有者)拥有该文件的权限 ---- user 第4-6位确定所属组拥有该文件的权限 ----- group 第7-9位确定其他用户拥有该文件的权限 -----otherrwx权限作用到文件r:可读,可以查看w:可写,但是不代表可以删除文件,删除一个文件的前提是对该文
2021-04-01 05:00:12
157
原创 Linux基础(一)
安装虚拟机的网络连接三种形式的说明桥连接,Linux可以和其他的系统通信,但是可能造成ip冲突 NAT(推荐) 网络地址转换方式:Linux可以访问外网,不会造成ip冲突 主机模式:你的Linux是个独立的主机,不能访问外网centos和windows的共享文件夹在centos的/mnt/hgfs下文件系统目录结构linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录"/",然后在此目录下创建其他目录,在linux的世界里,一切皆文件/bin Binary的缩写
2021-03-27 16:21:24
75
1
原创 MySQL优化
查询过慢原因:有规律的速度过慢:用户访问量激增mysql集群 无规律速度过慢:跟表中数据量变化有关系,查询语句优化判断查询语句是否需要优化依赖工具:慢查询记录 explain执行计划 相关日志文件七个查询命令顺序:From -> Where ->Group by -> Having -> Select -> Order by -> Limit除了having外,剩下的六个查询命令执行完毕后都会生成全新的临时表执行速度最慢的:Group by.
2021-03-26 00:01:54
71
原创 MySQL基础(四)
数据库设计三范式第一范式:任何一张表都应该有主键,并且每一个字段原子性不可再分第二范式:建立在第一范式的基础上,非主键字段完全依赖主键,不能产生部分依赖 多对多,三张表,关系表两个外键第三范式:建立在第二范式的基础上,所有非主键字段不能传递依赖于主键字段 一对多,两张表,多的表加外键在实际开发中,以满足客户需求为主,有时候会拿冗余换执行速度一对一表的设计:主键共享或者外键唯一练习题:查询各部门工资最高的人select e.name, t.*from emp
2021-03-24 02:09:28
120
原创 MySQL基础(三)
事务事务是一个完整的业务逻辑单元,不可再分如银行转账,从A账户向B账户转账1000,需要执行两条update语句update t_act set balance = balance - 1000 where actno = 'act-001';update t_act set balance = balance + 1000 where actno = 'act-002';以上两条DML语句必须同时成功,或者同时失败,不允许出现一条成功,一条失败,要想保证同时成功或者失败,不允许出现
2021-03-20 00:14:50
94
原创 MySQL基础(二)
Unionselect ename from emp;unionselect dname from dept;LimitMySQL特有的,分页查询就靠它了limit是sql语句执行的最后一个环节例:找出工资排名在第四到第九的员工?select ename,sal from emp order by sal desc limit 3,6;⚠️ 第一个数字是起始位置,第二数字表示取几个数Java示例int pageNo = 2;int pageSize = 10.
2021-03-16 23:30:00
125
原创 SQL基础(一)
SQL基础sql,DB,DBMS分别是什么,以及他们的关系DB:DataBase,数据库,实际在硬盘上以文件的形式存在DBMS:DataBase Management System 数据库管理系统 常见的有MySql,Oracle...SQL: 结构化查询语言,是一门标准通用的语言,标准的SQL适用于所有数据库产品DBMS负责执行SQL语句,通过执行SQL语句来操作DB中的数据表table是数据库的基本组成单元,所有的数据都以表格的形式组织,目的是可读性强一个表包括行(被称为
2021-03-14 03:03:44
201
原创 Maven入门
Maven入门是Apache开发的一个工具,用来管理Java项目,依赖管理,项目构建Maven的作用依赖管理:Maven对项目的第三方构建(jar包)进行统一管理,向工程中加入jar包不需要手工从其他地方拷贝,通过Maven定义jar包的坐标,自动从Maven仓库中下载到工程中 项目构建:Maven提供一套对项目周期管理的标准,开发人员和测试人员统一使用Maven进行项目构建,项目生命周期管理:编译、测试、打包、部署、运行 Maven对工程分模块构建,提高开发效率Maven中存放的内容
2021-03-12 22:51:58
117
2
原创 Java入门(十四)
IO流字节缓冲区流字节流一次读写一个数组的速度比一次读写一个字节的速度快很多,这是加入流数组这样的缓冲区效果,Java本身在设计的时候,在考虑到了这样的设计思想,所以提供字节缓冲区流:字节缓冲输出流 BufferedOutputStream 和 字节缓冲输入流 BufferedInputStreampublic static void main(String[] args) throws IOException { FileOutputStream fos = new File
2021-03-10 06:02:18
200
原创 Java入门(十三)
IO流异常概述和继承体系异常就是程序出现不正常情况Throwable 类是Java中所有错误或者异常的超类,子类有:Error :严重问题,Java程序本身是无能为力的,如硬件底层的问题,内存不足等,不处理 Exception:是我们要处理的问题,分为运行期异常(RuntimeException)和编译期异常(#RuntimeException), 运行期异常在编译期是不处理的,在程序运行时出现了问题,需要我们回来修改代码,编译期异常在编译期就必须完成,否则程序不能通过编译就不能正常...
2021-03-09 03:16:21
198
原创 Java入门(十二)
Set集合Set是一个不包含重复元素的CollectionHashSet: 不能保证写入读取顺序一致HashSet保证元素唯一性的原理:首先比较对象的哈希值是否相同(根据对象的hashCode()进行计算),如果哈希值不同,就直接添加到集合中,如果哈希值相同,继续执行equals(),如果返回true,说明元素重复,不添加,返回的是false,说明元素不重复,于是添加。⚠️ 存储元素所属的类需要重写 hashCode() 和 equals(),自动生成即可Map集合接口,不能..
2021-03-07 02:14:55
80
1
原创 Java入门(十一)
集合类为了方便对多个对象进行操作,我们就必须把多个对象进行存储,但是存储多个对象就不能是基本的变量了,应该是一个容器类型的变量。学过的StringBuilder,他的结果是一个字符串,不一定满足需求,而数组的长度固定,不能适应变化的需求,这种情况下,Java提供了集合类供我们使用,集合类的长度是可变的Collection接口类是单列集合中的顶层接口,JDK不提供此接口的任何直接实现,它提供更具体的子接口实现创建Collection集合的对象,我们采用的是多态的方式,使用的是具体的A.
2021-03-06 01:32:53
65
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人