2019-04-17 23:12:32 capsicum29 阅读数 377
  • 大数据治理技术核心,可扩展的元数据架构设计

    那么该如何设计元数据管理的架构,才能最大程度地满足可扩展性?本次公开课将重点为大家讲解元数据架构设计的相关内容。第一部分:如何理解元数据这个比较抽象的概念?1、 如何理解元数据?2、 传统元数据与广义元数据之间有什么关系?

    4885 人正在学习 去看看 CSDN讲师

06、SQL Server大数据群集进阶--理解大数据构架

 

之前创建了一个SQL BigData群集,也进行了HDFS连接查询的操作,一切看起来都挺简单的,也能运行起来。但是也没发现有什么特别之处,与普通的SQL实例相比也好像没有区别。因此我们要更加深入的学习和剖析大数据群集。

大数据构架目标是实现大数据的导入、存储、管理、查询、分析、预测。

数据导入

首先需要完成数据的导入工作。在任何大型数据系统中, 您都需要一种将数据引入的方法。在某些情况下, 您将使用名为 "提取、转换和加载" (ETL) 的过程在传入或暂存数据的过程中编辑数据, 或者使用称为 "提取、加载和转换" (ETL) 的过程

ETL 的过程来说有很多方法实现。在SQL Server中有比如:

  • SSIS 实现数据的加载传输

  • 使用应用程序

  • 使用BCP

  • 使用数据工厂

本文不重点讨论数据的传输的工作,因此不一一做介绍。简单来讲,数据的装载工作就是将不同的数据安装你想需要的结果进行相应的转换、处理、保存的工作。

数据存储

大数据存储是一个很麻烦的事情,在关系数据库中一般来说超过TB级别的数据库并不多见,在实际上DBA也不会建议业务数据库过大,都会采取分库机制,讲历史库存放起来。尽量减小在线库的大小。这样加快查询速度,也减轻运维的难度。

但是大数据由于数据来源多样性,有结构化和非结构化的。同时由于分析的诉求,也需要存放足够多的历史数据,才能进行分析和预测。因此在大数据环境中数以PB级别的数据也是常见的。在现有的硬件条件和云计算环境下,存放PB级别的数据并不是难事。但是如何进行管理并且提供查询,这样变得非常困难。因此在设计中就会采用分布式的方式进行存放数据,并且用分布式计算方式进行查询。目前在大多数的情况下数据存放就需要有HDFS这样的技术来实现存储池。

由于 HDFS 是一个文件系统, 数据传输和存储中在很大程度上是将其用作挂载点使用。尽管 HDFS 系统的平台和位置会影响可用的选择, 但通常使用以下方法:

  • 如果您的 HDFS 挂载点是本地的, 则可以使用多个工具将数据传输到HDFS,包括将其作为文件系统挂接到Linux

  • 使用网络文件系统 (NFS)网关可以访问 HDFS 装入点

  • Python 代码装载 HDFS, 允许您以编程方式访问装入点。

  • 如果 HDFS 位于云中, 则每个提供程序都有访问该数据的方法。Microsoft Azure 有多种承载 HDFS 的方法, 将数据传输到 Azure 内几乎任何位置,常用方法是使用Azure 数据工厂。

计算

大数据处理最后是需要进行分析和预测的,这些工作都需要大量的计算能力。构架上都会使用分布式计算的方式去实现。 Windows 和 Linux (在 x86 体系结构中) 都是对称多处理系统, 这意味着所有处理器都是作为一个单元处理的。一般情况下, 分布式处理系统应该在 "头" 节点上有更大、更多的处理器。 但对于某些用途如深度学习或人工智能, 在环境中使用特定内置的处理器GPU, 在某些情况下如边缘计算,ARM 芯片可以发挥特定的任务。

内存

分布式处理系统中的存储节点需要少量内存, SQL Server BDC 中包含的框架 (Spark) 中的处理节点需要更多内存。Linux 和 Windows 都支持大量内存 , 并且不需要对内存进行特殊配置。

容器技术

大数据技术里面重要的技术实现是容器技术。 在之前的技术手段里面使用虚拟机尽量的去抽象出操作系统和应用,虚拟机的好处是提供了完整的操作系统,也能使用模板去部署应用,但是对于应用来讲不够灵活。

