大数据核心技术详解与数仓体系架构学习指南
3。大数据中的核心技术是什么?4。大数据下的数字仓库架构
5。学习指南
11。序言
朋友经常留言并向我发送有关我有关大数据的学习路线的私人消息,并咨询我有关我的工作经历的问题,并希望通过大数据改变职业。我无法用几句话清楚地解释它。我花了一个多月的时间组织大数据。学习路线始于最基本的大数据集群结构,从浅层到深,我希望它可以帮助所有人。
但是,在开始之前,我仍然希望每个人都能清楚地思考。如果您感到困惑,为什么要朝着大数据的方向发展?我想问一下,您的专业是什么?对于计算机/软件,您的兴趣是什么?
您是计算机专业,对操作系统,硬件,网络和服务器感兴趣吗?您是软件专业的专业,对软件开发,编程和编写代码感兴趣吗?还是主修数学和统计,您对数据和数字特别感兴趣?
欢迎每个人在评论区域留言进行讨论(•̀Ω•́)
这实际上影响了大数据的三个发展方向:
如今,为了处理大数据的这些特征,有越来越多的开源大数据框架,我们将首先列出一些常见的数据:
文件存储:HDFS,KFS
离线计算:火花
流媒体,实时计算:风暴,火花,闪烁
KV,NOSQL数据库:HBASE,REDIS,
资源管理:纱,梅索斯
日志收集:水槽,
消息系统:卡夫卡,
查询分析:蜂巢,猪,钻,flink,kylin,druid
分布式协调服务:
集群管理和监视:
数据挖掘,机器学习:Spark mllib
数据同步:SQOOP
任务计划:Oozie
...
令人眼花其中有30多个。更不用说精通了,我可以全部使用它们,也许不是很多。
就个人而言,我主要朝着第二个方向(开发/设计/体系结构),因此我将从大数据开发的历史开始。由于我的经验有限,本文的内容是指圈子中许多老师的观点,以供您参考和相互学习。
2。大数据发展的历史
在近三十年的发展中,大数据已经经历了5个阶段。
2.1启蒙阶段:数据仓库的出现
在1990年代,商业智能(即,我们熟悉的BI系统)诞生了,这将公司的现有业务数据转化为知识,以帮助老板做出业务决策。例如,在零售方案中:有必要分析产品的销售数据和库存信息,以制定合理的采购计划。
显然,商业智能不能与数据分析分开。它需要从多个业务系统(例如交易系统和仓储系统)中汇总数据,然后进行大量数据量的查询。传统数据库全部添加,删除,修改和检查单个业务,该业务无法满足此要求,这促使了数据仓库概念的出现。
传统数据仓库首次确定了数据分析的应用程序方案,并采用了单独的解决方案来实施它们而不依赖业务数据库。
2.2技术变革:出生
大约在2000年,PC互联网时代到达,也带来了大量信息。两个典型特征:
显然,传统数据仓库无法支持互联网时代的商业智能。 2003年,发表了三篇原始论文(通常称为“ 的三匹马”),包括:分布式处理技术,柱状存储和分布式文件系统GFS。这三篇论文奠定了现代大数据技术的理论基础。
因为我们没有这三种产品的源代码,所以我们刚刚发布了详细的设计论文。 2005年,雅虎根据这三篇论文资助了开源的实施,这一技术变革正式启动了大数据时代。
与传统数据仓库相比,有以下优点:
随着技术的成熟,在2010年世界大会提出了“数据湖”的概念。
关于数据湖泊的理论,您可以阅读我的博客。
对数据湖的初步探索,什么用?让我们瞥见发生的事情...
企业可以根据数据的使用来构建数据湖泊,并将数据用作企业的核心资产。结果,数据湖为商业化打开了窗帘。
2.3数据工厂的时代:大数据平台的兴起
商业用途包括以上十种技术,整个数据研发过程非常复杂。为了完成数据要求的开发,它涉及一组完整的过程,例如数据提取,数据存储,数据处理,数据构建,多维分析和数据可视化。这个高技术阈值显然会限制大数据技术的普及。
目前,大数据平台(平台作为服务理念,PAAS)成为现实。它是研发方案的完整解决方案。它可以大大提高数据的研发效率,并允许像组装线一样快速处理数据。原始数据成为指标,并显示在每个报告或数据产品中。
2.4数据价值时代:阿里巴巴提出了数据中间平台
在2016年左右,它已成为移动互联网的时代。随着大数据平台的普及,已经创建了许多大数据应用程序方案。
目前,开始暴露一些新问题:为了快速意识到业务需求,烟囱开发模型已导致不同业务线上的数据完全分离,这导致了大量数据的重复开发指标不仅具有较低的研发效率,而且浪费了存储和计算资源,使大数据的应用成本越来越高。
有远见的杰克·马(Jack Ma)的父亲目前大喊“数据中间平台”的概念,口号“一个数据,一个”开始在整个大数据世界中响起。数据中间站的核心思想是:避免重复数据计算,提高数据共享功能并通过数据服务增强业务。
对于阿里巴巴数据中间车站,您可以参考从老师谭胡和陈诺的转载的这篇文章:
3。大数据中的核心技术是什么?
大数据的概念是相对抽象的,大数据技术堆栈的重要性会让您感到惊讶。
大数据技术的系统是巨大而复杂的。基本技术包括各种技术类别和不同的技术级别,例如数据收集,数据预处理,分布式存储,NOSQL数据库,数据仓库,机器学习,并行计算,可视化等。首先,提供了广义的大数据处理框架,哪个主要分为以下方面:数据收集和预处理,数据存储,数据清洁,数据查询分析和数据可视化。
https://img1.baidu.com/it/u=1983347923,3113266999&fm=253&fmt=JPEG&app=138&f=JPEG?w=525&h=500
通过上述内容,您可能对大数据有初步的了解,下一步是核心部分,因为任何学习过程都需要科学合理的学习途径,以有序地实现我们的学习目标。学习大数据所需的内容是复杂且困难的,因此特别有必要拥有合理的大数据学习路线图来帮助您阐明您的想法。
1。Java语言
基于Java语言,您可以掌握面向对象的编程想法和面向对象的编程中所涉及的知识,然后您可以掌握主流开源框架(例如SSM和启动)。
2。mySQL数据库
MySQL数据库掌握了关系数据库的原理,主要编写各种复杂的SQL语句,这将使结果两倍,而HQL在后来的学习Hive Data 中的一半努力。
3。Linux操作系统
由于与大数据相关的软件在Linux上运行,因此Linux应该更固体。Linux井将有很大的帮助,可以快速掌握与大数据相关的技术,这可以帮助您更好地理解,Hive,HBase,操作环境和网络环境的配置,例如SPARK等大数据,可以减少许多陷阱。学习要外壳可以理解脚本,这使得更容易理解和配置大数据集群。
4。技术学习
这是一个流行的大数据处理平台,几乎已成为大数据的代名词,因此这是必须学习的。它包括几个组件HDF和纱线。
HDFS是存储数据的地方,就像我们的计算机的硬盘驱动器一样,文件存储在此处,并经过处理和计算。它的特征是,无论数据有多大,它都可以运行数据,但是时间可能不会很快,因此称为数据的批处理处理。纱线是反映平台概念的重要组成部分。借助其大数据生态系统,可以在其上运行其他软件,以便我们可以更好地利用HDFS大存储空间的优势并节省更多资源。例如,我们不必一个人。构建一个火花群,然后直接在现有的火花集群上运行。
4.1学习百度和
无论您遇到什么问题,都尝试自己搜索和解决它们。首选是,如果您无法克服它,只需使用Baidu即可。
4.2参考材料的首选官方文件
特别是为了入门,官方文件始终是首选文件。我相信大多数这样做的人都是文化人,只要用英语来做。如果您真的无法忍受,请参考第一步。
4.3让我们先运行
它可以被视为大数据存储和计算的创始人。如今,大多数开源的大数据框架都依赖或与之兼容。
关于,您至少需要弄清楚以下是什么:
1.0、2.0,HDFS,纱,,
自己构建,请使用第一步和第二步,只需进行运行即可。建议使用安装程序包命令行首先安装,并且不要使用管理工具安装。另外:只知道它。0,现在您使用2.0。
4.4尝试使用
HDFS目录操作命令;上传和下载文件命令;提交运行样本程序;打开Web界面以查看工作运行状态,并查看运行日志的作业。您知道的系统日志在哪里。
4.5是时候让您了解他们的原则了
:如何分裂和征服; HDFS:数据到底在哪里,什么是副本;什么是纱线,可以做什么?它在做什么;它在做什么;
4.6自己写一个程序
请按照示例,亲自编写(复制)程序,包装并提交运行。您不知道该怎么办?外壳,这是。如果您认真地完成了上述步骤,请恭喜,您的一只脚已经进来了。现在,这是我的特殊博客系列。我希望它可以帮助您与怪物战斗! ...(* ̄0 ̄)ノ
【】(i)分布式文件系统HDFS
【】(ii)分布式安装
【】(iii)资源经理纱线和分布式计算框架
【】(iv)序列化和序列化案例实践
【】(v)如何解决数据倾斜的问题
【】(vi)HDFS数据流的详细说明(访谈重点)
【】(vii)纱线详细说明
我不会一个一个一个大数据技术堆栈的主题博客,它们都是实用的!
5。数据仓库蜂巢
对于了解SQL语法的程序员来说,这只是一个神奇的工具。它可以使处理大数据非常简单,您将不必再编写程序更麻烦了。
通过以前的学习,我们了解到HDFS是提供的分布式存储框架,可用于存储大量数据和提供的分布式计算框架,可用于计数和分析HDFS上的大量数据,而Hive是SQL在。 Hive提供了一个SQL接口。开发人员只需要编写简单易用的SQL语句即可。 Hive负责将SQL转化为提交和运行。
简而言之,蜂巢的基础层是您只需要写HQL(与SQL没有太大不同),就完成了! σ(っ°°;)っ
-------> Hive系列主题(重要)
目前,您的“大数据平台”就是这样(•̀Ω•́)
6。数据采集SQOOP / FLUME / DATAX
SQOOP主要用于在MySQL中导入数据。当然,您也不能使用它。如果将MySQL数据表导出到文件中,然后将其放在HDFS上,则相同。当然,在生产环境中使用MySQL时,您应该注意MySQL的压力。
Flume是一个分布式的大量日志收集和传输框架。由于“获取和传输框架”,它不适用于关系数据库的数据收集和传输。 Flume可以实时从网络协议,消息系统和文件系统中收集日志,并将其传输到HDFS。因此,如果业务具有来自这些数据源的数据,并且需要实时收集,则应考虑Flume。
阿里巴巴的开源数据也非常有用。如果您有兴趣,可以学习和使用它。
-------> Flume系列主题
--------> SQOOP系列主题
如果您目前已经完成了上述学习,那么您的“大数据平台”应该是这样(^∀^)ノk
7.得到更快的火花
实际上,每个人都发现使用蜂巢背景作为执行引擎确实很慢。 Spark SQL开始弥补数据处理速度的缺点。它的特征是将数据加载到内存中以计算而不是读取染色体进化且非常缓慢的慢硬盘。
它特别适合迭代操作,因此算法流特别粥。它用Scala编写。 Java语言或Scala都可以操作它,因为它们都使用JVM。
您还需要:
你有点惊慌吗?哈哈哈,慢慢学习,火花非常重要! (;程度)ゞ
-------> Spark SQL系列主题
顺便说一句,别忘了,您需要熟悉(掌握)两种新语言,然后感到惊讶! (ಥ_ಥ)
------->基本的主题系列
https://img1.baidu.com/it/u=2167740133,4127223845&fm=253&fmt=JPEG&app=138&f=JPEG?w=787&h=500
-------> Scala 系列主题
8。数据传输Kafka
这是一个相对易于使用的队列工具。什么是队列?您知道您是否正在排队购买门票?如果数据太多,您还需要排队以对其进行处理。这样,与您合作的其他学生将无法打电话给我。您为什么要给我这么多数据(例如数百个G文件)我该如何处理?
不要怪他,因为他不是一个大数据人员。您可以告诉他,我将数据放在队列中,并在您使用时将其接一个地将其逐一接受,以便他不再抱怨。我将立即优化他的计划。 ,因为无法处理的是他的业务,而不是您给它的问题。嘿(▔,▔)ㄏ
目前,使用Flume收集的数据不是直接归HDF,而是针对Kafka。 KAFKA中的数据可以同时被多个消费者消费,其中一位消费者是将数据同步到HDFS。
当前,Flume + Kafka在实时流log处理中非常普遍。后来,通过流式处理技术,例如SPARK,可以完成实时分析和日志应用。
-------> KAFKA系列主题
如果您目前已经完成了上述学习,那么您的“大数据平台”应该是这样(^∀^)ノk
从以前的学习中,我掌握了大多数技能,例如大数据平台中的数据收集,数据存储,计算和数据交换。此步骤的每个步骤都需要一个任务(程序)来完成,并且每个任务也用于完成它。有某些依赖性。例如,数据计算任务必须在数据收集任务开始运行之前成功完成。如果任务未执行,则需要将警报发送到开发,操作和维护人员,并且需要提供完整的日志以促进错误检查。
10。任务安排Oozie /
不仅分析任务,数据收集和数据交换也是一个任务。这些任务中的一些是一次触发的,而其中一些任务需要依靠其他任务来触发。当平台上有数百或数千个需要维护和运行的任务时,仅依靠就足够了。目前,需要一个调度和监视系统来完成此操作。调度监视系统是整个数据平台的中央系统,类似于负责分配和监视任务的中心系统。
-------> Oozie系列主题
------->一系列主题
您的“大数据平台”已升级(ง•_•)ง!
11。实时数据处理flink/spark
早些时候谈论Kafka时,我提到了一些需要实时指标的业务场景。实时可以将实时分为绝对的实时和准真实时间。绝对的实时延迟要求通常位于毫秒级,准实时延迟要求通常在第二和微小的水平。
对于绝对需要实时的业务场景,风暴经常使用。对于其他准实时业务方案,可能是暴风雨或火花。简单的业务场景也可以处理Kafka。当然,现在最热的事情是flink。
你头晕?我应该如何选择这么多流媒体框架? ::> _ flink系列主题
--------> Spark系列主题
您的“大数据平台”变得更加强大(ˇ∀ˇ)!
此时,已经形成了大数据平台的基本体系结构,包括数据收集,数据存储和计算(离线和实时),数据同步,任务调度和监视。接下来,是时候考虑如何更好地向外界提供数据了。
12.数据外部(支持业务)
离线:例如,每天提供从前一天的数据到指定的数据源(DB,File,FTP)等。可以使用离线数据交换工具(例如SQOOP和Datax)提供离线数据。
实时:例如,在线网站的推荐系统需要实时从数据平台上获取推荐数据,并且此要求需要非常低的延迟(在50毫秒内)。
根据延迟要求和实时数据的查询需求,可能的解决方案包括:HBase,redis,等。
分布式数据库HBase,这是生态系统中的NOSQL数据库。它的数据以密钥和值的形式存储,而密钥是唯一的,因此可以用来列出数据。与MySQL相比,它可以存储。数据量大得多。因此,在完成大数据处理后,通常用于存储目的地。
了解其他分布式数据库技术,能够掌握分布式数据库,应用程序方案,HBase数据库的设计和操作等的原理,并能够使用Hive和其他工具来检索大量数据。
OLAP分析:除了要求基础数据模型相对标准化外,OLAP还需要更高的查询响应速度。可能的解决方案包括:,,,,,,,。如果您的数据模型相对较大,则Kylin是最佳选择。
广告查询:广告查询的数据相对休闲,通常很难建立一般数据模型。因此,可能的解决方案是:,,。
借助如此众多的成熟框架和解决方案,我们需要根据我们的业务需求和数据平台技术体系结构选择正确的框架。只有一个原则:越稳定,越越好。
-------> HBase系列主题
------->一系列主题
-------> Redis系列主题
基于上述技术堆栈,您已经可以完成大数据平台的一般体系结构。也许您是一个独自站立的人!吨吨( ̄ y, ̄)╭!
13。机器学习火花mllib
在我们的业务中,大约有三种类型的问题可以通过机器学习来解决:
简介学习路线:
机器学习确实很棒且高端,这也是我的学习目标。
在这一点上,您还可以将机器学习部分添加到“大数据平台”中。
------->基本的主题系列
--------> Spark Mllib系列主题
4。大数据下的数字仓库架构
从业务角度来看,数据仓库是数据组织的一种形式,这是大数据应用程序和数据中间平台的基础。仓库系统通常采用下图所示的层次结构。
根据这种分层方法,我们的发展重点是DWD层,即详细的数据层。这主要是一些宽桌子和存储的详细数据;当我们到达DWS层时,我们将为不同的维度汇总数据。 ,逻辑是,DWS层被认为是一个市场层,该市场通常根据主题分配,属于维度建模的类别;广告是应用层,是各种报告的输出。
------->数据仓库分层体系结构的一系列主题
------->与数据仓库理论相关的一系列主题
5。学习指南
页:
[1]