简介
一、简介
谈谈大数据中谷歌论文的地位
说起来大数据,就不得不提hadoop,那么也就不得不提谷歌的发布的三篇论文:21世纪前三架马车
- GFS==>HDFS
分布式文件系统
- MapReduce==>MapReduce
分布式计算
- BigTable==>HBase
分布式列式存储数据库
Hadoop的发展
Hadoop官网:https://hadoop.apache.org/old/
- 2006年Hadoop开始诞生第一个版本
NDFS与MapReduce整合
- Hadoop1 : 0.x和1.x系列
- 最早的版本,只有HDFS和MapReduce,存在很多问题
- 单点故障:主服务只能有一个
- Hadoop2 : 2.x
- 目前在工作中最常见的版本,基于Hadoop1多了yarn
- HDFS
默认网页端口50070
- MapReduce v2
- YARN
默认网页端口8088
- Hadoop3 :3.x
- 基于Hadoop2的功能做了架构的重构
- 还有待测试和完善
二、Hadoop的功能及模块
功能
- 大数据存储
- 大数据计算
模块
Hadoop Common
The common utilities that support the other Hadoop modules.
- Hadoop的通用组件,用于连接各个模块的应用
Hadoop Distributed File System (HDFS™)
A distributed file system that provides high-throughput access to application data.
- HDFS,分布式文件系统,用于提供高吞吐量的数据访问
- 实现大数据的存储,提供大数据的读写访问
Hadoop MapReduce
A YARN-based system for parallel processing of large data sets.
- 分布式计算模型,用于并行化的处理大量数据,基于Yarn
MapReduce程序运行在YARN,由YARN提供分布式CPU和内存资源
Hadoop YARN
A framework for job scheduling and cluster resource management.
- 分布式资源管理和任务调度框架
- 资源管理
将多台机器的资源构建成一个整体,CPU、内存
- 对外提供统一的运行资源平台
- 资源容器
- 负责给在YARN中运行的程序提供资源
- 任务调度
- 多个MapReduce程序
- 谁先运行,谁后运行
- 每个程序使用多少资源
部署模式
本地模式
测试,用于测试代码逻辑是否有问题
- 在IDEA中开发MapReduce代码,直接运行,测试代码是否有问题
- 不运行在Yarn上,不是分布式的,只启动一个JVM进行来运行代码
伪分布式
测试,用于测试环境是否有问题
- 一台机器构建分布式
- 所有的主从进程都启动在一台机器
- 环境跟分布式的差别就在于机器个数,性能会差一些
分布式
企业实际的生产环境
- 开发MapReduce程序,打成jar包
- 提交到YARN集群中分布式运行,多台机器并行计算
配置相关
常见的目录及功能
- bin:用于放命令
- etc:用于存放配置文件的
常见的配置文件目录一般叫conf,以前老版本也叫conf,后来hadoop不学好,跟linux学,把配置文件目录名称改成etc
- lib:依赖库
- sbin:一般用于存放进程的管理命令,启动、关闭等等
- 如果既有bin又有sbin,bin一般客户端命令,sbin一般放服务端命令
- logs:一般用于存放日志
tips:Hadoop在安装使用过程中出现任何错误,都会记录在日志中
配置文件
第一类:环境变量配置文件:xxx-env.sh(3个)
- hadoop-env.sh:
用于配置Hadoop的环境变量
- mapred-env.sh:
用于配置MapReduce的环境变量的
- yarn-env.sh:
用于配置yarn的环境变量的
比如添加JDK的路径
export JAVA_HOME=/export/servers/jdk1.8.0_141
第二类:属性配置文件:xxx-site.xml(4个)
官网可以查看这四个默认配置文件中所有配置以及默认值https://hadoop.apache.org/docs/r2.6.5/
- core-site.xml:用于配置Hadoop全局的一些属性
- 指定HDFS的入口,也就是NameNode的地址
NameNode接受客户端请求的端口一般指定为8020
- 指定存储Hadoop的临时数据的文件夹
- …
- 指定HDFS的入口,也就是NameNode的地址
- hdfs-site.xml:用于配置HDFS的属性
- 指定HDFS的web访问端口,用于浏览HDFS集群以及存储的数据
端口一般指定为50070
- 指定datanode将数据存储到每台机器的哪个位置
- …
- 指定HDFS的web访问端口,用于浏览HDFS集群以及存储的数据
- mapred-site.xml:配置MapReduce的属性
- 指定MapReduce程序运行在YARN
- …
- yarn-site.xml:配置YARN的属性
- 指定resource manager启动机器
- yarn上运行的程序类型
- …
第三类:从节点配置文件(1个)
用于配置DataNode和Nodemanager所在的机器
slaves:一行一个