这是慕课网林子雨老师开设的课程,这本书也是林子雨老师写的。感兴趣的戳 MOOC 《大数据技术原理与应用》。
2.hadoop
2.1 简介
- 用java开发,可以支持多种编程语言
- 是一个项目,是一整套方案的集合体
两大核心
- hdfs,用来分布式存储
- MapReduce,分布式并行框架,用来处理
特性
- 可靠,一台有问题,剩下的仍能运转
- 高效
- 可扩展性,随意添加节点
- 成本低,可以用普通PC机
- 支持多种语言
在企业中的应用架构
- 用hdfs分布式文件存储数据
- 离线数据分析
- MR(mapreduce),对数据批量处理(离线处理)
- hive和pig,可以帮助离线的数据分析
- 实时查询
- HBase,分布式数据库
- BI分析(数据挖掘、机器学习、算法)
- Mahout,包含很多算法的mapreduce实现
2.2项目结构
hadoop的项目结构不断丰富发展,已经形成了一个丰富的Hadoop生态系统
- 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可以运行在单个节点上。
本文深入解析Hadoop2.1版本,涵盖其项目结构、安装步骤及集群部署。介绍了Hadoop作为分布式存储与处理框架的特性,如可靠性、高效性、可扩展性和低成本优势。并详细阐述了HDFS、MapReduce、YARN等核心组件,以及Hive、Pig、Spark等生态系统内的工具。
2186

被折叠的 条评论
为什么被折叠?



