大数据技术栈学习指南

Hadoop 分布式生态系统

  • HDFS: 分布式文件存储系统,提供高容错性和高吞吐量数据存储。
    • 单机伪集群环境搭建。
    • 常用 Shell 命令 和 Java API 使用。
    • 基于 Zookeeper 搭建 Hadoop 高可用集群。
  • MapReduce: 分布式计算框架,用于大规模数据集的并行处理。
  • YARN: 集群资源管理器,负责管理集群资源和调度应用程序。

Hive 数据仓库系统

  • 核心概念及 Linux 环境下安装部署。
  • CLI 和 Beeline 命令行基本使用。
  • DDL 操作:创建、修改和删除数据库、表等。
  • 分区表和分桶表:提高查询效率。
  • 视图和索引:简化查询和优化性能。
  • DML 操作:数据插入、更新和删除。
  • 数据查询:使用 SQL 进行复杂数据分析。

Spark 分布式计算引擎

  • Spark Core: Spark 的核心组件,提供分布式任务调度、内存管理和容错机制。
  • Spark SQL: 用于结构化数据处理的模块,支持 SQL 查询和 DataFrame API。
  • Spark Streaming: 用于实时数据流处理的模块,支持高吞吐量和低延迟的流式数据分析。

Flink 流式处理框架

  • 核心概念和开发环境搭建。
  • 数据源 (Data Source):连接外部数据源,如 Kafka、文件系统等。
  • 数据转换 (Data Transformation):使用算子对数据进行转换和分析。
  • 数据接收器 (Data Sink):将处理后的数据输出到外部系统。
  • 窗口模型:将无限数据流划分为有限窗口进行处理。
  • 状态管理:维护和更新应用程序状态,支持容错和一致性。
  • 检查点机制:定期保存应用程序状态,用于故障恢复。
  • Standalone 集群部署:独立运行 Flink 集群。

其他工具

  • Kafka: 分布式消息队列系统,用于实时数据管道和流式处理。
  • Zookeeper: 分布式协调服务,用于管理分布式系统的配置信息、命名服务和同步服务。
  • Flume: 分布式日志收集系统,用于收集、聚合和移动大量日志数据。
  • Sqoop: 用于在 Hadoop 和关系型数据库之间传输数据的工具。
  • Azkaban: 工作流调度器,用于定义和管理复杂数据处理流程。
  • Scala: 基于 JVM 的函数式编程语言,常用于 Spark 和 Flink 开发。