起源
不管是国内,国外的招聘目前数据分析工程师,或者是大数据工程师我感觉都是处于启蒙阶段,对于数据分析或者大数据没有什么体系技术栈一说,相比于前后端,除了高端互联网企业其他的企业招数据分析工程师我认为目前都是 Python 工程师,但是大数据工程师究竟需要什么技术栈,科班出生我来结合自己的理解讲解下。
大数据?
数据库相信大家都不陌生,那么什么是大数据?其实就是大量数据顾名思义,传统数据在几 KB,几 GB,几 T 这其实都不是大数据范畴。100T 以上甚至 PB 级别的数据就可以称为大数据了。
但是传统的数据库中存放的数据都是结构化数据,但是大数据处理的数据,因为数据来源不同,有结构化和非结构化两种。这就引出了一个数据仓库的概念。它整合来自多个不同来源的数据,支持复杂查询和分析任务。目前有很多公司都在做,以后的所有数据就从数据仓库中进行提取,然后再放到应用中。
Hadoop项目组件
Hadoop是一个开源框架,允许在计算机集群上以简单的编程模型分布式处理大数据集。其关键组件包括:
- Ambari: 一个基于Web的工具,用于配置、管理和监控Apache Hadoop集群。它提供了一个用户友好的界面来管理配置和监控服务及性能。
- ZooKeeper: 提供分布式协调服务,如配置维护、同步和组服务。
- HBase: 一个分布式、可扩展的大数据存储,基于Google的Bigtable并用Java编写。
- Hive: 一个数据仓库基础设施,提供数据汇总和即席查询。
- Pig: 一个高层平台,用于创建在Apache Hadoop上运行的程序,主要用于分析大数据集。
- Mahout: 一个设计为可扩展到大数据集的机器学习库。
- MapReduce: 一个用于处理和生成大数据集的编程模型,通过集群上的并行分布式算法实现。
- YARN (Yet Another Resource Negotiator): 在集群中管理资源并用于调度用户的应用程序。
- HDFS (Hadoop Distributed File System): 设计在商品硬件上运行的分布式存储系统。
- Flume: 一个高效收集、聚合和移动大量日志数据的服务。
- Sqoop: 一个设计用于在Apache Hadoop和结构化数据存储如关系数据库之间高效传输大量数据的工具。
Hadoop的发展历程
Hadoop的发展历程标志着几个重要的里程碑:
- 2008年: 淘宝开始研究基于Hadoop的系统。
- 2009年3月: Cloudera推出包括Hadoop的Cloudera Distribution (CDH)。
- 2009年7月: Hadoop Core项目更名为Hadoop Common。
- 2012年11月: Apache Hadoop 1.0发布。
- 2018年4月: Apache Hadoop 3.1发布。
Apache Hadoop的历史
Apache Hadoop框架源自以下项目:
- Apache Lucene (2001) -> Apache Nutch (2002): 早期项目专注于文本搜索和网页爬虫。
- HDFS (2004): Hadoop分布式文件系统,从Nutch项目中衍生而来。
- MapReduce (2004): 由Google引入,成为Hadoop处理大数据集的核心组件。
MapReduce
MapReduce是处理大数据集的核心概念,通过分布式算法实现:
- 函数: 由两个主要函数组成 - Map和Reduce。
- 核心思想: “分而治之” - 通过将任务拆分成更小的子任务来处理大数据集。
- 设计理念: 通过将计算指向数据来实现可靠性。
大数据的特征
大数据由三个主要特征定义:
- 数量 (Volume): 数据规模,通常在100TB以上,甚至达到PB级别。
- 种类 (Variety): 数据形式多样,包括文本、音频、图像和视频,不限于传统的关系数据。
- 速度 (Velocity): 数据生成和处理的速度。
大数据分析
大数据分析涵盖各种方法和技术:
● 数据分析
● 文本分析
● 数据挖掘
● 图像和语音识别
● 机器学习
● 可视化技术
● 自然语言处理
● 深度学习
数据采集与分析层
大数据涉及结构化和非结构化数据的采集,然后利用Hadoop等平台提供的计算层进行分析。
通过理解这些组成部分和原理,可以有效利用大数据来驱动洞察和创新。