从零搭建企业大数据分析和机器学习平台-技术栈介绍(三)

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 从零搭建企业大数据分析和机器学习平台-技术栈介绍(三)

数据传输和采集


Sqoop数据传输工具

实际项目开发中,往往很多业务数据是存放在关系型数据库中,如 MySQL数据库。我们需要将这些数据集中到数据仓库中进行管理,便于使用计算模型进行统计、挖掘这类操作。


Sqoop是Apache软件基金会的⼀一款顶级开源数据传输工具,用于在 Hadoop与关系型数据库(如MySQL、Oracle、PostgreSQL等)之间进 行数据传递。它可以将关系型数据中的数据导⼊入到Hadoop的分布式文件 系统(HDFS)中,也可以将分布式文件系统(HDFS)中的数据导出到 关系型数据库中。


Flume日志收集工具

在实际项目中,有些源数据是以gz压缩格式存储在磁盘⽬目录上,并非存储 在数据库中。如需将这类源数据存储到分布式⽂文件系统(HDFS)上,可 以借助Flume这款Apache顶级的日志收集工具来完成。


Flume是⼀一个分布式、高可用、高可靠的系统,它能将不同的海量数据源收 集、传输、存储到一个数据存储系统中,如分布式⽂文件系统(HDFS)、发 布订阅消息系统(Kafka)。


Kafka分布式消息队列

