![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大数据
文章平均质量分 70
千锋教育官方
千锋立足于职业教育培训领域多年,现有教研讲师团队300余人。与国内20000余家IT相关企业建立人才输送合作关系,十年间累计培养超20余万泛IT人才,累计向互联网输出学科视频880余套,累积播放量超上亿次。
展开
-
大数据系列文章之Redis与Kafka的区别
Redis,它首先是一个内存数据库,其提供的PUB/SUB功能把消息保存在内存中(基于channel),因此如果你的消息的持久性需求并不高且后端应用的消费能力超强的话,使用Redis PUB/SUB是比较合适的使用场景。这些对于持久性的要求并不高,使用Redis PUB/SUB来做足矣。Kafka与Redis PUB/SUB之间较大的区别在于Kafka是一个完整的系统,而Redis PUB/SUB只是一个套件(utility)——没有冒犯Redis的意思,毕竟它的主要功能并不是PUB/SUB。原创 2020-06-19 11:17:52 · 914 阅读 · 1 评论 -
凯哥带你从零学大数据系列之Java篇---第十章:包装类和常用类
Integer类中, 将 [-128, 127] 范围内的数字对应的包装类对象预存到了一个 Integer.cache 数组中, 每当我们用到这个范围内的数字的时候, 可以直接从这个数组中获取到元素。当我们需要在程序中频繁的用到一些元数据的时候, 此时, 我们可以提前将这些元数据准备好, 当需要的时候, 直接拿过来使用即可。在每一个包装类的构造方法中,都有一个与之对应的基本数据类型作为参数的重载方法。所谓的自动装箱和自动拆箱, 指的是在进行装箱和拆箱的时候, 不用再使用上面的方法完成装箱和拆箱的操作。原创 2020-06-19 11:18:05 · 847 阅读 · 0 评论 -
凯哥带你从零学大数据系列之Java篇---第十一章:枚举
枚举是一种自定义的数据类型, 可以声明变量。在使用的时候, 直接使用枚举类型.枚举值这样的形式进行枚举值的获取。枚举也是一种自定义的数据类型, 是一个引用数据类型。枚举经常用来被描述一些取值范围有限的数据。枚举,其实可以认为是Object类的一个最终子类。不能被其他的类、枚举继承。枚举的名字是一个标识符, 遵循大驼峰命名法。定义枚举类型, 需要使用到关键字。原创 2020-06-19 11:18:19 · 908 阅读 · 0 评论 -
凯哥带你从零学大数据系列之Java篇---第十二章:异常
(Non-Runtime Exception: 非运行时异常, 但是由于异常是发生在编译时期的,因此,常常成为编译时异常。否则将捕获不到异常, 会导致try中实际出现的异常没有被捕获处理, 依然可以终止程序的编译或运行。如果try中出现了多种异常,并且某些类型的异常,处理方式相同。如果在try代码段中, 出现了多种类型的异常, 此时如果需要对这些异常进行不同的处理, 可以写多个catch子句。无论try代码段中有没有异常出现,无论try里面出现的异常没有被捕获处理,finally中的代码始终会执行。原创 2020-06-19 11:18:30 · 932 阅读 · 0 评论 -
带你从零学大数据系列之Java篇---第十六章:集合基础
在使用增强for循环进行元素的遍历过程中, 不要修改集合中的内容!在使用迭代器进行元素的遍历过程中, 不要修改集合中的内容!在Java中, 集合不是泛指某一个类, 而是若干个类组成的数据结构的实现。Java集合类是可以往里面保存多个对象的类,存放的是对象,不同的集合类有不同的功能和特点,适合不同的场合,用以解决一些实际问题。由于这个接口是单列集合的顶级接口, 在这里定义的所有的方法, 在所有的实现类中都是可以使用的。其中,Collection是单列集合的顶级接口,Map接口是双列集合的顶级接口。原创 2020-06-23 11:34:31 · 997 阅读 · 0 评论 -
带你从零学大数据系列之Java篇---第十五章:泛型
泛型类型的指派, 只能是引用数据类型。泛型, 是定义在一对尖括号里面的。在尖括号里面定义一个类型。此时, 定义在这一对尖括号中的类型, 就是泛型。使用泛型, 将某些类型, 在类与类、 类与接口、 方法之间进行传递。在使用到泛型类、接口、方法的时候, 指派每一个泛型具体是什么类型。在接口名字的后面, 添加上一对尖括号。在尖括号里面定义泛型。实现类实现接口、 使用接口访问接口中的静态成员、 被继承。泛型, 指的是“泛指的类型”。泛型方法中, 在返回值前面定义泛型。在类名的后面, 紧跟上一对尖括号。原创 2020-06-23 11:34:50 · 930 阅读 · 0 评论 -
带你从零学大数据系列之Java篇---第十四章:正则表达式
但是, 在很多的语言中, 都在匹配的基础上, 添加了其他的功能。实现相同的功能, 用String、StringBuffer、StringBuilder可以实现, 用正则表达式也可以实现。无论是 matches, 还是find, 还是lookingAt, 在字符串中进行校验、匹配的时候, 是有一个浮标存在的。正则表达式, 使用来做字符串的校验、匹配的, 其实正则只有一个作用: 验证一个字符串是否与指定的规则匹配。当再次调用find()的时候, 从上次查询到的位置开始, 继续向后查询。原创 2020-06-23 11:35:06 · 989 阅读 · 0 评论 -
带你从零学大数据系列之Java篇---第十三章:字符串
由于字符串本身是不可变的, 所以String类所有的修改操作, 其实都是在方法内实例化了一个新的字符串对象, 存储拼接之后的新的字符串的地址, 返回这个新的字符串。因为字符串, 是常量。任何的修改字符串的操作, 都不会对所修改的字符串造成任何的影响。所有的对字符串的修改操作, 其实都是实例化了新的字符串对象。在这个新的字符串中, 存储了修改之后的结果。在类中维护了一个字符串的属性, 这些字符串操作类中的方法, 可以直接修改这个属性的值。字符串都是常量, 所有的操作字符串的方法, 都不能直接修改字符串本身。原创 2020-06-23 11:35:27 · 973 阅读 · 0 评论 -
大数据系列文章之数据中台-二:建设数据中台
大多数的数据人,做数据中台习惯从自顶向下进行建设。这种做法的优点是能够通盘考虑全局问题,保持数据的一致性,但坏处是变动的成本比较高,难以适应高速变化的业务结构。仔细想想,阿里是先有了电商业务,才有了大中台落地的基础;头条做好了抖音,才有了算法中台的诞生;腾讯IM深耕多年,也是基于IM逻辑做数据中台。其实数据中台更多的要走到业务中,为业务贡献价值,才能真的称之为“中台”。总的来说,在数据服务之上,就是应用层,这里可以分为两类,一类是通用性数据应用,包括报表系统、大屏系统、自助分析系统,本身不具备行业属性,原创 2020-06-23 11:36:18 · 1038 阅读 · 0 评论 -
凯哥带你从零学大数据系列之Java篇---第十九章:集合(Map+Collections)
这个forEach方法, 并不是Iterable接口中的方法。是Map接口中定义的一个方法。从功能上将, 与Iterable中的方法差不多。只是在参数部分有区别。在Map中, 更多强调的是一层映射关系。在Map中存储的数据, 是一个个的键值对(Key-Value-Pair), 键和值是一一对应的。Map是双列集合的顶级接口, 这个接口并没有继承自Collection接口。是Map中的内部接口, 用来描述集合中的每一个键值对。原创 2020-06-24 11:22:51 · 936 阅读 · 0 评论 -
凯哥带你从零学大数据系列之Java篇---第十八章:集合(Set)
TreeSet是一个Set接口的实现类,底层实现是二叉树。这样的集合,会对添加进集合的元素进行去重的处理。同时, 这个集合会对添加进入的元素进行自动的升序排序。原创 2020-06-24 11:23:06 · 942 阅读 · 0 评论 -
大数据概述
一、大数据时代大数据时代的悄然来临,让信息技术的发展发生了巨大变化,并深刻影响着社会生产和人民生活的方方面面。每个国家都高度重视大数据技术的研究和产业发展,纷纷把大数据上升为国家战略加以重点推进。企业和教育机构也纷纷加大技术,资金和人员投入力度,以期在“第三次信息化浪潮”中占得先机,引领市场。1、三次信息化浪潮第一次信息化浪潮1980年前后,个人计算机的普及,使得计算机走入企业和家庭,大大提高了社会生产力,也使得人类迎来了第一次信息化浪潮,Intel、IBM、苹果,MicroSoft、联想等原创 2020-06-29 10:04:29 · 1062 阅读 · 0 评论 -
凯哥带你从零学大数据系列之Java篇---第二十二章:Lambda表达式
lambda表达式中包含了某一个对象, 此时方法体中, 直接使用这个对象调用它的某一个方法就可以完成整体的逻辑。当实现的接口中的方法过多或者多少的时候, lambda表达式都是不适用的。在上述代码中, 的确可以使用lambda表达式实现接口, 但是依然不够简洁, 有简化的空间。方法的实现部分, 如果接口中定义的方法有返回值, 则在实现的时候, 注意返回值的返回。: 方法的参数列表, 要求和实现的接口中的方法参数部分一致, 包括参数的数量和类型。通常来讲, 使用lambda表达式, 是为了简化接口实现的。原创 2020-06-29 10:04:47 · 574 阅读 · 0 评论 -
Apache-Hadoop简介
Hadoop是Apache基金会旗下的一个开源的分布式计算平台,是基于Java语言开发的,有很好的跨平台特性,并且可以部署在廉价的计算机集群中。用户无需了解分布式底层细节,就可以开发分布式程序,充分利用集群的威力进行高速运算和存储。最初,Hadoop的核心技术是HDFS和MapReduce。原创 2020-06-30 09:56:40 · 590 阅读 · 1 评论 -
《MySQL数据库》数据库相关概念及历史发展
造纸术的发明,大大提高了人类文明的进步,使我们在数据记录和文明传播上更为方便快捷,近代计算机的发明,让我们的世界文明有了质的飞跃,开始进入科技时代。在数据存储上,数据库软件的出现,让我们少了很多在管理数据上的负担。例如一个有关学生信息的名为 students 的表中,每个列包含的是所有学生的某个特定类型的信息,比如“姓名”,而每行则包含了某个特定学生的所有信息:姓名、学号、专业,院校等等。在这一阶段中,数据库中的数据不再是面向某个应用或某个程序,而是面向整个企业(组织)或整个应用的。原创 2020-07-01 09:50:39 · 844 阅读 · 0 评论 -
HDFS设计思想和相关概念
HDFS(Hadoop Distributed FileSystem),是Hadoop项目的两大核心之一,源自于Google于2003年10月发表的GFS论文,是对GFS的开源实现。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS在设计之初,就是要运行在通用硬件(commodity hardware)上,即廉价的大型服务器集群上,因此,在设计上就把硬件故障作为一种常态来考虑,可以保证在部分硬件发生故障的情况下,仍然能够保证文件系统的整体可用性和可靠性。原创 2020-07-01 09:51:05 · 332 阅读 · 0 评论 -
Hadoop集群的四个配置文件的常用属性解析
在启动hadoop集群的守护线程时,一定会加载并运行相关的class字节码文件。通过common模块和hdfs模块里的源码可以看到,它们读取了相关的配置文件。那么,今天,我们就来了解一下hadoop的默认配置文件(core-default.xml、hdfs-default.xml、mapred-default.xml、yarn-default.xml)里的内容。原创 2020-07-01 09:51:20 · 555 阅读 · 0 评论 -
hive的窗口函数详解
如: over(partition by col order by range between 5 preceding and 5 fllowing)如: over(partition by col order by rows between 1 preceding and 1 fllowing)2、 逻辑窗口(满足条件上下多少行):(金融行业、保险行业、p2p等)注意:窗口函数一般不和group by搭配使用。hive的窗口函数咱们就介绍到这儿啦。原创 2020-07-06 10:42:18 · 1449 阅读 · 0 评论 -
hive LZO压缩
centos6.5hadoop2.7.12.7.*即可hive2.3.6lzo2.10需要独立安装。安装的细节不在本文档中进行叙述。但是我这里讲解下安装过程。为了使它成为LZO文件,我们可以使用lzop应用程序,它将创建一个名字类似。把这个文件拷贝到HDFS中。要在Hadoop集群中每个节点里安装。假设一个有三列的简单数据文件。原创 2020-07-07 10:37:10 · 1151 阅读 · 0 评论 -
hive常用内部函数
【代码】hive常用内部函数。原创 2020-07-07 10:37:32 · 1449 阅读 · 0 评论 -
hive存储过程
【代码】hive存储过程。原创 2020-07-07 10:39:48 · 1026 阅读 · 0 评论 -
flink的基础介绍
Flink 学习资料官方文档 :https://flink.apache.org Flink 中文社区视频课程:https://github.com/flink-china/flink-training-course Flink 中文社区 :https://www.slidestalk.com/FlinkChina ververica 教程 :https://training.ververica.com/ ververica 教程中文文档:https://ci.apache.org/projec原创 2020-07-08 10:40:30 · 1004 阅读 · 1 评论 -
Flink local模式部署
Flink local模式部署flink的local模式运行在单个jvm中。同时local方便快速测试。需求:Java 1.8.xor higher, ssh1、下载https://flink.apache.org/downloads.html2、解压[root@hadoop01 local]# tar -zxvf /home/flink-1.9.1-bin-scala_2.11.tgz -C /usr/local/[root@hadoop01 local]# cd ./f.原创 2020-07-08 10:40:41 · 1163 阅读 · 1 评论 -
flink的基础介绍
Flink 学习资料官方文档 :https://flink.apache.org Flink 中文社区视频课程:https://github.com/flink-china/flink-training-course Flink 中文社区 :https://www.slidestalk.com/FlinkChina ververica 教程 :https://training.ververica.com/ ververica 教程中文文档:https://ci.apache.org/projec原创 2020-07-08 10:40:58 · 1039 阅读 · 1 评论 -
大数据BI可视化应用介绍
大数据两大应用AI和BI,而可视化则属于BI,是两大应用之一!统看业界可视化BI可视化工具可大致分为:开源bi、商业bi和自研。数据可视化更是大数据『最后一公里』!原创 2020-07-08 10:41:15 · 1086 阅读 · 1 评论 -
大数据BI可视化应用介绍
大数据两大应用AI和BI,而可视化则属于BI,是两大应用之一!统看业界可视化BI可视化工具可大致分为:开源bi、商业bi和自研。数据可视化更是大数据『最后一公里』!原创 2020-07-08 10:43:02 · 1000 阅读 · 1 评论 -
带你从零学大数据系列之数据库篇---第一章:MySQL基础
(Database Management System, 简称DBMS):指的是一种用来管理和操作数据的大型软件,用于建立、使用、维护数据,对数据库进行统一的管理和控制,以保证数据的完整性和安全性。(Data Base,简称DB):长期保存在计算机的存储设备上,数据按照一定的规则组织起来,可以被各种用户、应用共享的数据集合。SQL是一种标准化的语言,允许你在数据库上进行操作,如:创建项目、查询内容、更新内容和删除内容等操作。表:数据在数据库中的存储是以表的形式存在的。2.以管理员的身份运行命令行。原创 2020-07-09 10:06:41 · 981 阅读 · 0 评论 -
疯狂Hadoop之分布式集群搭建(一)
Hadoop是apache旗下一个用java语言实现的开源软件框架,是一个开发和运行处理大规模数据的软件平台。允许使用简单的编程模型在大量的计算机集群上对大型数据集进行分布式处理Hadoop组件核心有HDFS(分布式文件系统):解决海量数据存储YARN(作业调度和集群资源管理的框架):解决资源任务调度MAPREDUCE(分布式运算编程框架):解决海量数据计算Hadoop集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起。原创 2020-07-10 11:17:27 · 1049 阅读 · 0 评论 -
对称加密和非对称加密的优缺点
对称加密是一种广泛应用的加密方法,它使用相同的密钥进行加密和解密。这种加密方法不仅是最简单和最快速的加密方法之一,还是目前最常见的加密方法之一。对称加密的主要作用是保护数据的机密性和完整性。它可以防止未经授权的人读取、修改或篡改数据。就像我们日常生活中常用的密码一样,对称加密算法也是一种非常有效的加密方式,因为它可以快速加密大量数据,同时保障数据的安全性。对称加密通常用于保护机密信息,例如个人身份信息、银行账户信息等。在计算机网络中,对称加密通常用于保护数据传输的机密性。原创 2023-07-27 10:50:17 · 4202 阅读 · 0 评论 -
sqoop安装部署教程
先把spoop的安装包 sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 拷贝在系统目录下的 /root/softwares下面。因为我们现在通过JDBC让MySql和HDFS等进行数据的导入导出,所以我们先必须把JDBC的驱动包拷贝到。注意:在安装Sqoop之前要配置好本机的Java环境和Hadoop环境。原创 2023-07-18 09:28:27 · 5218 阅读 · 0 评论 -
3分钟带你了解Hadoop
Hadoop的架构可以划分为两个主要部分,一个是HDFS,它负责存储数据,另一个是MapReduce,它负责处理数据。HDFS有一个主节点和多个从节点,主节点负责管理从节点,从节点负责存储数据和处理数据。Hadoop框架包括一个分布式文件系统(HDFS),它允许用户以分布式方式存储和管理大量数据,以及一个MapReduce编程模型,它可以将复杂的计算任务分解为可以并行运行的任务。Hadoop的分布式架构可以提高计算效率,支持海量数据的存储和处理,提供高可用性和容错性,并且可以更快的处理大数据。原创 2023-02-27 14:56:19 · 1871 阅读 · 0 评论 -
分布式存储Ceph
出现Ceph开源社区版本和Redhat企业版。HDFS(Hadoop Distributed File System)是一个分布式文件系统,是hadoop生态系统的一个重要组成部分,是hadoop中的的存储组件.HDFS是一个高度容错性的系统,HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。Ceph主要设计的初衷是变成一个可避免单节点故障的统一的分布式文件系统,提供较好的性能、可靠性和PB级别的扩展能力,而且是一种开源自由软件,许多融合的分布式文件系统都是基于Ceph开发的。原创 2020-10-16 11:17:15 · 8203 阅读 · 0 评论 -
实时计算引擎Spark笔试题:一些常见的比较总结
reduceByKey 可以接收一个 func 函数作为参数,这个函数会作用到每个分区的数据上,即分区内部的数据先进行一轮计算,然后才进行 shuffle 将数据写入下游分区,再将这个函数作用到下游的分区上,这样做的目的是减少 shuffle 的数据量,减轻负担。groupByKey 不接收函数,Shuffle 过程所有的数据都会参加,从上游拉去全量数据根据 Key 进行分组写入下游分区,这样会消耗比较多的资源,数据传输会导致任务处理的延迟。原创 2020-12-17 16:51:06 · 235 阅读 · 0 评论 -
实时计算引擎Spark笔试题:Spark Catalyst 查询优化器原理
比如Join算子,Spark根据不同场景为该算子制定了不同的算法策略,有BroadcastHashJoin、ShuffleHashJoin以及SortMergeJoin等(可以将Join理解为一个接口, BroadcastHashJoin是其中一个具体实现),物理执行计划实际上就是在这些具体实现中挑选一个耗时最小的算法实现,这个过程涉及到基于代价优化(CBO)策略,所谓基于代价 , 是因为物理执行计划的每一个节点都是有执行代价的,这个代价主要分为两部分。2.常量累加,如下图。3.列值裁剪,如下图。原创 2020-12-17 16:51:12 · 244 阅读 · 0 评论 -
实时计算引擎Spark笔试题:Spark Streaming 反压机制(Back Pressure)
Spark Streaming 反压机制是1.5版本推出的特性,用来解决处理速度比摄入速度慢的情况,简单来讲就是做流量控制。当批处理时间(Batch Processing Time)大于批次间隔(Batch Interval,即BatchDuration)时,说明处理数据的速度小于数据摄入的速度,持续时间过⻓或源头数据暴增,容易造成 数据在内存中堆积,最终导致Executor OOM。反压就是来解决这个问题的。spark streaming的消费数据源方式有两种:1. 若是基于Receiver的数据源,原创 2020-12-17 16:51:20 · 286 阅读 · 0 评论 -
实时计算引擎Spark笔试题:Spark Shuffle 机制
说明:Spark是目前大数据中非常流行的运算框架,Spark的Shuffle机制是完成运算最重要的一环,面试时经常会被问到.在Spark中,Shuffle分为map阶段和reduce阶段,也可称之为shuffle write和shuffle read阶段,Spark在1.1以前的版本一直是采用Hash Shuffle的实现的方式,到1.1版本时参考Hadoop MapReduce的实现开始引入Sort Shuffle,在1.5版本时开始Tungsten钨丝计划,引入UnSafe Shuffle优化内存及原创 2020-12-18 10:34:56 · 220 阅读 · 0 评论 -
实时计算引擎Spark笔试题:Spark 内存管理模型&动态内存管理
1.设定基本的存储内存和执行内存区域(spark.storage.storageFraction参数),该设定确定了 双方各自拥有的空间的范围。4.存储内存的空间被对方占用后,无法让对方“归还”,因为需要考虑Shuffle过程中的很多因素,实现起来较为复杂。3.执行内存的空间被对方占用后,可让对方将占用的部分转存到硬盘,然后“归还”借用的空间。2.双方的空间都不足时,则存储到硬盘;若己方空间不足而对方空余时,可借用对方的空间;(存储空间不足是指不足以放下一个完整的Block)。原创 2020-12-18 10:35:07 · 266 阅读 · 1 评论 -
消息系统Kafka笔试题:Kafka 底层的文件存储结构
如何根据Offset来查找一条消息: 根据指定的偏移量,使用二分法查询定位出该偏移量对应的消息所在的分段索引文件和日志数据文件。然后通过二分查找法,继续查找出小于等于指定偏移量的最大偏移量,同时也得出了对应的Position(实际物理位置),根据该物理位置在分段的日志数据文件中顺序扫 描查找偏移量与指定偏移量相等的消息。下面是Kafka中分段的日志数据文件和偏移量索引文件的对应 映射关系图(其中也说明了如何按照起始偏移量来定位到日志数据文件中的具体消息)转载 2020-12-31 14:40:26 · 343 阅读 · 0 评论 -
消息系统Kafka笔试题:kafka 高效读写的因素
kafka 生产者写数据是有序的,即 Partition 内部有序,数据以 append 的方式顺序追加写入。Consumer 消费数据也是有序的,指定 offset 后顺序读出 offset 之后的数据。没有 GC,减少开销,即使 Kafka 重启PageCache 还在,回收 PageCache 的代价小,而且只要生产者与消费者的速度相差不大,消费者会直接读取之前生产者写入 Page Cache 的数据,没有磁盘 IO。举个例子说明传统IO流程,比如:从磁盘读取数据,然后从Socket发送到网络。转载 2020-12-31 14:40:39 · 254 阅读 · 0 评论 -
数据库编程之SQLite(一)
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。原创 2020-07-21 13:26:18 · 923 阅读 · 0 评论