-
HDFS是主/从式的架构,一个HDFS集群会有一个NameNode以及多个DataNode
-
一个文件会被拆分为多个数据块进行存储,默认数据块大小是128M
-
即便一个数据块大小为130M,也会被拆分为2个Block,一个大小为128M,一个大小为2M
-
HDFS是使用Java编写的,使得其可以运行在安装了JDK的操作系统之上
NN
-
负责客户端请求的响应
-
负责元数据(文件的名称、副本系数、Block存放的DN)的管理
DN
-
存储用户的文件对应的数据块(Block)
-
会定期向NN发送心跳信息,汇报本身及其所有的block信息和健康状况
========================================================================
在HDFS中,一个文件会被拆分为一个或多个数据块
默认情况下,每个数据块都会有三个副本
每个副本都会被存放在不同的机器上,而且每一个副本都有自己唯一的编号
- 如下图
===========================================================================
NameNode节点选择一个DataNode节点去存储block副本得过程就叫做副本存放,这个过程的策略其实就是在可靠性和读写带宽间得权衡。
《Hadoop权威指南》中的默认方式:
-
第一个副本会随机选择,但是不会选择存储过满的节点。
-
第二个副本放在和第一个副本不同且随机选择的机架上。
-
第三个和第二个放在同一个机架上的不同节点上。
-
剩余的副本就完全随机节点了
-
可靠性:block存储在两个机架上
-
写带宽:写操作仅仅穿过一个网络交换机
-
读操作:选择其中得一个机架去读
-
block分布在整个集群上
============================================================================
5.1 官方安装文档地址
-
Mac OS 10.14.4
-
JDK1.8
-
Hadoop 2.6.0-cdh5.7.0
-
ssh
-
rsync
下载Hadoop 2.6.0-cdh5.7.0
的tar.gz包并解压:
MacOS安装环境
设置 JAVA_HOME
- 添加java_home到.bash_profile文件中
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
export CLASS_PATH=$JAVA_HOME/lib
- 输入命令ssh localhost,可能遇到如下问题
- 原因是没打开远程登录,进入系统设置->共享->远程登录打开就好
这时你再ssh localhost一下
tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz
-
解压到doc目录,解压完后,进入到解压后的目录下,可以看到hadoop的目录结构如下
-
bin目录存放可执行文件
-
etc目录存放配置文件
-
sbin目录下存放服务的启动命令
-
share目录下存放jar包与文档
以上就算是把hadoop给安装好了,接下来就是编辑配置文件,把JAVA_HOME配置一下
cd etc/
cd hadoop
vim hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.8/ # 根据你的环境变量进行修改
- 编辑 hadoop-env.sh 文件
export JAVA_HOME=${/usr/libexec/java_home}
由于我们要进行的是单节点伪分布式环境的搭建,所以还需要配置两个配置文件,分别是core-site.xml以及hdfs-site.xml
Hadoop也可以在伪分布模式下的单节点上运行,其中每个Hadoop守护进程都在单独的Java进程中运行
![具体更改](https://img-blog.csdnimg.cn/img_convert/fe507118beb94e5fb2d32ed0
【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
d4045a09.png)
启动 hdfs
查看进程
访问http://localhost:50070/
表示HDFS已经安装成功
步骤小结
关闭