Apache Kafka(http://kafka.apache.org)是LinkedIn公司设计和开发 的⾼高吞吐量的分布式发布订阅消息系统,其内在设计就是分布式的,具有良好的可扩展性。Kafka的创造者们在使⽤用 之前的一些消息中间件时,发现如果严格遵循JMS的规范,虽然消息投递的成功率非常之高,但是会增加不少额外的消耗,例如JMS所需的沉重消息头,以及维护各种索引结构的开销等。最终导致系统性能很难有 进一步的突破,不太适合海量数据的应用。因此,他们并没有完全按照 JMS的规范来设计Kafka,而是对⼀一些原有的定义做了简化,大幅提升了了处理性能,同时对传送成功率也有一定的保证。总体看来,Kafka有 如下特性。


高性能存储:通过特别设计的磁盘数据结构,保证时间复杂度为 O(1)的消息持久化,这样数以TB的消息存储也能够保持良好的稳定 性能。此外,被保存的消息可以多次被消费,用于商务智能ETL和其他 一些实时应⽤用程序。


天生分布式:Kafka被设计为一个分布式系统,它利用ZooKeeper来管理多个代理(Broker),支持负载均衡和副本机制,易于横向地扩 展。ZooKeeper旨在构建可靠的、分布式的数据结构,这里用于管理和协调Kafka代理。当系统中新增了代理,或者某个代理故障失效时, ZooKeeper服务会通知生产者和消费者,让它们据此开始与其他代理协调工作。


高吞吐量:由于存储性能的大幅提升,以及良好的横向扩展性,因此即使是非常普通的硬件Kafka也可以支持每秒数十万的消息流,同时为发布和订阅提供惊人的吞吐量。


无状态代理:与其他消息系统不同,Kafka代理是无状态的。代理不会记录消息被消费的状态,而是需要消费者各自维护。


主题(Topic)和分区(Partition):支持通过Kafka服务器和消费机集群来分区消息。一个主题可以认为是一类消息,而每个主题可以分成多个分区。通过分区,可以将数据分散到多个服务器上,避免达到单机瓶颈。更多的分区意味着可以容纳更多的消费者,有效提升并发消费的能力。基于副本方案,还能够对多个分区进行备份和调度。


消费者分组(Consumer Group)


数据存储

Hbase分布式Nosql数据库

在大规模的数据集中,考虑数据存储的高可用性、高吞吐量、半结构 化的数据、高效的查询性能等因素,一般的数据库很难满⾜足需求。有需求自然会有解决方案,HBase的诞生很好地弥补了这个缺陷。


HBase是⼀一个分布式的、面向列的开源非关系型数据库(NoSQL), 和Google的BigTable能力类似。HBase和一般的关系型数据库不同,它适合于存储非结构化的数据。 提示:BigTable是Google设计的分布式数据存储系统,⽤用来处理海量数据的⼀一种⾮非关系型的数据库(NoSQL)。 HBase拥有高可用性、高性能、面向列存储、可拓展等特性。利用 HBase的这些特性,可以在廉价的服务器上搭建⼀一套大规模的存储集群。


应用场景:


  1. 数据量大,并且访问需要满足随机、快速响应的需要。
  2. 需要满足动态扩容的需要。
  3. 不需要满足关系型数据库中的特性(如事务、连接、交叉表)。
  4. 写数据时,需要拥有高吞吐的能力。

Hdfs分布式文件系统

HDFS(Hadoop Distributed File System),作为Google File System(GFS)的实现,是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。它所具有的高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特征为海量数据提供了不怕故障的存储,为超大数据集(Large Data Set)的应用处理带来了很多便利。


大数据处理

Hadoop

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,它可以使用户在不了解分布式底层细节的情况下开发分布式程序,充分利用集群的威力进行高速运算和存储。 从其定义就可以发现,它解决了两大问题:大数据存储、大也就是 Hadoop的两大核心:HDFS和MapReduce。


今的Hadoop系统已经可以让使用者轻松地架构分布式存储平台了,开发和运行大规模的数据处理应用,其主要优势如下。


透明性:使用者可以在不了解Hadoop分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。


高扩展性:扩展分为纵向扩展和横向扩展,纵向扩展将增加单机的资源,总会达到瓶颈;而横向将增加集群中的机器数量,获得近似线性增加的性能,不容易达到瓶颈。Hadoop集群中的节点资源,采用的就是横向方式,可以方便地进行扩充,并获得显著的性能提升。


高效性:由于采用了多个资源并行处理,使得Hadoop不再受限于单机操作(特别是较慢的磁盘I/O读写),可以快速地完成大规模的任务。加上其所具有的可扩展性,随着硬件资源的增加,性能将会得到进⼀一步的提升。


高容错和高可靠性:Hadoop中的数据都有多处备份,如果数据发生丢失或损坏,能够自动从其他副本(Replication)进行复原。同理,失败的计算任务也可以分配到新的资源节点,进行自动重试。


低成本:正是因为Hadoop有良好的扩展性和容错性,所以没有必要再为其添置昂贵的⾼高端服务器。廉价的硬件,甚⾄至是个人计算机都可以成为资源节点。 HDFS(Hadoop Distributed File System)是可扩展、容错、高性能的分布式文件系统,异步复制,一次写入多次读取,主要负责存储。


Spark

Spark是由加州大学伯克利分校AMP实验室开源的分布式大规模数据处理通用引擎,具有高吞吐、低延时、通用易扩展、高容错等特点。 Spark内部提供了丰富的开发库,集成了数据分析引擎Spark SQL、图 计算框架GraphX、机器学习库MLlib、流计算引擎Spark Streaming。 Spark在函数式编程语⾔言Scala中实现,提供了丰富的开发API,支持 Scala、Java、Python、R等多种开发语言。同时,Spark提供了多种运行模式,既可以采用独立部署的方式运行,也可以依托Hadoop YARN、Apache Mesos等资源管理器调度任务运行。目前,Spark已经在金融、交通、医疗、气象等多种领域中广泛使用。


数据查询分析工具

Apache Hive

Apache Hive是建立在Hadoop上的数据仓库,它提供了一系列工具,可 以用来查询和分析数据。Hive提供了执行SQL的接口,⽤用于操作存储在 Hadoop分布式文件系统(HDFS)中的数据。


Hive可以将结构化的数据文件映射成为一张数据库表,并且提供了便捷 的SQL查询功能,开发者可以通过SQL语句将实现的业务功能转化为 MapReduce任务来运行。 Hive的学习成本较低,可以通过类SQL语句快速实现MapReduce统计任务,所以开发者不必开发专门的MapReudce应用,十分适合做数据仓库 的统计工作。 Hive定义了了类SQL的查询语句,称为HQL或者Hive SQL。它允许用户通 过编写SQL语句来实现查询、统计、表数据迁移等功能。同时,也允许 熟悉MapReduce的开发者编写自定义的Mapper和Reducer来实现复杂的 需求。 Hive数据仓库是构建在Hadoop的分布式文件系统(HDFS)之上,而 Hive底层的设计是通过MapReduce计算框架来执行用户提交的任务。因为MapReduce计算框架底层设计的原因,所以在操作数据仓库(Hive) 时具有较高的延时,并且在提交作业(Job)和调度(Scheduler)时需要大量的资源开销,因而Hive比较适合处理离线数据,如联机分析处理(OLAP)。


Pig、Impala和Spark SQL

除了Hive以外,还有一些其他的选择,可帮助用户更容易地使用 Hadoop中存放的数据,这里先简单阐述一下Pig、Impala和Spark SQL。从Hive的介绍中大家不难发现,要使用该工具,需要对类 SQL语言有比较深入的认识。然⽽而有些开发者,虽然对SQL不甚理解,但是擅于MapReduce的编程。那么,对于这些人群而言是否有工具能够提升他们的生产效率呢?Pig(http://pig.apache.org)就是在这样的背景下应运而生的,它也是Apache旗下的开源项目。很多时候数据的处理需要多个MapReduce过程才能实现,数据处理过程与可能的数据转换也可能很困难。而Pig 为大型数据集的处理提供了更高层次的抽象,以及更丰富的数据结构。从抽象层次来看,它提供了脚本语⾔言Pig Latin,该语言的编译 器会将数据分析请求转换成一系列经过优化处理的MapReduce运算,可以认为是SQL的一个面向过程的简化版本。其中,一条语句就是一个操作,与数据库的表类似。同时,Pig还拥有大量的数据类型,不仅支持包、元组和映射等高级概念,还支持简单的数据类型。Pig的比较运算符也相对完整,包括使用正则表达式的丰富匹配 模式。因此,有了Pig,用户不一定需要懂得SQL的语法和含义也能控制MapReduce的作业,同时又能简化MapReduce的开发和不同的数据之间的转换。


另一个执行于现有Hadoop基础设施上的互动SQL查询引擎是 Impala,它是Cloudera公司主导开发的查询系统。类似Apache Hive,Impala也能通过类SQL的语言查询存储在HDFS和HBase中的PB级大数据。不过,Impala考虑了实时性更强的需求,在设计上和Hive有所不同。Hive采用 的方法是SQL查询转化成MapReduce任务,这仍然是一个 批处理过程,故而难以满足查询的交互性。相比之下,Impala 的速度之快就成了它的一大特色。为了实现这一点,Impala参考了Google的交互式数据分析系统Dremel。Impala使用 Parquet实现了列存储,并借鉴了MPP并行数据库的思想。同 时,它采用HiveQL和JDBC等接口,进行全局统一的元数据存储和读取。对于用户查询则是直接进行分布式处理,在HDFS 或HBase上本地读写,因此具有良好的扩展性和容错性。此 外,由于放弃了MapReduce的运行框架,它也没有 MapReduce作业启动、洗牌、排序等开销,无须将中间结果 写入磁盘,节省了大量的I/O开销,也降低了网络传输的数据量。当然,Impala并不是用来取代现有的MapReduce框架的,而是作为MapReduce的一个强力补充。一般而言, Impala更适合处理输出数据较小的查询请求,而对于大数据量 的批处理任务,MapReduce依然是更好的选择。有理由相信在不久的未来,借助处理速度上的优势,Impala可以在大数据 处理领域占得一席之地


机器学习

Mahout

Apache Mahout的主要目标是建立可伸缩的机器学习算法。这种可伸缩性是针对大规模的数据集而言的。Apache Mahout的算法运行在Apache Hadoop平台下,它通过MapReduce模式实现。但是, Apache Mahout并不严格要求算法的实现要基于Hadoop平台,单个节点或非Hadoop平台也可以。Apache Mahout核心库的非分布式算法也具有良好的性能。


Apache Mahout是 Apache Software Foundation (ASF)旗下的一个开源项目,提供了一些经典的机器学习算法,旨 在帮助开发人员更加方便快捷地创建智能应用程序。该项目已经发展到了它的第三个年头,有了三个公共发行版本。Apache Mahout项目包含聚类、分类、推荐引擎、频繁子项挖掘。

Spark mllib

MLlib是Spark的机器学习(ML)库。旨在简化机器学习的工程实践工作,并方便扩展到更大规模。MLlib由一些通用的学习算法和工具组成,包括分类、回归、聚类、协同过滤、降维等,同时还包括底层的优化原语和高层的管道API。



其他工具    

大数据平台CDH(一站式打包)

Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称“CDH”),基于Web的用户界面,支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop,简化了大数据平台的安装、使用难度。


Hue hadoop可视化操作

Hue是一个开源的Apache Hadoop UI系统,最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python Web框架Django实现的。通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据,例如操作HDFS上的数据,运行MapReduce Job等等Hue所支持的功能特性集合:


  1. 默认基于轻量级sqlite数据库管理会话数据,用户认证和授权,可以自定义为MySQL、Postgresql,以及Oracle
  2. 基于文件浏览器(File Browser)访问HDFS
  3. 基于Hive编辑器来开发和运行Hive查询
  4. 支持基于Solr进行搜索的应用,并提供可视化的数据视图,以及仪表板(Dashboard)
  5. 支持基于Impala的应用进行交互式查询
  6. 支持Spark编辑器和仪表板(Dashboard)
  7. 支持Pig编辑器,并能够提交脚本任务
  8. 支持Oozie编辑器,可以通过仪表板提交和监控Workflow、Coordinator和Bundle
  9. 支持HBase浏览器,能够可视化数据、查询数据、修改HBase表
  10. 支持Metastore浏览器,可以访问Hive的元数据,以及HCatalog
  11. 支持Job浏览器,能够访问MapReduce Job(MR1/MR2-YARN)
  12. 支持Job设计器,能够创建MapReduce/Streaming/Java Job
  13. 支持Sqoop 2编辑器和仪表板(Dashboard)
  14. 支持ZooKeeper浏览器和编辑器
  15. 支持MySql、PostGresql、Sqlite和Oracle数据库查询编辑器


相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
19天前
|
存储 消息中间件 监控
【Flume】Flume在大数据分析领域的应用
【4月更文挑战第4天】【Flume】Flume在大数据分析领域的应用
|
1月前
|
Cloud Native 数据处理 云计算
探索云原生技术在大数据分析中的应用
随着云计算技术的不断发展,云原生架构作为一种全新的软件开发和部署模式,正逐渐引起企业的广泛关注。本文将探讨云原生技术在大数据分析领域的应用,介绍其优势与挑战,并探讨如何利用云原生技术提升大数据分析的效率和可靠性。
|
1月前
|
存储 消息中间件 大数据
Go语言在大数据处理中的实际应用与案例分析
【2月更文挑战第22天】本文深入探讨了Go语言在大数据处理中的实际应用,通过案例分析展示了Go语言在处理大数据时的优势和实践效果。文章首先介绍了大数据处理的挑战与需求,然后详细分析了Go语言在大数据处理中的适用性和核心技术,最后通过具体案例展示了Go语言在大数据处理中的实际应用。
|
1月前
|
机器学习/深度学习 人工智能 算法
【AAAI 2024】再创佳绩!阿里云人工智能平台PAI多篇论文入选
阿里云人工智能平台PAI发表的多篇论文在AAAI-2024上正式亮相发表。AAAI是由国际人工智能促进协会主办的年会,是人工智能领域中历史最悠久、涵盖内容最广泛的国际顶级学术会议之一,也是中国计算机学会(CCF)推荐的A类国际学术会议。论文成果是阿里云与浙江大学、华南理工大学联合培养项目等共同研发,深耕以通用人工智能(AGI)为目标的一系列基础科学与工程问题,包括多模态理解模型、小样本类增量学习、深度表格学习和文档版面此次入选意味着阿里云人工智能平台PAI自研的深度学习算法达到了全球业界先进水平,获得了国际学者的认可,展现了阿里云人工智能技术创新在国际上的竞争力。
|
1月前
|
数据采集 运维 数据挖掘
API电商接口大数据分析与数据挖掘 (商品详情店铺)
API接口、数据分析以及数据挖掘在商品详情和店铺相关的应用中,各自扮演着重要的角色。以下是关于它们各自的功能以及如何在商品详情和店铺分析中协同工作的简要说明。
|
1月前
|
机器学习/深度学习 算法 数据可视化
JAMA | 机器学习中的可解释性:SHAP分析图像复刻与解读
JAMA | 机器学习中的可解释性:SHAP分析图像复刻与解读
107 1
|
13天前
|
机器学习/深度学习 人工智能 安全
Azure Databricks实战:在云上轻松进行大数据分析与AI开发
【4月更文挑战第8天】Databricks在大数据分析和AI开发中表现出色,简化流程并提高效率。文中列举了三个应用场景:数据湖分析、实时流处理和AI机器学习,并阐述了Databricks的一体化平台、云原生弹性及企业级安全优势。博主认为,Databricks提升了研发效能,无缝集成Azure生态,并具有持续创新潜力,是应对大数据挑战和加速AI创新的理想工具。
36 0
|
26天前
|
机器学习/深度学习 人工智能 数据可视化
基于Python的数据可视化技术在大数据分析中的应用
传统的大数据分析往往注重数据处理和计算,然而数据可视化作为一种重要的技术手段,在大数据分析中扮演着至关重要的角色。本文将介绍如何利用Python语言中丰富的数据可视化工具,结合大数据分析,实现更直观、高效的数据展示与分析。
|
1月前
|
存储 NoSQL 大数据
新型数据库技术在大数据分析中的应用与优势探究
随着大数据时代的到来,传统数据库技术已经无法满足海量数据处理的需求。本文将探讨新型数据库技术在大数据分析中的应用情况及其所带来的优势,为读者解析数据库领域的最新发展趋势。
|
1月前
|
机器学习/深度学习 算法 数据可视化
机器学习-生存分析:如何基于随机生存森林训练乳腺癌风险评估模型?
机器学习-生存分析:如何基于随机生存森林训练乳腺癌风险评估模型?
32 1