Hadoop
—大数据概述
- 大数据
- 狭义上:对海量数据进行处理的软件技术体系
- 广义上:数字化、信息化时代的基础支撑,以数据为生活赋能
1. 大数据的核心工作:
存储: 妥善保存海量待处理数据
计算: 完成海量数据的价值挖掘
传输: 协助各个环节的数据传输
2. 大数据软件生态
存储: Apache Hadoop HDFS、Apache HBase等
计算: Apache Hadoop MapReduce、Apache Spark、Apache Flink
传输: Apache Sqoop、Apache Flume、Apache Kafka等
3.大数据特点
大: volume 采集数据量大 存储数据量大 计算数据量大 TB、PB级别起步
多: variety 种类多:结构化、半结构化、非结构化 来源多:日志文本、图片、音频、视频
值: value 信息海量但是价值密度低
快: velocity 数据增长速度快 获取数据速度快 数据处理速度快
信: veracity 数据的准确性 数据的可信赖度
—Hodoop概述
-
hadoop
-
狭义上: 其实就是hadoop技术栈(hdfs , mapreduce ,yarn)
-
广义上: Hadoop通常是指一个更广泛的概念——Hadoop生态圈
Hadoop创始人: Doug Cutting Hadoop起源于Apache Lucene子项目:Nutch Nutch的设计目标是构建一个大型的全网搜索引擎。遇到瓶颈:如何解决数十亿网页的存储和索引问题 Google三篇论文: 三驾马车 《The Google file system》:谷歌分布式文件系统GFS 《MapReduce Simplified Data Processing on Large Clusters》:谷歌分布式计算框架MapReduce 《Bigtable A Distributed Storage System for Structured Data》:谷歌结构化数据存储系统 开源社区版本: Apache软件基金会(Apache Software Foundation,简称ASF)是专门支持开源项目的一个非盈利性组织。URL:http://hadoop.apache.org/ 商业发行版本: CDH(Cloudera's Distribution, including Apache Hadoop) Cloudera公司出品,目前使用最多的商业版 大数据体系中,分布式的调度主要有2类架构模式:去中心化模式 和中心化模式 大数据框架,大多数的基础架构上,都是符合: 中心化模式的。也被称之为:一主多从模式,简称主从模式(Master And Slaves) 主从模式规则: 有一个中心节点(服务器)来统筹其它服务器的工作,统一指挥,统一调派,避免混乱。 分布式: 分布式的主要工作是分解任务,将职能拆解给多个服务器,多个服务器在一起做不同的事,配合完成同一个任务 集群: 集群主要是将同一个业务,部署在多个服务器上 ,多个人在一起做同样的事
—Hadoop版本+架构
三个版本:
1.x版本系列: HDFS 和 MapReduce
2.x版本系列: HDFS 和 MapReduce 和 YARN 主要基于jdk7,但是jdk7在15年左右不更新,不得不切换更新版本
3.x版本系列: HDFS 和 MapReduce 和 YARN 主要更细了对JDK8的支持.
hadoop架构:
HDFS存储
YARN资源调度
MapReduce计算
HDFS(分布式存储文件系统)-- 解决了海量数据的存储
NameNode(主节点):管理从节点,分配存储数据的任务 存储元数据(描述数据的数据)
SecondaryNameNode(辅助主节点): 帮助主节点合并管理元数据
DataNode(从节点):存储海量数据
YARN(资源调度的组件)-- 解决了多任务的资源调度
ResourceManager(主节点): 接收用户计算请求任务 根据任务进行资源分配
NodeManager(从节点): 执行主节点分配的任务
MapReduce(分布式计算组件)-- 解决了海量数据的计算
核心思想: 分而治之
map阶段: 先拆分成多个map任务,把大任务分成小任务去执行
reduce阶段: 再执行reduce任务把各个map结果合并归纳,把小任务的结果合并到一起成为最终结果
三大组件配合:MapReduce计算需要的数据和产生的结果需要HDFS来进行存储,MapReduce的运行需要由Yarn集群来提供资源调度。
—Hadoop环境,集群操作[重点]
集群介绍,启动集群,本地配置域名
集群介绍:
node1:192.168.88.161
node2:192.168.88.162
node3:192.168.88.163
用户名: root
密码: 123456 (输入密码不显示)
初始使用: 把三台虚拟机快照恢复到7hive安装完成
注意: hive没有配置环境变量,可以自己配置
启动集群:
启动hdfs和yarn命令: start-all.sh
停止hdfs和yarn命令: stop-all.sh
启动mr历史任务服务器: mapred --daemon start historyserver
jps: 查看java进程的一个小工具
jps -m:查看java进程详情
本地配置域名映射:
注意: 想要上传文件夹需要配置本地域名映射
hosts文件路径: C:\Windows\System32\drivers\etc
把以下内容复制到文件末尾,保存
192.168.88.161 node1.itcast.cn node1
192.168.88.162 node2.itcast.cn node2
192.168.88.163 node3.itcast.cn node3
配置完成后,可以直接通过node1访问
本地浏览器访问hadoop
web-ui页面查看
(资源存储)HDFS: http://node1:9870/
(资源调度)YARN: http://node1:8088/
(历史界面)MR: http://node1:19888
—Hadoop入门案例
—HDFS组件内部节点简介
HDFS的四个节点:HDFS Client、NameNode、DataNode和Secondary NameNode
1、Client
就是客户端。浏览器,CRT终端(从HDFS上传和下载文件)
拆分块 每个块大小事128M,文件切分。文件上传 HDFS 的时候,Client 将文件切分成 一个一个的Block,然后进行存储
与 NameNode 交互,获取文件的位置信息。
与 DataNode 交互,读取或者写入数据。
Client 提供一些命令来管理 和访问HDFS,比如启动或者关闭HDFS。
2、NameNode
就是 master,它是一个主管、管理者。记录元数据,并指派DateNode去存储块数据
管理 HDFS 元数据(文件路径,文件的大小,文件的名字,文件权限,文件的block切片信息….)。
配置副本策略。
处理客户端读写请求。
3、DataNode
存储节点.所有的HDFS数据都在这里.
就是Slave。NameNode 下达命令,DataNode 执行实际的操作。
存储实际的数据块。
执行数据块的读/写操作。
定时向namenode汇报block信息。
4、Secondary NameNode
并非 NameNode 的热备。当NameNode 挂掉的时候,它并不能马上替换 NameNode 并提供服务。存储节点,所有的HDFS数据都在这里
辅助 NameNode,分担其工作量。
在紧急情况下,可辅助恢复 NameNode。辅助NameNode管理元数据的,紧急情况可以用来恢复数据.
—HDFS的shell命令
主命令格式:
hdfs dfs -命令 参数 #只能操作HDFS系统
hadoop fs -命令 参数 #既可以操作HDFS,也可以操作本地系统
hdfs dfs -h 查看所有命令
mkdir
ls hadoop fs -ls /input
cp
mv
rm
cat
put:上传 从linux文件上把资源上传到HDFS文件系统中
get:下载 HDFS文件系统中下载资源到linux文件中
-命令 参数 #只能操作HDFS系统
hadoop fs -命令 参数 #既可以操作HDFS,也可以操作本地系统
hdfs dfs -h 查看所有命令
```ini
mkdir
ls hadoop fs -ls /input
cp
mv
rm
cat
put:上传 从linux文件上把资源上传到HDFS文件系统中
get:下载 HDFS文件系统中下载资源到linux文件中