而在新的技术里面诞生了容器技术。容器技术里面现在通用的是Docker,Docker 容器由 Docker 运行引擎提供, 该引擎位于操作系统 (Windows 或 Linux) 之上。在此抽象中, 您不控制硬件或操作系统。容器中的内核非常小, 并且可以包含二进制文件, 如 Python、R、SQL Server 或其他二进制文件。包含其所有二进制文件的容器称为"Image"。(注: 容器映像内核可以在 Windows 或 Linux 上运行)

 

image 为应用程序将其与其他正在运行的进程隔离开来。它也是完全可移植的。你可以在一个系统上创建一个映像, 另一个系统只要安装了 Docker 运行时就可以运行它。容器也启动非常快, 很容易创建, SQL Server 就是可以部署再容器上.根据硬件资源量, 您可以随时运行多个容器。对于横向扩展系统, 容器允许仅使用声明性命令分发和控制完整的应用程序。

大数据群集技术:K8S

对于大数据系统, 拥有大量的容器对于分割用途和性能配置文件非常有利。但是, 处理许多容器映像, 允许持久存储, 并将它们互连用于网络和网络间通信是一项复杂的任务。Kubernetes是一个开源容器协调器, 它可以根据需要扩展容器部署。下表定义了一些重要的 Kubernetes 术语

组件 用途
集群 Kubernetes 群集是一组称为节点的计算机。控制群集节点称为主节点;其余节点是工作节点。 Kubernetes 主节点负责在节点之间分配工作, 并负责监测集群的运行状况。
节点 节点运行容器化的应用程序。它可以是物理计算机, 也可以是虚拟机。 Kubernetes 群集可以包含物理计算机和虚拟机节点的混合。
Pod Pod是部署的最小单位。Pod是一个由一个或多个容器和相关资源组成的逻辑组, 这些资源是运行应用程序所需的。每个Pod在节点上运行; 一个节点可以运行一个或多个Pod。Kubernetes 主机会自动将Pod分配给群集中的节点。

 

大数据群集分布式存储技术

正如您前面了解到的那样, 传统存储使用从操作系统到底层 I/O 系统的调用。这些文件系统要么直接连接到操作系统, 要么看起来是直接使用存储区域网络连接的。数据块由操作系统存储和管理。

对于大型横向扩展数据系统, I/O的安装点是另一个抽象。对于 SQL Server BDC, 最常用的横向扩展文件系统是Hadoop 数据文件系统 (Hdfs). HDFS 是一组 Java 代码, 它将不同的磁盘子系统收集到一个群集中, 该群集由各种节点组成-一个用于管理群集元数据的Namenode物理存储数据的 datanode 。文件和目录在 NameNode 上由一个称为inodes 的结构表示。Inode 记录权限、修改和访问时间以及命名空间和磁盘空间配额等属性。

 

对于容器等抽象, 存储成为一个问题, 原因有二:第一: 当删除容器时, 存储可能会消失, 其二""其他容器和技术则无法轻松地访问容器中的存储。

为了解决这个问题, Docker 实现了卷的概念, kubernetes 扩展了这一概念使用特定的协议和命令, Kubernetes (以及在特定的 Sql SERVER BDC) 将存储装载为持久卷, 并使用称为持久卷声明的构造来访问它。Kubernetes 卷是一个已装入的目录, 可供节点内的Pod中的容器访问。

 

大数据技术: 使用与控制

有三个主要工具和实用程序将用于控制 SQL Server 大数据群集:

  • kubectl

  • mssqlctl

  • Azure Data Studio

具体如何使用,在其他的文章中已有介绍。

SQL BigData构架理解

以上了解了关键的大数据的技术。现在来回顾SQL BigData的构架。回到之前的那张图:

从图上可以看到,从底层Kubernetes 管理的多个节点来承载整个平台,每个Node 可以看做一个虚拟机。总体构架上实现计算池、存储池、数据池。这些都由容器来承载。而每个池可以看做多个Pod的组成。

SQL BigData 大数据群集组件

上面的构架中可以看到的大概的组成,下面这张图能够更能理解大数据群集的组成和各组件之间的关系。大数据群集实现数据虚拟化功能, 可以在独立实例中使用 SQL Server 的大数据功能。为了执行横向扩展大数据, SQL Server 通过利用 Kubernetes 和其他几个组件来实现大数据群集。组件的目标主要实现对数据存储管理、计算、控制的能力。

