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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 从零搭建企业大数据分析和机器学习平台-技术栈介绍(三)

数据传输和采集


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数据库查询编辑器


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
5天前
|
存储 机器学习/深度学习 SQL
大数据处理与分析技术
大数据处理与分析技术
25 2
|
1月前
|
机器学习/深度学习 测试技术
阿里云入选Gartner数据科学和机器学习平台挑战者象限
Gartner® 正式发布了《数据科学与机器学习平台魔力象限》报告(Magic Quadrant™ for Data Science and Machine Learning Platforms),阿里云成为唯一一家入选该报告的中国厂商,被评为“挑战者”(Challengers)。
|
7天前
|
SQL 数据采集 分布式计算
【赵渝强老师】基于大数据组件的平台架构
本文介绍了大数据平台的总体架构及各层的功能。大数据平台架构分为五层:数据源层、数据采集层、大数据平台层、数据仓库层和应用层。其中,大数据平台层为核心,负责数据的存储和计算,支持离线和实时数据处理。数据仓库层则基于大数据平台构建数据模型,应用层则利用这些模型实现具体的应用场景。文中还提供了Lambda和Kappa架构的视频讲解。
【赵渝强老师】基于大数据组件的平台架构
|
8天前
|
存储 监控 数据挖掘
【Clikhouse 探秘】ClickHouse 物化视图:加速大数据分析的新利器
ClickHouse 的物化视图是一种特殊表,通过预先计算并存储查询结果,显著提高查询性能,减少资源消耗,适用于实时报表、日志分析、用户行为分析、金融数据分析和物联网数据分析等场景。物化视图的创建、数据插入、更新和一致性保证通过事务机制实现。
46 14
|
13天前
|
消息中间件 分布式计算 大数据
数据为王:大数据处理与分析技术在企业决策中的力量
【10月更文挑战第29天】在信息爆炸的时代,大数据处理与分析技术为企业提供了前所未有的洞察力和决策支持。本文探讨了大数据技术在企业决策中的重要性和实际应用,包括数据的力量、实时分析、数据驱动的决策以及数据安全与隐私保护。通过这些技术,企业能够从海量数据中提取有价值的信息,预测市场趋势,优化业务流程,从而在竞争中占据优势。
45 2
|
14天前
|
数据采集 机器学习/深度学习 搜索推荐
大数据与社交媒体:用户行为分析
【10月更文挑战第31天】在数字化时代,社交媒体成为人们生活的重要部分,大数据技术的发展使其用户行为分析成为企业理解用户需求、优化产品设计和提升用户体验的关键手段。本文探讨了大数据在社交媒体用户行为分析中的应用,包括用户画像构建、情感分析、行为路径分析和社交网络分析,以及面临的挑战与机遇。
|
14天前
|
机器学习/深度学习 搜索推荐 大数据
大数据与教育:学生表现分析的工具
【10月更文挑战第31天】在数字化时代,大数据成为改善教育质量的重要工具。本文探讨了大数据在学生表现分析中的应用,介绍学习管理系统、智能评估系统、情感分析技术和学习路径优化等工具,帮助教育者更好地理解学生需求,制定个性化教学策略,提升教学效果。尽管面临数据隐私等挑战,大数据仍为教育创新带来巨大机遇。
|
17天前
|
人工智能 供应链 搜索推荐
大数据分析:解锁商业智能的秘密武器
【10月更文挑战第31天】在信息爆炸时代,大数据分析成为企业解锁商业智能的关键工具。本文探讨了大数据分析在客户洞察、风险管理、供应链优化、产品开发和决策支持等方面的应用,强调了明确分析目标、选择合适工具、培养专业人才和持续优化的重要性,并展望了未来的发展趋势。
|
30天前
|
机器学习/深度学习 监控 搜索推荐
电商平台如何精准抓住你的心?揭秘大数据背后的神秘推荐系统!
【10月更文挑战第12天】在信息爆炸时代,数据驱动决策成为企业优化决策的关键方法。本文以某大型电商平台的商品推荐系统为例,介绍其通过收集用户行为数据,经过预处理、特征工程、模型选择与训练、评估优化及部署监控等步骤,实现个性化商品推荐,提升用户体验和销售额的过程。
73 1
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
机器学习中空间和时间自相关的分析:从理论基础到实践应用
空间和时间自相关是数据分析中的重要概念,揭示了现象在空间和时间维度上的相互依赖关系。本文探讨了这些概念的理论基础,并通过野火风险预测的实际案例,展示了如何利用随机森林模型捕捉时空依赖性,提高预测准确性。
46 0
机器学习中空间和时间自相关的分析:从理论基础到实践应用

热门文章

最新文章