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

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 RDS SQL Server,独享型 2核4GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 从零搭建企业大数据分析和机器学习平台-技术栈介绍(三)

数据传输和采集


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 
相关文章
|
25天前
|
关系型数据库 MySQL Serverless
高顿教育:大数据抽数分析业务引入polardb mysql serverless
高顿教育通过使用polardb serverless形态进行数据汇总,然后统一进行数据同步到数仓,业务有明显高低峰期,灵活的弹性伸缩能力,大大降低了客户使用成本。
|
27天前
|
机器学习/深度学习 数据采集 算法
大数据分析技术与方法探究
在当今信息化时代,数据量的增长速度远快于人类的处理能力。因此,如何高效地利用大数据,成为了企业和机构关注的焦点。本文将从大数据分析的技术和方法两个方面进行探究,为各行业提供更好的数据应用方向。
|
28天前
|
机器学习/深度学习 人工智能 自然语言处理
大数据分析的技术和方法:从深度学习到机器学习
大数据时代的到来,让数据分析成为了企业和组织中不可或缺的一环。如何高效地处理庞大的数据集并且从中发现潜在的价值是每个数据分析师都需要掌握的技能。本文将介绍大数据分析的技术和方法,包括深度学习、机器学习、数据挖掘等方面的应用,以及如何通过这些技术和方法来解决实际问题。
18 2
|
30天前
|
机器学习/深度学习 PyTorch 算法框架/工具
在阿里云机器学习平台上布置一个PyTorch模型
在阿里云机器学习平台上布置一个PyTorch模型【1月更文挑战第21天】【1月更文挑战第105篇】
106 1
|
1月前
|
机器学习/深度学习 人工智能 运维
大数据分析:探索信息世界的钥匙
在当今信息爆炸的时代,大数据分析成为挖掘宝藏般的技术和方法。本文将介绍大数据分析的基本概念、技术与方法,并探讨其在商业、科学和社会领域中的广泛应用。从数据收集和预处理到模型构建和结果解读,大数据分析为我们揭示了信息世界的钥匙,为决策者提供了有力的支持。
|
16天前
|
API
GEE案例分析——利用sentinel-3数据计算空气污染指数(Air Pollution Index,简称API)
GEE案例分析——利用sentinel-3数据计算空气污染指数(Air Pollution Index,简称API)
17 0
|
数据采集 数据可视化 算法
电商API接口的大数据分析与挖掘技巧
随着电商行业的快速发展,电商平台上的交易数据量也越来越大。如何对这些数据进行分析和挖掘,从中获取有价值的信息,已经成为电商企业和开发者关注的重点。本文将介绍电商API接口的大数据分析与挖掘技巧。
|
27天前
|
机器学习/深度学习 存储 人工智能
大数据处理与分析技术:未来的基石
在信息化时代,数据已成为企业发展和决策的基础。而随着数据量的不断增长,传统的数据处理方法已经无法满足现代企业的需求。因此,大数据处理与分析技术的出现成为了新时代的必需品。本文将介绍大数据处理与分析技术的概念,意义、应用场景以及未来发展趋势。
24 3
|
2天前
|
分布式计算 并行计算 大数据
Python多进程在数据处理和大数据分析中的应用
Python多进程在数据处理和大数据分析中的应用
|
22天前
|
SQL 数据可视化 数据建模
大数据分析利器之Power BI,你是否已经掌握?
大数据分析利器之Power BI,你是否已经掌握?
18 0