因此主要的组件就是控制平面、计算平面、数据平面

 

控制平面: Kubernetes 组件

大数据环境模块中看到的, Kubernetes 中有多个组件可与 Sql server 大数据群集配合使用。这些组件用于管理和监视解决方案:

 

Kubernetes Master Node 在 K8S集群中的一个专用节点, 用于管理和控制 Kubernetes 群集。除了主节点之外, 控制安装在每个节点上的服务还包括*kublet, kube-proxy 和 Docker* runtime engine.
Apache Knox Apache Knox 网关是用于与群集的 REST Api 和 Ui 交互的应用程序网关。Apache Knox网关为 BDC 中的所有 REST 交互提供了一个单一的接入点。
Apache Livy Apache Livy 提交 Jobs to Apache Spark
Apache HIVE 分布式存储数据库存放 Spark 元数据
Grafana SQL 群集管理门户使用的可视化和仪表板系统。
*Kibana Kibana 是 SQL 群集管理门户使用的开源日志可视化和搜索插件。

 

控制平面: 控制器服务

SQL Server BDC 中的控制器是使用mssqlctl实用程序部署的服务。它将与 SQL Server、Kubernetes、Spark 和 HDFS 的交互联系起来。

控制器服务提供以下核心功能:

  • 管理群集生命周期: 群集引导 & 删除、更新配置

  • 管理主 SQL Server 实例

  • 管理计算、数据和存储池

  • 公开监视工具以观察群集的状态

  • 公开故障排除工具以检测和修复意外问题

  • 管理群集安全: 确保群集终结点的安全, 管理用户和角色, 为群集内通信配置凭据

  • 管理升级的工作流程, 使其安全实施

  • 管理群集中状态服务的高可用性和灾难恢复

您有两种使用控制器服务的方法: mssqlctl 实用程序和*Cluster Adminnstration Portal。与控制器服务的所有通信都是通过 HTTPS 上的 REST API 进行的。自签名证书将在引导时自动生成。对控制器服务端点的身份验证基于用户名和密码。这些凭据是在群集引导时使用环境变量输入进行配置的。

这些组件在 SQL Server 大数据群集的控制器中使用:

SQL Server 2019 控制器服务 为大型数据群集提供横向扩展计算资源。
   

 

控制平面: SQL 服务器主实例

SQL Server 主实例是在 Kubernetes 群集中的节点上的一个Pod中安装 SQL Server 2019。可以使用与任何 SQL Server 实例相同的方式访问它, 并将其用于OLTP、OLAP 或其他类型的工作负载。它已经配置了机器学习服务, 因此您可以使用全部 R、Python 和 Java 来处理群集环境中的数据。

主实例存储的元数据超出了 HIVE 存储的元数据的范围。它还包含 PolyBase 定义表, 除了标准的 SQL Server 系统数据库外, SQL 主实例还包含以下内容:

  • 包含 hdfs 表元数据的元数据数据库

  • 数据平面分片地图

  • 提供对群集数据平面的访问的外部表的详细信息。

  • 在用户数据库中定义的多边形基外部数据源和外部表。

这些组件在 SQL Server 主实例的控制器中使用:

SQL Server 2019 主实例 SQL Server 主实例为群集提供了一个外部可访问的 TDS 终结点。
SQL Server 可扩展性框架 用于在 SQL Server 中执行 Java、R 和 Python 代码中的机器学习和其他功能。

 

计算平面: 计算池

计算池包含一个或多个 SQL Server Pod, 用于在 SQL Server 主实例的指导下进行分布式处理。它为 BDC 的分布式计算层对 polybase 连接器进行调用。

这些组件在 SQL Server 大数据群集的计算池中使用:

SQL Server 2019 为大型数据群集提供横向扩展计算资源。
   

 

计算平面: 应用池

应用程序池是节点内的一组 Pod, 它将多种类型的端点保存到系统中。SQL Server 集成服务位于应用池中, 其他作业系统也是可能的。您可以将长时间运行的作业 (如物联网流) 或机器学习 (ml) 终结点安装为实例, 用于为预测打分或返回分类。

