VMware虚拟机集群上部署HDFS集群
一、安装包下载
官方网址:https://hadoop.apache.org,点击Download。
hadoop环境配置前置准备-CSDN博客
或者从网盘资料中获取安装包
链接: https://pan.baidu.com/s/1vTQWQLmZ8JHUqs5Us5FcFQ?pwd=zgzs 提取码: zgzs
在前置准备章节,我们准备了基于VMware的三台虚拟机,其硬件配置如下。
节点 | CPU | 内存 |
node1 | 1核心 | 4GB |
node2 | 1核心 | 2GB |
node3 | 1核心 | 2GB |
Hadoop HDFS的角色包含:
NameNode,主节点管理者
DataNode,从节点工作者
SecondaryNameNode,主节点辅助
节点 | 服务 |
node1 | NameNode、DataNode、SecondaryNameNode |
node2 | DataNode |
node3 | DataNode |
注意
请确认已经完成前置准备中的服务器创建、固定IP、防火墙关闭、Hadoop用户创建、SSH免密、JDK部署等操作。
hadoop环境配置前置准备-CSDN博客
二、上传 & 解压
1. 上传Hadoop安装包到node1节点中,位置 /export/server
2. 解压缩安装包到/export/server/中
tar -zxvf hadoop-3.3.4.tar.gz -C /export/server
3. 构建软链接
cd /export/serverln -s /export/server/hadoop-3.3.4 hadoop
4. 进入hadoop安装包内
cd hadoop
5、cd 进入Hadoop安装包内,通过
ls -l
命令查看文件夹内部结构
各个文件夹含义如下
三、修改配置文件,应用自定义设置
配置HDFS集群,我们主要涉及到如下文件的修改:
这些文件均存在与$HADOOP_HOME/etc/hadoop文件夹中。
ps:$HADOOP_HOME是后续我们要设置的环境变量,其指代Hadoop安装文件夹即/export/server/hadoop
一、配置workers文件
# 进入配置文件目录
cd etc/hadoop# 编辑workers文件
vim workers# 填入如下内容
node1
node2
node3
填入的node1、node2、node3,表明集群记录了三个从节点(DataNode)
二、配置hadoop-env.sh文件
# 编辑
vim hadoop-env.sh# 填入如下内容
export JAVA_HOME=/export/server/jdk
export HADOOP_HOME=/export/server/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_LOG_DIR=$HADOOP_HOME/logs
通过记录这些环境变量, 来指明上述运行时的重要信息
三、配置core-site.xml文件
# 编辑
vim core-site.xml# 在文件内部填入如下内容
<configuration><property><name>fs.defaultFS</name><value>hdfs://node1:8020</value></property><property><name>io.file.buffer.size</name><value>131072</value></property>
</configuration>
hdfs://node1:8020为整个HDFS内部的通讯地址,应用协议为hdfs://(Hadoop内置协议)
表明DataNode将和node1的8020端口通讯,node1是NameNode所在机器
此配置固定了node1必须启动NameNode进程
四、配置hdfs-site.xml文件
# 编辑hdfs-site.xml
vim hdfs-site.xml# 在文件内部填入如下内容
<configuration><property><name>dfs.datanode.data.dir.perm</name><value>700</value></property><property><name>dfs.namenode.name.dir</name><value>/data/nn</value></property><property><name>dfs.namenode.hosts</name><value>node1,node2,node3</value></property><property><name>dfs.blocksize</name><value>268435456</value></property><property><name>dfs.namenode.handler.count</name><value>100</value></property><property><name>dfs.datanode.data.dir</name><value>/data/dn</value></property>
</configuration>
key:dfs.datanode.data.dir.perm
含义:hdfs文件系统,默认创建的文件权限设置
值:700,即:rwx------
key:dfs.namenode.name.dir
含义:NameNode元数据的存储位置
值:/data/nn,在node1节点的/data/nn目录下
key:dfs.namenode.hosts
含义:NameNode允许哪几个节点的DataNode连接(即允许加入集群)
值:node1、node2、node3,这三台服务器被授权
key:dfs.blocksize
含义:hdfs默认块大小
值:268435456(256MB)
key:dfs.namenode.handler.count
含义:namenode处理的并发线程数
值:100,以100个并行度处理文件系统的管理任务
key:dfs.datanode.data.dir
含义:从节点DataNode的数据存储目录
值:/data/dn,即数据存放在node1、node2、node3,三台机器的/data/dn内
五、准备数据目录
namenode数据存放node1的/data/nn
datanode数据存放node1、node2、node3的/data/dn
执行如下
在node1节点:
mkdir -p /data/nnmkdir /data/dn
在node2和node3节点:
mkdir -p /data/dn
六、分发Hadoop文件夹
目前,已经基本完成Hadoop的配置操作,可以从node1将hadoop安装文件夹远程复制到node2、node3
分发
# 在node1执行如下命令
cd /export/serverscp -r hadoop-3.3.4 node2:`pwd`/scp -r hadoop-3.3.4 node3:`pwd`/
在node2执行,为hadoop配置软链接
# 在node2执行如下命令
ln -s /export/server/hadoop-3.3.4 /export/server/hadoop
在node3执行,为hadoop配置软链接
# 在node3执行如下命令
ln -s /export/server/hadoop-3.3.4 /export/server/hadoop
七、配置环境变量
为了方便我们操作Hadoop,可以将Hadoop的一些脚本、程序配置到PATH中,方便后续使用。
在Hadoop文件夹中的bin、sbin两个文件夹内有许多的脚本和程序,现在来配置一下环境变量
1、修改环境变量文件
# 编辑
vim /etc/profile# 在/etc/profile文件底部追加如下内容
export HADOOP_HOME=/export/server/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
2、在node2和node3配置同样的环境变量
八、授权为hadoop用户
hadoop部署的准备工作基本完成
为了确保安全,hadoop系统不以root用户启动,我们以普通用户hadoop来启动整个Hadoop服务
所以,现在需要对文件权限进行授权。
ps:请确保已经提前创建好了hadoop用户(前置准备章节中有讲述),并配置好了hadoop用户之间的免密登录
以root身份,在node1、node2、node3三台服务器上均执行如下命令
# 以root身份,在三台服务器上均执行
chown -R hadoop:hadoop /data
chown -R hadoop:hadoop /export
九、格式化整个文件系统
前期准备全部完成,现在对整个文件系统执行初始化
格式化namenode
# 确保以hadoop用户执行
su - hadoop# 格式化namenode
hadoop namenode -format
启动
# 一键启动hdfs集群
start-dfs.sh# 一键关闭hdfs集群
stop-dfs.sh# 如果遇到命令未找到的错误,表明环境变量未配置好,可以以绝对路径执行
/export/server/hadoop/sbin/start-dfs.sh
/export/server/hadoop/sbin/stop-dfs.sh
十、查看HDFS WEBUI
启动完成后,可以在浏览器打开:
http://node1:9870,即可查看到hdfs文件系统的管理网页。