7.12
一、座右铭
我的故事你说,我的文字我落,我值几两你定,我去何方我挑。
二、Hadoop的组成
2.1 HDFS:分布式文件存储系统
NameNode
DataNode
Secondary NameNode
2.2 YARN:分布式资源调度系统
ResourceManager
NodeManager
HDFS、YARN:
主从架构的分布式软件
2.3 MapReduce:分布式离线计算框架
三、Hadoop的安装
3.1 Hadoop配置之前必须先做三件事情
- 配置JDK
- 配置主机和IP的映射
/etc/hosts
- 主机之间的免密登录
~/.ssh
3.2 本地安装–解压之后配置了环境变量
3.3 单点故障问题
伪分布式安装—将分布式软件的所有组件安装到同一个节点 如果是伪分布式安装,从节点只有一个即可
完全分布式安装–将分布式软件的组件安装到不同的节点上 从节点可以有多个
3.4 HA高可用模式安装–将主从架构软件的主节点安装多个
3.3、3.4:
都需要进行Hadoop配置文件的修改的
$HADOOP_HOME/etc/hadoop
修改的配置文件是一模一样的
3.4.1 hadoop-env.sh
export JAVA_HOME
export HADOOP_HOME=/opt/app/hadoop-3.1.4
export HADOOP_CONF_DIR=/opt/app/hadoop-3.1.4/etc/hadoop
export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root export YARN_NODEMANAGER_USER=root
3.4.2 core-site.xml
fs.defaultFS:指定HDFS的通信端口
hadoop.tmp.dir:指的HDFS底层的存储目录
-
<property> <name>fs.defaultFS</name> <value>hdfs://single:9000</value> </property> <!-- 指定hadoop运行时产生文件的存储目录 HDFS相关文件存放地址--> <property> <name>hadoop.tmp.dir</name> <value>/opt/app/hadoop-3.1.4/metaData</value> </property>
3.4.3 hdfs-site.xml
dfs.replication:hdfs的dn存储的block的备份数
dfs.namenode.http-address——50070,9870
dfs.datanode.http.address——50075,9864
dfs.namenode.secondary.http-address——50090,9868
后三个是:hdfs三个组件的web监控界面
3.4.4 yarn-env.sh
export JAVA_HOME
3.4.5 yarn-site.xml
yarn.resourcemanager.hostname:指定yarm的RM组件安装到哪个主机上
yarn.resourcemanager.classpath:指定YARN软件运行的时候需要的一些环境路径
yarn.resourcemanager.webapp.address:指的是RM的web访问路径
3.4.6 mapred-env.sh
export JAVA_HOME
3.4.7 mapred-site.xml
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 指定MR APP Master需要用的环境变量 hadoop3.x版本必须指定-->
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- 指定MR 程序 map阶段需要用的环境变量 hadoop3.x版本必须指定-->
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- 指定MR程序 reduce阶段需要用的环境变量 hadoop3.x版本必须指定-->
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
3.4.8 workers/slaves
配置HDFS和YARN的从节点在哪些节点上安装的
3.4.9 log4j.properties
hadoop.log.dir=/opt/app/hadoop-3.1.4/logs 指定hadoop运行过程中日志输出目录
3.4.10 启动hadoop之前必须先格式化HDFS
四、Hadoop的完全分布式安装
- 克隆三台虚拟机,三台虚拟机需要配置IP、主机名、主机IP映射、ssh免密登录、时间服务器chrony的安装同步、yum数据仓库更换国内镜像源
- 安装JDK
- 安装Hadoop完全分布式
- 格式化HDFS:namenode所在节点格式化HDFS node1
- 启动HDFS和YARN
- HDFS是在namenode所在节点启动
- YARN是在RM所在节点启动
五、Hadoop的第一个核心组件:HDFS(分布式文件存储系统)
5.1 HDFS的组成
5.1.1 NameNode
- 存储整个HDFS集群的元数据(metaData)
- 管理整个HDFS集群
5.1.2 DataNode
- 存储数据,是存储的数据的block块。——默认情况下block块的大小是128M
- blocksize大小的计算公式
- 寻址时间:下载文件时找到文件的时间 寻址时间是传输时间的1%的时候是最佳的状态 hdfs的寻址时间平均是10ms
- 数据传输速度:100M/s
5.1.3 SecondaryNameNode
辅助NameNode去进行元数据的合并等操作
5.2 HDFS的基本使用
HDFS是一个分布式文件存储系统,可以存储数据(文件数据),HDFS既然是一个文件系统,那么就可以进行文件的上传、下载、删除、创建文件夹等等
HDFS给我们提供了两种操作的方式
- 命令行来操作
hdfs dfs 选项 xxx
- 通过Java API来进行操作
HDFS不适用于大量小文件的常量、HDFS不能对存储的文件进行修改操作