这些组件在 SQL Server 大数据群集的计算池中使用:

Kubernetes Node 为操作大数据群集提供计算资源。
   

 

数据平面: 数据池

SQL Server 大数据群集中的数据池由一个或多个 SQL Server 数据池实例组成。SQL 数据池实例为群集提供持久的 SQL Server 存储。数据池用于从 SQL 查询或 Spark 作业中获取数据。为了在大型数据集中提供更好的性能, 数据池中的数据被分布到成员 SQL 数据池实例中的分片中。

 

 

这些组件在 SQL Server 大数据群集的数据池中使用:

Sqlserver 为大数据群集提供缩放的数据存储。
Polybase Feature 用于处理外部表。

 

数据平面: 存储池

存储池由 Linux 上的 SQL Server、Spark 和 HDFS 组成的存储节点组成。SQL 大数据群集中的所有存储节点都是 HDFS 群集中的成员。您可以将其用作 "数据湖" 构造, 以处理存储在不同数据源上的大量数据集。

在存储池内, 存储节点负责通过 Spark (Hdfs (Parquet 格式) 的数据存储) 接收数据。HDFS 还提供了数据持久性, 因为 HDFS 数据分布在 SQL 大数据群集中的所有存储节点上。存储节点还通过 HDFS 和 SQL Server 终结点提供数据访问。

 

 

这些组件在 SQL Server 大数据集集中的存储池中使用:

**HDFS SQL Server 和 Apache Spark 使用的分布式数据存储系统。
Apache Spark Apache Spark 是用于处理大规模数据的分析引擎。它可以与存储在 HDFS 中的数据一起使用, 并且还具有用于处理 SQL Server 中的数据的连接器。

 

总结

SQL Bigdata 使用K8s技术实现快速的部署,创建,也实现存储的管理。SQL Server 大数据群集允许你部署的 Kubernetes 上运行的 SQL Server、 Spark 和 HDFS 容器的可缩放群集。 并行运行这些组件,以使您能够读取、 写入,并处理从 TRANSACT-SQL 或 Spark 的大数据、 使您轻松合并和分析大数据大容量高价值关系数据。SQL Server 大数据群集提供在如何与你的大数据进行交互的灵活性。 您可以查询外部数据源,将大数据存储在 HDFS 由 SQL Server 或通过群集的多个外部数据源查询数据。 然后,您可以使用数据的 AI、 机器学习和其他分析任务。


作者简介: Max Shen(阿特),为了成为数据专家而努力,万一实现了呢!有多年的系统运维,数据库运维经验。近20年的IT从业经验,在微软有超过10年的工作经验。对数据库运维调优,排错,有独到能力。电话微信18628037379,maxcloud@outlook.com

 

