《大数据技术原理与应用》第二章:大数据处理架构Hadoop

文章目录

    • 2.hadoop
      • 2.1 简介
      • 2.2项目结构
      • 2.3安装
      • 2.4集群的部署和使用

这是慕课网林子雨老师开设的课程,这本书也是林子雨老师写的。感兴趣的戳 MOOC 《大数据技术原理与应用》。

2.hadoop

2.1 简介

  • 用java开发,可以支持多种编程语言
  • 是一个项目,是一整套方案的集合体

两大核心

  • hdfs,用来分布式存储
  • MapReduce,分布式并行框架,用来处理

特性

  • 可靠,一台有问题,剩下的仍能运转
  • 高效
  • 可扩展性,随意添加节点
  • 成本低,可以用普通PC机
  • 支持多种语言

在企业中的应用架构

《大数据技术原理与应用》第二章:大数据处理架构Hadoop_第1张图片
  • 用hdfs分布式文件存储数据
  • 离线数据分析
    • MR(mapreduce),对数据批量处理(离线处理)
    • hive和pig,可以帮助离线的数据分析
  • 实时查询
    • HBase,分布式数据库
  • BI分析(数据挖掘、机器学习、算法)
    • Mahout,包含很多算法的mapreduce实现

2.2项目结构

hadoop的项目结构不断丰富发展,已经形成了一个丰富的Hadoop生态系统

《大数据技术原理与应用》第二章:大数据处理架构Hadoop_第2张图片
  • HDFS:整个分布式数据存储.
  • YARN:资源管理和调度框架(内存、CPU、宽带等)
  • MapReduce:离线计算批处理
  • Taz:把mapreduce作业进行分析优化,构建有向无环图,保证有好的处理效率(哪些先做哪些后做)
  • spark:同样用mapreduce函数做数据处理,但spark用内存计算,而mapreduce做磁盘计算,处理完数据存到系统。spark要快。
  • hive:实现hadoop的数据仓库功能。可以支持sql语句,会把sql转化为一堆mapreduce作业
    • 数据仓库:专门用来企业决策分析,把大量的历史数据保存到数据仓库中,建立各种维度,对历史数据做大量分析满足决策需求。
  • pig:流数据处理,轻量级分析。有自己的查询语句pig latin,类sql语句,可以嵌套在其他大型程序中执行。因为mapreduce虽然屏蔽了很多底层程序的复杂性,但仍然有些复杂。pig则不用。
  • Oozie:作业流调度环节,工作流管理。把一个完整的工作分解成很多个环节,不同的应用程序配合完成一个工作。
  • Zookeeper:分布式协调服务。分布式锁,集群管理等。
  • HBase:面向列的存储,支持几十亿行上百万列数据的超大型数据库。HDFS做顺序读写,HBase做随机读写,实时应用。
  • flume:日志收集
  • sqoop:数据导入导出。把关系型数据库导入hadoop平台(hdfs,hive,hbase)。
  • Ambari:部署工具,部署管理各个套件。

2.3安装

安装方式

  • 单机模式:hadoop默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单Java进程,方便进行调试
  • 伪分布式:hadoop可以在单节点上以伪分布式的方式运行。hadoop进行以分离的java进程来运行,节点即作为NameNode也作为DataNode,同时,读取的是HDFS中的文件。
  • 分布式模式:多个节点构成集群环境来运行hadoop。

具体安装教程可以戳林子雨老师所在的厦门大学数据库实验室hadoop安装教程。

2.4集群的部署和使用

基本的hadoop集群中的节点

  • HDFS的核心组件:namenode,datanode
    • namenode:协调集群中的数据存储
    • datanode:存储被拆分的数据块
    • SecondaryNameNode,冷备份:帮助namenode收集文件系统运行的状态信息对namenode备份。(热备份是出了问题立马转正起作用。)
  • mapreduce的核心组件:JobTracker,TaskTracker。
    • JobTracker:协调数据计算任务。对整个作业进行管理,把大作业拆成小作业,分发到不同的机器上执行。
    • TaskTracker:执行JobTracker指派的任务。部署在每个不同的机器上,跟踪执行分配给自己的小作业。

节点的配置
大部分节点都是datanode/TaskTracker。硬件规格可以:

  • 四个磁盘驱动器(单盘1-2T),支持JBOD(just a bounch of disks,磁盘簇)
  • 2个四核CPU,2.5GHZ
  • 内存16-24GB
  • 千兆宽带

namenode提供整个HDFS文件系统的namespace管理、块管理,有很多源数据直接保存到内存中

  • 内存16-72GB
  • 内存通道优化
  • 2个四核/八核CPU
  • 万兆带宽

SecondaryNameNode,小集群可以和namenode放在一起;大集群要有自己的服务器,配置和namenode差不多。

集群的规模
集群规模,需要估计数据量。例如:数据每周增大1TB,有三个HDFS副本,每周需要3TB作为原始数据存储。允许中间文件和日志的空间(假设30%),大约每周要增加一台新机器。存储两年数据,大约需100台机器。

  • 对于小集群,namenode和jobtracker可以运行在单个节点上。

你可能感兴趣的:(《大数据技术原理与应用》第二章:大数据处理架构Hadoop)