Hadoop基本知识点总结
内容参考链接:慕课网--Hadoop大数据平台架构基础篇
Google大数据技术(3大):MapReduce、BigTable、GFS
革命性的变化
- 成本降低,能用Pc 机,就不用大型机和高端存储。
- 软件容错硬件故障视为常态,通过软件保证可靠性。
- 简化并行分布式计算,无须控制节点同步和数据交换。
模仿Google大数据技术的开源实现:Hadoop
Hadoop是什么:分布式存储+分布式计算平台
包含两个核心组成:
(1)HDFS:分布式文件系统,存储海量的数据
(2)MapReduce****:并行处理框架,实现任务分解和调度
Hadoop可以用来做什么:搭建大型数据仓库,PB级数据的存储、处理、分析、统计等业务。
Hadoop优势:
- 高扩展
- 低成本
- 成熟的生态圈
Hadoop生态系统:
1、Hive:sql->mapreduce
2、Hbase:存储结构化数据的分布式数据库
与传统的关系型数据库不同,Hbase放弃事务特性,追求更高的扩展;
与hdfs不同:hbase提供数据的随机读写和实时访问,实现对表数据的读写功能;
3、Zookeeper:监控Hadoop集群中每个节点的状态
Hadoop安装:
(1) 准备liunx环境
(2) 安装JDK
(3) 配置hadoop
HDFS的体系架构:
HDFS基本概念:
-
块
HDFS的文件被分成块进行存储;块的默认大小为64MB;块是文件存储处理的逻辑单元 -
NameNode
是管理节点,存放文件元数据
(1) 文件与数据块的映射表
(2) 数据块与数据节点的映射表 -
DataNode
是工作节点,存放数据块
HDFS中数据管理与容错:
(1) 数据块副本,每个数据块3个副本,分布在两个机架内的三个节点
数据块副本(2) 心跳检测:DataNode定期向NameNode发送心跳信息
心跳检测
(3) 二级NameNode
定期同步元数据映像文件和修改日志,NameNode发生故障时,备胎转正
二级NameNode
HDTS读取文件的流程:
读取文件
HDTS写入文件的流程:
写入文件
HDFS的特点:
1、 数据冗余,硬件容错
2、 流式的数据访问,写一次,读多次
3、 存储大文件
HDFS
适合数据批量读取吞吐量高;
不适合交互式应用,比如数据库,低延迟很难满足
适合一次写入多次读取,顺序读写
不支持多用户并发写相同文件
命令:
hadoop fs –ls /
把当前目录下HDFS文件夹打印出来
hadoop fs –put tt.txt input/
把本地的一个文件tt.txt放到input目录下
hadoop fs –mkdir input
建立input目录
hadoop fs –get input/tt.txt tt1.txt
从hdfs下载文件到本地
hadoop dfsadmin –report
查看文件系统内所有信息
MapReduce原理:
分而治之,一个大任务分成多个子任务(Map),并行执行后,合并结果(reduce)
MapReduce的运行流程:
基本概念
- job &task
一个job会被拆分成多个task,task分为MapTask和ReduceTask - JobTracker
(1) 作业调度
(2) 分配任务,监控任务执行进度
(3) 监控taskTracker的状态 - TaskTracker
(1) 执行任务
(2) 向JobTracker汇报任务状态
MapReduce作业执行过程:
MapReduce的容错机制:
(1) 重复执行
重复执行4次后,若还是失败,则放弃
(2) 推测执行
Map端执行完成后,reduce端才会开始,比如某个taskTracker算的特别慢,会找一个跟这个taskTracker一样任务的去执行,保证整个任务不会因为某个tasktracker的故障而执行效率低。
Mapreduce的应用案例:
(1)应用案例一:wordcount单词计数
计算文件中出现每个单词的频数
输入结果按照字母顺序进行排序
(2)应用案例二:利用MR进行排