2018-12-21 15:33:19 qq_43444478 阅读数 81
  • 大数据治理技术核心,可扩展的元数据架构设计

    那么该如何设计元数据管理的架构,才能最大程度地满足可扩展性?本次公开课将重点为大家讲解元数据架构设计的相关内容。第一部分:如何理解元数据这个比较抽象的概念?1、 如何理解元数据?2、 传统元数据与广义元数据之间有什么关系?

    4885 人正在学习 去看看 CSDN讲师

  想要学好大数据开发技术,除了必要的学习路线和学习视频教程之外,辅助我们深入学习理解的还有书籍。想深入理解大数据技术,有哪些书籍值得学习?下面千锋老师给大家推荐一些学习大数据的书籍,希望能对大家的学习带来一定的帮助。

  1、吴军的《智能时代》

  这本书从大数据讲起,深入浅出的向我们讲述了大数据与人工智能的发展历程,其中,对“大数据与商业、大数据和智能革命的技术挑战”的分析,充满了辩证的观点,能让人得到很大启发;而对  “未来智能化产业、  智能革命和未来社会”的探索和预测,也可以让我们了解今后智能科技发展的走向和热点,初步感知到由大数据和人工智能构建的未来生活会是什么样子的。

  2、《Big Data》

  在大数据的背景下,我很少看到关于数据建模,数据层,数据处理需求分析以及数据架构和存储实现问题。这本书却提供了令人耳目一新的全面解决方案。

  但不可忽略的是,它也引入了大多数开发者并不熟悉的、困扰传统架构的复杂性问题。本书将教你充分利用集群硬件优势的Lambda架构,以及专门用来捕获和分析网络规模数据的新工具,来创建这些系统。

  3、《Hadoop权威指南》

  这本书英文版已经出到第3版了,中文版是第2版。这本书内容比较全面。缺点是废话太多,书太厚,例子复杂,代码没写全,有些地方的代码是低版本API。当然,在Hadoop快速发展的时代里,出现这些问题都是很正常的。我觉得等Hadoop稳定了,这本书继续改版的话,很有可能成为Hadoop的权威经典。

  4、《Learning Spark》

  《Spark 快速大数据分析》是一本为Spark  初学者准备的书,它没有过多深入实现细节,而是更多关注上层用户的具体用法。不过,本书绝不仅仅限于Spark 的用法,它对Spark  的核心概念和基本原理也有较为全面的介绍,让读者能够知其然且知其所以然。

  5、《Spark机器学习:核心技术与实践》

  以实践方式助你掌握Spark机器学习技术。本书采用理论与大量实例相结合的方式帮助开发人员掌握使用Spark进行分析和实现机器学习算法。通过这些示例和Spark在各种企业级系统中的应用,帮助读者解锁Spark机器学习算法的复杂性,通过数据分析产生有价值的数据洞察力。

  大数据终将主宰经济社会,消除个体差异,成就一元化的经济体系。当前作为学习大数据技术的一个良好契机,更应当机立断,抓住机遇就等于抓住未来!

2018-01-26 21:45:25 duan_zhihua 阅读数 247
  • 大数据治理技术核心,可扩展的元数据架构设计

    那么该如何设计元数据管理的架构,才能最大程度地满足可扩展性?本次公开课将重点为大家讲解元数据架构设计的相关内容。第一部分:如何理解元数据这个比较抽象的概念?1、 如何理解元数据?2、 传统元数据与广义元数据之间有什么关系?

    4885 人正在学习 去看看 CSDN讲师

Spark视频王家林大神第8课:彻底理解大数据机器学习

本节带领大家快速理解大数据机器学习:第一个问题:机器学习是什么?第二个问题:大数据机器学习到底是什么?

先想一下人正常思考的过程:根据自己的历史经验或者生活经验得出了某种规律,然后在当前的情况下,根据历史经验或者规律来预测当前的情况,下一步该怎么做,这个描述人的思考过程其实就是机器学习的过程。我们可以发现规律或者模型以及当前的情况,规律其实就是模型,当前的情况就是当前具体的数据,根据当前不同的情况结合规律,得出不同的结论来指导下一步的行为,这是数据驱动的决策方式,跟我们编程的时候第一条指令,第二条指令,第三条指令得出一个结果,这是完全不一样的。

机器学习的过程是基于数据统计学的理论得出影响结果的几个变量,变量包括因变量、自变量。例如预测房价,根据房价过去波动的因素判断一下哪些因素影响房价,得出一个影响房价的模型,假设买/卖房子会得出几个变量,当然这几个变量不会那么单一,可以使用回归的方式去处理,计算出模型以后,具体某个地方的房子和具体某个时间去预测房价,机器学习也是从数据中得出某种模型,模型由变量构成,变量变成某种公式,公式就变成某种模型,8月份和10月份的房价是不一样的,不一样是由8月份和10月份的时间,以及经济情况和人们购买力、市场的细节信息决定的,首先是构建一个模型,然后根据当前具体的情况决策出具体房价的过程就是机器学习的过程。机器学习和人的决策过程是一样的,根据过去的数据得出某个模型,模型有个输入就是当前的情况,例如计算今天的房价或这个月的房价,情况不一样得出的房价就不一样,这就是机器学习。

为什么大数据机器学习特别重要呢?无论建立模型还是得出预测结果,都与数据紧密相关,是一个数据驱动的过程,数据显然是一个大数据、分布式的数据,数据更多,经验会更多,得出的模型一般会更合理,当前情况如果有更多的数据,基于我们的模型得出的结论一般也会更准确。所以,大数据机器学习是不可错过的机器学习的领域和范畴,大数据机器学习非常重要,例如电商网站、导航、语音、图像识别背后越来越多的是大数据。
2016-07-29 22:03:45 duan_zhihua 阅读数 648
  • 大数据治理技术核心,可扩展的元数据架构设计

    那么该如何设计元数据管理的架构,才能最大程度地满足可扩展性?本次公开课将重点为大家讲解元数据架构设计的相关内容。第一部分:如何理解元数据这个比较抽象的概念?1、 如何理解元数据?2、 传统元数据与广义元数据之间有什么关系?

    4885 人正在学习 去看看 CSDN讲师

