大数据
文章平均质量分 89
微毂
这个作者很懒,什么都没留下…
展开
-
第二部分 控制结构和函数
第二部分 控制结构和函数第1节 if 表达式Scala中 if 表达式有返回值。如果if 和 else 的返回值类型不一样,那么就返回两个返回值类型公共的父类。-- if 语句有返回值val x = 10val s = if (x > 0) 1 else -1-- 多分支if 语句 val s = if (x==0) 0else if (x > 1) 1 else 0-- 如果返回的类型不一致就返回公共的父类val s = if (x > 0)原创 2021-04-01 10:40:07 · 308 阅读 · 0 评论 -
第一部分 Scala基础
第一部分 Scala基础第1节 Scala语言概况1.1 Scala语言起源马丁·奥德斯基(Martin Odersky)是编译器及编程的狂热爱好者。主流JVM的Javac编译器就是马丁·奥德斯基编写出来的,JDK5.0、JDK8.0的编译器就是他写的。长时间的编程之后,他希望发明一种语言,能够让写程序这样的基础工作变得高效,简单。当接触到Java语言后,对Java这门语言产生了极大的兴趣,所以决定将函数式编程语言的特点融合到Java中,由此发明了Scala。1.2 Scala语原创 2021-04-01 10:33:58 · 480 阅读 · 0 评论 -
第四节 电商分析之广告业务
电商分析之广告业务互联网平台通行的商业模式是利用免费的基础服务吸引凝聚大量用户,并利用这些用户资源开展广告或其他增值业务实现盈利从而反哺支撑免费服务的生存和发展。广告收入不仅成为互联网平台的重要收入之一,更决定了互联网平台的发展程度。电商平台本身就汇聚了海量的商品、店铺的信息,天然适合进行商品的推广。对于电商和广告主来说,广告投放的目的无非就是吸引更多的用户,最终实现营销转化。因此非常关注不同位置广告的曝光量、点击量、购买量、点击率、购买率。第1节 需求分析事件日志数据样例:{ "l原创 2021-03-12 16:20:12 · 340 阅读 · 0 评论 -
Tez快速入门
Tez快速入门Hortonworks在2014年左右发布了Stinger Initiative,并进行社区分享,为的是让Hive支持更多SQL,并实现更好的性能。让Hive的查询功能更强大。增加类似OVER子句的分析功能,支持WHERE子查询,以及调整Hive的样式系统更多的符合标准的SQL模型; 优化Hive的请求执行计划,增加 Task 每秒处理记录的数量; 引入新的列式文件格式(ORC文件),提供一种更现代、高效和高性能的方式来储存Hive数据; 引入新的runtime框架——Tez,消原创 2021-03-12 16:09:46 · 673 阅读 · 0 评论 -
DataX快速入门
DataX快速入门1.1、DataX概述及安装DataX是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、 TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。概述为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时原创 2021-03-12 16:07:55 · 609 阅读 · 0 评论 -
第三章 电商分析之会员活跃度
电商分析之会员活跃度第 1 节 需求分析会员数据是后期营销的很重要的数据。网店会专门针对会员进行一系列营销活动。电商会员一般门槛较低,注册网站即可加入。有些电商平台的高级会员具有时效性,需要购买VIP会员卡或一年内消费额达到多少才能成为高级会员。计算指标:新增会员:每日新增会员数活跃会员:每日,每周,每月的活跃会员数会员留存:1日,2日,3日会员留存数、1日,2日,3日会员留存率指标口径业务逻辑:会员:以设备为判断标准,每个独立设备认为是一个会员。Androi..原创 2021-03-12 16:03:41 · 4470 阅读 · 0 评论 -
第一章 数据仓库理论
数据仓库理论第1节 数据仓库1.1 什么是数据仓库1988年,为解决全企业集成问题,IBM公司第一次提出了信息仓库(Information Warehouse)的概念。数据仓库的基本原理、技术架构以及分析系统的主要原则都已确定,数据仓库初具雏形。1991年Bill Inmon(比尔·恩门)出版了他的第一本关于数据仓库的书《Building the Data Warehouse》,标志着数据仓库概念的确立。书中指出,数据仓库(Data Warehouse)是一个面向主题的(Subject Or原创 2021-03-09 17:44:42 · 725 阅读 · 0 评论 -
10 Kafka集群与运维
Kafka集群与运维10.1 集群应用场景10.1.1 消息传递Kafka可以很好地替代传统邮件代理。消息代理的使用有多种原因(将处理与数据生产者分离,缓冲未处理的消息等)。与大多数邮件系统相比,Kafka具有更好的吞吐量,内置的分区,复制和容错功能,这使其成为大规模邮件处理应用程序的理想解决方案。根据我们的经验,消息传递的使用通常吞吐量较低,但是可能需要较低的端到端延迟,并且通常取决于Kafka提供的强大的持久性保证。在这个领域,Kafka与ActiveMQ或 RabbitMQ等传统消息传原创 2021-03-07 23:54:53 · 337 阅读 · 1 评论 -
9 Kafka高级特性解析-延时队列和重试队列
9 Kafka高级特性解析-延时队列和重试队列9.1 延时队列两个follower副本都已经拉取到了leader副本的最新位置,此时又向leader副本发送拉取请求,而 leader副本并没有新的消息写入,那么此时leader副本该如何处理呢?可以直接返回空的拉取结果给 follower副本,不过在leader副本一直没有新消息写入的情况下,follower副本会一直发送拉取请求, 并且总收到空的拉取结果,消耗资源。Kafka在处理拉取请求时,会先读取一次日志文件,如果收集不到足够多(fet原创 2021-03-07 23:46:27 · 756 阅读 · 1 评论 -
8 Kafka高级特性-稳定性
8 稳定性8.1 事务一、事务场景1. 如producer发的多条消息组成一个事务这些消息需要对consumer同时可见或者同时不可见 。2. producer可能会给多个topic,多个partition发消息,这些消息也需要能放在一个事务里面, 这就形成了一个典型的分布式事务。3. kafka的应用场景经常是应用先消费一个topic,然后做处理再发到另一个topic,这个 consume-transform-produce过程需要放到一个事务里面,比如在消息处理或者发送的过程中...原创 2021-03-07 23:41:09 · 468 阅读 · 0 评论 -
7 Kafka高级特性-物理存储
物理存储7.1 日志存储概述Kafka 消息是以主题为单位进行归类,各个主题之间是彼此独立的,互不影响。每个主题又可以分为一个或多个分区。每个分区各自存在一个记录消息数据的日志文件。图中,创建了一个tp_demo_01主题,其存在6个Parition,对应的每个Parition下存在一个[Topic-Parition]命名的消息日志文件。在理想情况下,数据流量分摊到各个Parition中,实现了负载均衡的效果。在分区日志文件中,你会发现很多类型的文件,如:.index、.timest原创 2021-03-07 23:32:45 · 329 阅读 · 0 评论 -
6 Kafka高级特性解析-主题与分区
Kafka高级特性解析-主题与分区6.1 主题6.1.1 管理使用kafka-topics.sh脚本:主题中可以使用的参数定义:6.1.1.1 创建主题原创 2021-03-07 22:59:44 · 1023 阅读 · 1 评论 -
5 Kafka高级特性解析-生产者与消费者
Kafka高级特性解析-生产者与消费者5.1 生产者5.1.1 消息发送5.1.1.1 数据生产流程解析1. Producer创建时,会创建一个Sender线程并设置为守护线程。2. 生产消息时,内部其实是异步流程;生产的消息先经过拦截器->序列化器->分区器,然后将消息缓存在缓冲区(该缓冲区也是在Producer创建时创建)。3. 批次发送的条件为:缓冲区数据大小达到batch.size或者linger.ms达到上限,哪个先达到就算哪个。4. 批次发送后,发往指原创 2021-03-02 10:14:04 · 462 阅读 · 0 评论 -
4 Kafka服务端参数配置
1.4 服务端参数配置$KAFKA_HOME/config/server.properties文件中的配置。1.4.1 zookeeper.connect该参数用于配置Kafka要连接的Zookeeper集群的地址。它的值是一个字符串,使用逗号分隔Zookeeper的多个地址。Zookeeper的单个地址是host:port形式的,可以在最后添加Kafka在Zookeeper中的根节点路径。如:zookeeper.connect=node2:2181,node3:2181,node4:原创 2021-02-21 21:25:08 · 269 阅读 · 0 评论 -
3 Kafka开发实战
3 Kafka开发实战3.1 消息的发送与接收生产者主要的对象有: KafkaProducer ,ProducerRecord。其中 KafkaProducer 是用于发送消息的类, ProducerRecord 类用于封装Kafka的消息。KafkaProducer 的创建需要指定的参数和含义:其他参数可以从 org.apache.kafka.clients.producer.ProducerConfig 中找到。我们后面的内容会介绍到。消费者生产消息后,需要broker端原创 2021-02-21 21:24:40 · 480 阅读 · 0 评论 -
2 Kafka安装与配置
2 Kafka安装与配置2.1 Java环境为前提1、上传jdk-8u261-linux-x64.rpm到服务器并安装:rpm -ivh jdk-8u261-linux-x64.rpm2、配置环境变量vim /etc/profile# 生效source /etc/profile# 验证java -version2.2 Zookeeper的安装配置1、上传zookeeper-3.4.14.tar.gz到服务器2、解压到/opttar -zxf zooke原创 2021-02-21 21:23:53 · 405 阅读 · 0 评论 -
1 Kafka架构和基本概念
1.1 架构和基本概念1.1.1 kafka介绍Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多生产者、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。主要应用场景是:日志收集系统和消息系统。Kafka主要设计目标如下:以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数转载 2021-02-20 17:03:53 · 226 阅读 · 1 评论 -
6 Redis企业实战问题
Redis企业实战问题缓存问题缓存穿透一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如 DB)。缓存穿透是指在高并发下查询key不存在的数据,会穿过缓存查询数据库。导致数据库压力过大而宕机解决方案:对查询结果为空的情况也进行缓存,缓存时间(ttl)设置短一点,或者该key对应的数据insert了 之后清理缓存。问题:缓存太多空值占用了更多的空间使用布隆过滤器。在缓存之前在加一层布隆过滤器,在查询的时候先去布隆过滤器查询 key 是原创 2021-02-20 16:56:17 · 179 阅读 · 1 评论 -
5 Redis高可用方案
Redis高可用方案“高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。单机的Redis是无法保证高可用性的,当Redis服务器宕机后,即使在有持久化的机制下也无法保证不丢失数据。所以我们采用Redis多机和集群的方式来保证Redis的高可用性。1、主从复制Redis支持主从复制功能,可以通过执行slaveof(Redis5以后改成replicaof)或者在配置文件中设置 slaveof(Redis5以后改成replic原创 2021-02-20 16:51:18 · 235 阅读 · 1 评论 -
4 Redis扩展特性
Redis扩展特性1、发布与订阅Redis提供了发布订阅功能,可以用于消息的传输Redis的发布订阅机制包括三个部分,publisher,subscriber和Channel发布者和订阅者都是Redis客户端,Channel则为Redis服务器端。发布者将消息发送到某个的频道,订阅了这个频道的订阅者就能接收到这条消息。频道/模式的订阅与退订subscribe:订阅 subscribe channel1 channel2 ..Redis客户端1订阅频道1和频道2127原创 2021-02-20 16:42:53 · 193 阅读 · 0 评论 -
3 Redis持久化机制
Redis持久化机制redis是一个内存数据库,数据保存在内存中,但是我们都知道内存的数据变化是很快的,也容易发生丢失。幸好Redis还为我们提供了持久化的机制,分别是RDB(Redis DataBase)和AOF(Append Only File)。Redis持久化是为了快速的恢复数据而不是为了存储数据。注意:Redis持久化不保证数据的完整性。当Redis用作DB时,DB数据要完整,所以一定要有一个完整的数据源Redis数据持久化流程客户端向服务端发送写操作(数据在客户端的内存中) 数原创 2021-02-20 16:34:15 · 166 阅读 · 0 评论 -
2 Redis数据结构及过期机制
Redis数据结构及过期机制Redis介绍Redis单机的安装使用Redis的数据类型及应用场景原创 2021-02-20 16:30:42 · 893 阅读 · 0 评论 -
1 Redis缓存原理及设计
Redis缓存原理及设计缓存基本思想什么是缓存?缓存原指CPU上的一种高速存储器,它先于内存与CPU交换数据,速度很快。现在泛指存储在计算机上的原始数据的复制集,便于快速访问。在互联网技术中,缓存是系统快速响应的关键技术之一以空间换时间的一种技术(艺术)缓存的使用场景DB缓存,减轻DB服务器压力一般情况下数据存在数据库中,应用程序直接操作数据库。当访问量上万,数据库压力增大,可以采取的方案有:读写分离,分库分表 当访问量达到10万、百万,需要引入缓存。 将已原创 2021-02-20 16:18:31 · 270 阅读 · 0 评论 -
5 YARN资源调度
YARN资源调度第 1 节 Yarn架构ResourceManager(rm):处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度; NodeManager(nm):单个节点上的资源管理、处理来自ResourceManager的命令、处理来⾃ApplicationMaster的命令; ApplicationMaster(am):数据切分、为应⽤程序申请资源,并分配给内部任务、任务监控与容错。 Container:对任务运行环境的抽象,封原创 2021-02-20 15:31:14 · 108 阅读 · 0 评论 -
4 MapReduce编程框架
MapReduce编程框架第 1 节 MapReduce思想MapReduce思想在⽣活中处可见。我们或多或少都曾接触过这种思想。MapReduce的思想核⼼是分而治之,充分利用了并⾏处理的优势。即使是发布过论文实现分布式计算的谷歌也只是实现了这种思想,⽽不是⾃己原创。MapReduce任务过程是分为两个处理阶段:Map阶段:Map阶段的主要作用是“分”,即把复杂的任务分解为若干个“简单的任务”来并行处理。Map阶段的这些任务可以并行计算,彼此间没有依赖关系。 Reduce阶段:Reduc原创 2021-02-20 15:26:55 · 242 阅读 · 0 评论 -
1 Impala概述
第 1 部分 Impala概述1.1 Impala是什么Impala是Cloudera提供的一款开源的针对HDFS和HBASE中的PB级别数据进行交互式实时查询(Impala 速度快),Impala是参照谷歌的新三篇论⽂文当中的Dremel实现而来,其中旧三篇论文分别是 (BigTable,GFS,MapReduce)分别对应我们即将学的HBase和已经学过的HDFS以及MapReduce。Impala最大卖点和最大特点就是快速,Impala中文翻译是⾼角羚羊。1.2 Impala优势回原创 2021-02-05 16:06:19 · 159 阅读 · 0 评论 -
工作流调度系统—Azkaban
工作流调度系统—Azkaban第 1 节 概述1.1 工作流调度系统⼀个完整的数据分析系统通常都是由⼤量任务单元组成:shell脚本程序 java程序 mapreduce程序 hive脚本等各任务单元之间存在时间先后及前后依赖关系,为了很好地组织起这样的复杂执行计划,需要⼀个工作流调度系统来调度任务的执行。假如,我有这样一个需求,某个业务系统每天产生20G原始数据,每天都要对其进行处理,处理步骤如下所示:通过Hadoop先将原始数据同步到HDFS上; 借助MapReduce原创 2021-02-04 22:45:57 · 351 阅读 · 0 评论 -
3 HBase API应用和优化
第三部分 HBase API应用和优化第 1 节 HBase API客户端操作创建Maven⼯程,添加依赖 <dependencies> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>1.3.1</vers原创 2021-02-02 22:50:11 · 203 阅读 · 0 评论 -
2 HBase原理深入
第⼆部分 HBase原理深入第 1 节 HBase读数据流程HBase读操作⾸先从zk找到meta表的region位置,然后读取meta表中的数据,meta表中存储了用户表的region信息 根据要查询的namespace、表名和rowkey信息。找到写入数据对应的region信息 找到这个region对应的regionServer,然后发送请求 查找对应的region 先从memstore查找数据,如果没有,再从BlockCache上读取HBase上Regionserver的内存原创 2021-02-01 23:51:33 · 101 阅读 · 0 评论 -
1 分布式数据库系统—HBase
分布式数据库系统—HBase第一部分 初识HBase第 1 节 HBase 简介1.1 HBase是什么HBase 基于 Google的BigTable论⽂而来,是⼀个分布式海量列式⾮关系型数据库系统,可以提供超大规模数据集的实时随机读写。接下来,通过⼀一个场景初步认识HBase列列存储 如下MySQL存储机制,空值字段浪费存储空间如果是列列存储的话,可以这么玩......rowkey:1 name:⼩明rowkey:1 age:23rowkey:1 job..原创 2021-02-01 23:18:06 · 270 阅读 · 0 评论 -
7 Hadoop HA
第七部分 Hadoop HA7.1 HA概述所谓HA(High Available),即⾼可用(7*24⼩时不中断服务)。 实现⾼可用最关键的策略是消除单点故障。Hadoop-HA严格来说应该分成各个组件的HA机制:HDFS的HA和YARN的HA。 Hadoop2.0之前,在HDFS集群中NameNode存在单点故障(SPOF)。 NameNode主要在以下两个⽅方⾯面影响HDFS集群NameNode机器发生意外,如宕机,集群将无法使用,直到管理员重启NameNode机器需要升级,包括软原创 2021-01-30 23:22:42 · 244 阅读 · 0 评论 -
6 Zookeeper应用实践
第六部分 Zookeeper应用实践ZooKeeper是一个典型的发布/订阅模式的分布式数据管理与协调框架,我们可以使用它来进⾏分布式数据的发布与订阅。另一⽅面,通过对ZooKeeper中丰富的数据节点类型进行交叉使用,配合Watcher 事件通知机制,可以⾮常⽅便地构建一系列分布式应⽤中都会涉及的核心功能,如数据发布/订阅、命名服务、集群管理理、Master选举、分布式锁和分布式队列等。那接下来就针对这些典型的分布式应用场景来做下介绍Zookeeper的两大特性: 客户端如果对Zookee.原创 2021-01-30 23:15:13 · 168 阅读 · 1 评论 -
5 zookeeper内部原理
第五部分 zookeeper内部原理5.1 Leader选举选举机制半数机制:集群中半数以上机器存活,集群可用。所以Zookeeper适合安装奇数台服务器。 Zookeeper虽然在配置文件中并没有指定Master和Slave。但是,Zookeeper⼯作时,是有一个节点为Leader,其它为Follower,Leader是通过内部的选举机制产生的。集群⾸次启动假设有五台服务器组成的Zookeeper集群,它们的id从1-5,同时它们都是最新启动的,也就是没有历史数据,在存放数据量这一点原创 2021-01-30 18:02:53 · 216 阅读 · 0 评论 -
4 zookeeper的基本使用
第四部分 zookeeper的基本使用4.1 zookeeper命令行操作⾸先,进⼊到zookeeper的bin⽬录:cd /opt/lagou/servers/zookeeper-3.4.14/bin/# 连接本地的zookeeper服务器./zkcli.sh# 连接指定的服务器./zkCli.sh -server ip:port(2181)连接成功之后,系统会输出Zookeeper的相关环境及配置信息等信息。输入help之后,屏幕会输出可用的Zookeeper命令,如下图所示原创 2021-01-30 17:59:48 · 163 阅读 · 0 评论 -
3 zookeeper数据结构与监听机制
第三部分 zookeeper数据结构与监听机制ZooKeeper数据模型Znode在ZooKeeper中,数据信息被保存在⼀个个数据节点上,这些节点被称为znode。ZNode 是 Zookeeper 中最⼩数据单位,在 ZNode 下面又可以再挂 ZNode,这样⼀层层下去就形成了一个层次化命名空间ZNode树,我们称为ZNode Tree,它采⽤了类似⽂件系统的层级树状结构进行管理。见下图示例:在Zookeeper中,每⼀个数据节点都是一个ZNode,上图根⽬录下有两个节点,分别是ap.原创 2021-01-30 17:46:25 · 152 阅读 · 0 评论 -
2 zookeeper环境搭建
第二部分 zookeeper环境搭建2.1 zookeeper的搭建方式Zookeeper安装⽅式有三种,单机模式和集群模式以及伪集群模式。■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境;■ 伪集群模式:就是在⼀台服务器上运⾏多个Zookeeper 实例;■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”2.2 zookeeper集群搭建下载⾸先我们下载稳定版本的zookeeper:http://zookee原创 2021-01-30 17:44:23 · 102 阅读 · 0 评论 -
1 分布式协调服务框架—zookeeper简介
分布式协调服务框架—zookeeper第一部分 zookeeper简介1.1 zookeeper是什么?Zookeeper 是一个分布式协调服务的开源框架。 主要用来解决分布式集群中应用系统的一致性问题, 例如怎样避免同时操作同⼀数据造成脏读的问题。分布式系统中数据存在一致性的问题!!ZooKeeper本质上是一个分布式的小文件存储系统。 提供基于类似于文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效管理理。 ZooKeeper提供给客户端监控存储在zk内部数据的功能,从而可以原创 2021-01-30 17:39:01 · 427 阅读 · 0 评论 -
8 HQL操作之DML命令
数据操纵语言DML(Data Manipulation Language),DML主要有三种形式:插入(INSERT)、删除(DELETE)、更新(UPDATE)。事务(transaction)是一组单元化操作,这些操作要么都执行,要么都不执行,是一个不可分割的工作单元。事务具有的四个要素:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),这四个基本要素通常称为ACID特性。原子性。一个事务是一个不可再分割的..原创 2021-01-29 00:00:29 · 300 阅读 · 0 评论 -
数据采集工具—Flume
数据采集工具—Flume第一部分 Flume概述无论数据来自什么企业,或是多大量级,通过部署Flume,可以确保数据都安全、及时地到达大数据平台,用户可以将精力集中在如何洞悉数据上。第 1 节 Flume的定义Flume由Cloudera公司开发,是一个分布式、高可靠、高可用的海量日志采集、聚合、传输的系统。Flume支持在日志系统中定制各类数据发送方,用于采集数据;Flume提供对数据进行简单处理,并写到各种数据接收方的能力。简单的说,Flume是实时采集日志的数据采集引擎。原创 2021-01-28 15:30:28 · 2069 阅读 · 0 评论 -
10 Hive调优策略
Hive调优策略Hive作为大数据领域常用的数据仓库组件,在设计和开发阶段需要注意效率。影响Hive效率的不仅仅是数据量过大;数据倾斜、数据冗余、job或I/O过多、 MapReduce分配不合理等因素都对Hive的效率有影响。对Hive的调优既包含对HiveQL语句本身的优化,也包含Hive配置项和MR方面的调整。 从以下三个方面展开:架构优化参数优化SQL优化 10.1 架构优化执行引擎Hive支持多种执行引擎,分别是 MapReduce、Tez、Spark、Fli原创 2021-01-28 15:14:48 · 491 阅读 · 0 评论