开发人员该选择什么大数据工具提高工作效率?

开发人员该选择什么大数据工具提高工作效率?

海量数据使得数据分析工作变得繁重困难,开发人员选择合适的大数据工具来开发大数据系统成为新的挑战。因此开发人员要根据不同的数据处理方式对大数据工具进行分类。

大数据计算主要有三种工具,即批处理工具、流处理工具和混合处理工具大多数批处理数据分析框架都基于Apache Hadoop。流式数据分析框架主要是实时应用中使用的Storm、S4和Flink,混合处理工具利用批处理和流处理的优点来计算大量数据。

大数据工具的分类:

1、批处理工具

批处理建模并将数据湖的文件转换为批处理视图,为分析用例做好准备。它负责安排和执行批量迭代算法,如排序、搜索、索引或更复杂的算法,如PageRank、贝叶斯分类或遗传算法。

Apache Hadoop是一个众所周知的批处理框架,支持在集群上分布式存储和处理大型数据。它是一个基于Java的开源框架,被Facebook、Yahoo和Twitter用于存储和处理大数据。Hadoop主要由两个组件组成:Hadoop分布式文件系统(HDFS),其中集群节点之间的数据存储是分布式的;(2)HadoopMapReduce引擎,它将数据处理分配给集群的节点。

Apache Pig是Hadoop生态系统的一个不可或缺的组件,通过在Hadoop上并行执行数据流来减少数据分析时间。Pig是一种结构化查询语言(SQL),被LinkedIn、Twitter、Yahoo等大型组织使用。该平台的脚本语言称为Pig Latin,它将MapReduce中的编程复杂性从其他语言(如Java)抽象为高级语言。Pig是一个最完整的平台,因为它可以通过直接调用用户定义函数(UDF)来调用JavaScript、Java、Jython和JRuby等多种语言的代码。因此,开发人员可以使用Pig在Hadoop中完成所有必需的数据操作。Pig可以作为一个具有相当多并行性的组件,用于构建复杂而繁重的应用程序。

Flume被用作向Hadoop提供数据的工具。与处理框架一起,需要一个消息传递层来访问和转发流数据。Apache Flume是提供这一功能的较为成熟的选项之一。Flume一直是数据馈送的著名应用程序。它很好地嵌入到整个Hadoop生态系统中,并获得了所有商业Hadoop发行版的支持,这使得Flume成为开发者的主要选择。

2、流处理工具

Hadoop是为批处理而设计,一个多用途引擎,但由于其延迟不是一个实时和高性能的引擎。在一些流数据应用中,如日志文件处理、工业传感器和远程通信,需要实时响应和处理流式大数据。因此,有必要对流处理进行实时分析。流式大数据需要实时分析,因为大数据具有高速、大容量和复杂的数据类型,对于Map/Reduce框架将是一个挑战。因此Storm、S4、Splunk和Apache Kafka等流处理的实时大数据平台已被开发为第二代数据流处理平台用于实时分析数据,实时处理意味着连续数据处理需要极低的响应延迟。

Storm是实时分析中最受认可的数据流处理程序之一,专注于可靠的消息处理。Storm是一个免费、开源的分布式流媒体处理环境,用于开发和运行分布式程序,处理源源不断的数据流。因此,可以说Storm是一个开源、通用、分布式、可扩展和部分容错的平台,可以可靠地处理无限的数据流以进行实时处理。Storm的一个优点是,开发人员可以专注于使用稳定的分布式进程,同时将分布式/并行处理的复杂性和技术挑战(如构建复杂的恢复机制)委托给框架。Storm是一个复杂的事件处理器和分布式计算框架,基本上是用Clojure编程语言编写的。它是一个分布式实时计算系统,用于快速处理大数据流。Storm是一个分布式/并行框架,由Nimbus、Supervisor和Zookeeper组成,如图2所示。Storm集群主要由主节点和工作节点组成,由Zookeeper进行协调。

S4是一个受MapReduce模型启发的分布式流处理平台。流的操作由用户代码和用XML描述的配置作业指定。S4是一个通用的、容错的、可扩展的、分布式的、可插拔的计算框架,程序员可以轻松地开发用于处理连续无界数据流的应用程序。它最初由Yahoo 2010年发布,并从2011年起成为Apache孵化器项目。S4允许程序员基于几个有竞争力的特性开发应用程序,包括可伸缩性、分散性、健壮性、可扩展性和集群管理。S4是用Java编写的。S4作业的任务是模块化和可插拔,以便于动态处理大规模流数据。S4使用Apache ZooKeeper来管理集群像Storm一样。

Kafka是一个开源的分布式流媒体框架,最初由LinkedIn在2010年开发。它是一个灵活的发布-订阅消息传递系统,旨在快速、可扩展,并通常用于日志收集。Kafka是用Scala和Java编写的。它有一个多生产者管理系统,能够从多个来源获取消息。通常,Kafka的数据分区和保留功能使其成为容错事务收集的有用工具。这是因为应用程序可以开发和订阅记录流,具有容错保证,并且可以在记录流出现时对其进行处理。

Flink是一个流式处理工具,旨在解决微批量模型衍生的问题。Flink还支持使用Scala和Java中的编程抽象进行批处理数据处理,尽管它被视为流处理的特例。在Flink中,每个作业都作为流计算执行,每个任务都作为循环数据流执行,并进行多次迭代。Flink还提供了一种复杂的容错机制,以一致地恢复数据流应用程序的状态。该机制生成分布式数据流和操作员状态的一致快照。如果出现故障,系统可以退回到这些快照。FlinkML的目标是为Flink用户提供一套可伸缩的机器学习算法和直观的API。