第8课:spark机器学习第8课:王家林带您1分钟内彻底理解大数据机器学习
1 30秒钟彻底理解机器学习
2 30秒钟彻底理解大数据机器学习
 

 

 

机器学习和人的学习一样的。

 

变量-公式-模型-预测

 

大数据-分布式-计算更合理

2017-05-02 15:49:00 weixin_34223655 阅读数 188
  • 大数据治理技术核心,可扩展的元数据架构设计

    那么该如何设计元数据管理的架构,才能最大程度地满足可扩展性?本次公开课将重点为大家讲解元数据架构设计的相关内容。第一部分:如何理解元数据这个比较抽象的概念?1、 如何理解元数据?2、 传统元数据与广义元数据之间有什么关系?

    4885 人正在学习 去看看 CSDN讲师

本节书摘来自华章社区《大数据导论》一书中的第1章理解大数据,作者瓦吉德·哈塔克(Wajid Khattak),保罗·布勒(Paul Buhler),更多章节内容可以访问云栖社区“华章社区”公众号查看

第1章
理解大数据
大数据是一门专注于对大量的、频繁产生于不同信息源的数据进行存储、处理和分析的学科。当传统的数据分析、处理和存储技术手段无法满足当前需求的时候,大数据的实践解决方案就显得尤为重要。具体地说,大数据能满足许多不同的需求,例如,将多个没有联系的数据集结合在一起,或是处理大量非结构化的数据,抑或是从时间敏感的行为中获取隐藏的信息等。
虽然大数据看起来像是一门新兴的学科,却已有多年的发展历史。对大型数据集的管理与分析是一个存在已久的问题—从利用劳动密集方法进行早期人口普查的工作,到计算保险收费背后的精算学科,都涉及这个方面的问题,大数据就由此发展起来。
作为对传统的基于统计学分析方法的优化,大数据加入了更加新的技术,利用计算资源和方法的优势来执行分析算法。在当今数据集持续地扩大化、扩宽化、复杂化和数据流化的背景之下,这种优化十分重要。自《圣经》时代以来,统计学方法一直在告诉我们通过抽样调查的手段能够粗略地测量人口。但计算机科学目前的发展使我们完全有能力处理那样庞大的数据集,因此抽样调查的手法正在逐渐“失宠”。
对于大数据的数据集的分析是一项综合数学、统计学、计算机科学等多项专业学科的跨学科工作。这种多学科、多观点的混合,常常会使人对大数据及大数据分析这门学科所涵盖的内容产生疑问,每个人都会有不同的见解。大数据问题所涵盖的内容范围也会随着软硬件技术的更新而变化。这是因为我们在定义大数据的时候考虑了数据特征对于数据解决方案本身的影响。比如30年前,1GB的数据就称得上是大数据,而且我们还会为这份数据专门申请计算资源,而如今,1GB的数据十分常见,面向消费者的设备就能对其进行快速的存储、转移、复制或者其他处理。
大数据时代下的企业数据,常常通过各种应用、传感器以及外部资源聚集到企业的数据集中。这些数据经过大数据解决方案的处理后,能够直接应用于企业,或者添加到数据仓库中丰富现有的数据。这种大数据解决方案处理的结果,将会给我们带来许多深层知识和益处,例如:
运营优化
可实践的知识
新市场的发现
精确的预测
故障和欺诈的检测
详细的信息记录
优化的决策
科学的新发现
显然,大数据的应用面和潜在优势十分广阔。然而,在何时选用大数据分析手段的问题上,还有大量的问题需要考虑。当然,我们需要去理解这些存在的问题,并与大数据的优势进行权衡,最终才能做出一个合理的决策并提出合适的解决方案。这些内容我们将在第二部分单独讨论。

没有更多推荐了,返回首页