ApacheSpark是Hadoop最新的替代方案。它包括一个名为MLlib的额外组件,这是一个面向机器学习算法的库,例如:聚类、分类、回归,甚至数据预处理[6]。由于Spark的容量,批量和流式分析可以在同一平台上完成。Spark的开发是为了克服Hadoop的缺点,即它没有针对迭代算法和交互式数据分析进行优化,后者对同一组数据执行多个操作。Spark被定义为下一代分布式计算框架的核心,由于其内存密集型方案,它可以在内存中快速处理大容量数据集。

3、混合处理工具

混合处理使大数据平台进入第三代成为可能,因为它是大数据应用中许多领域所必需的。该范例综合了基于Lambda架构的批处理和流处理范例。Lambda体系结构是一种数据处理体系结构,旨在通过利用批处理和流处理方法来处理大量数据。这个范例的高级架构包含三层。批处理层管理已存储在分布式系统中且不可更改的主数据集,服务层加载并在数据存储中公开批处理层的视图以供查询,而速度层只处理低延迟的新数据。最后,通过批处理和实时视图的组合,将完整的结果合并。

如果想入行大数据开发,可以按照下面的学习路线图先学习一下~
开发人员该选择什么大数据工具提高工作效率?_第1张图片

第一阶段:大数据开发入门

1、MySQL数据库及SQL语法

MySQL可以处理拥有上千万条记录的大型数据库,使用标准的SQL数据语言形式,MySQL可以安装在不同的操作系统,并且提供多种编程语言的操作接口,这些编程语言包括C、C++、Python、Java、Ruby等等。支持多种存储引擎。
SQL就是客户端和MySQL服务器端进行通信和沟通的语言。

2、Kettle与BI工具

Kettle作为一个端对端的数据集成平台,其部分特色功能包括:无代码拖拽式构建数据管道、多数据源对接、数据管道可视化、模板化开发数据管道、可视化计划任务、深度Hadoop支持、数据任务下压Spark集群、数据挖掘与机器学习支持。

3、Python与数据库交互

实际的生产任务中,数据几乎全部存在与数据库中,因此,与数据库的交互成为一件难以避免的事情。想要在Python代码中和mysql数据库进行交互,需要借助一个第三方的模块“pymysql”

第二阶段:大数据核心基础

1、Linux

Linux 作为操作系统,本身是为了管理内存,调度进程,处理网络协议栈等等。而大数据的发展是基于开源软件的平台,大数据的分布式集群( Hadoop,Spark )都是搭建在多台 Linux 系统上,对集群的执行命令都是在 Linux 终端窗口输入的。据Linux基金会的研究,86%的企业已经使用Linux操作系统进行大数据平台的构建。Linux占据优势。

2、Hadoop基础

2022最新大数据Hadoop入门教程,最适合零基础自学的大数据

Hadoop是一个能够对大量数据进行分布式处理的软件框架。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。它很擅长存储大量的半结构化的数据集。也非常擅长分布式计算——快速地跨多台机器处理大型数据集合。Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

MapReduce和Hadoop是相互独立的,实际上又能相互配合工作得很好。MapReduce是处理大量半结构化数据集合的编程模型。

3、大数据开发Hive基础

hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。

hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。Hive十分适合对数据仓库进行统计分析。

第三阶段:千亿级数仓技术

企业级在线教育项目实战(Hive数仓项目完整流程)

大数据项目实战教程_大数据企业级离线数据仓库,在线教育项目实战(Hive数仓项目完整流程)

以真实项目为驱动,学习离线数仓技术。建立集团数据仓库,统一集团数据中心,把分散的业务数据集中存储和处理 ;从需求调研、设计、版本控制、研发、测试到落地上线,涵盖了项目的完整工序 ;挖掘分析海量用户行为数据,定制多维数据集合,形成数据集市,供各个场景主题使用。

第四阶段:PB内存计算

1、Python编程基础+进阶

全套Python教程_Python基础入门视频教程,零基础小白自学Python必备教程

Python高级语法进阶教程_python多任务及网络编程,从零搭建网站全套教程

Python是基于ABC语言的发展来的,Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言, 随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。

Python 语言的语法非常简洁明了,即便是非软件专业的初学者,也很容易上手,和其它编程语言相比,实现同一个功能,Python 语言的实现代码往往是最短的。

2、Spark技术栈

Spark全套视频教程,大数据spark3.2从基础到精通,全网首套基于Python语言的spark教程

Spark是大数据体系的明星产品,是一款高性能的分布式内存迭代计算框架,可以处理海量规模的数据。本课程基于Python语言学习Spark3.2开发,课程的讲解注重理论联系实际,高效快捷,深入浅出,让初学者也能快速掌握。让有经验的工程师也能有所收获。

3、大数据Flink技术栈

Flink核心是一个流式的数据流执行引擎,其针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能。基于流执行引擎,Flink提供了诸多更高抽象层的API以便用户编写分布式任务。Flink也可以方便地和Hadoop生态圈中其他项目集成,例如Flink可以读取存储在HDFS或HBase中的静态数据,以Kafka作为流式的数据源,直接重用MapReduce或Storm代码,或是通过YARN申请集群资源等。

4.Spark离线数仓工业项目实战

全网首次披露大数据Spark离线数仓工业项目实战,Hive+Spark构建企业级大数据平台

通过大数据技术架构,解决工业物联网制造行业的数据存储和分析、可视化、个性化推荐问题。一站制造项目主要基于Hive数仓分层来存储各个业务指标数据,基于sparkSQL做数据分析。核心业务涉及运营商、呼叫中心、工单、油站、仓储物料。

你可能感兴趣的:(python,oracle,zookeeper,数据仓库,sql)