部署环境要求:已完成JDK环境部署、配置完成固定IP、SSH免费登录、防火墙关闭等。
1、下载、上传主机
官网:https://hadoop.apache.org
2、解压缩、创建软连接
解压:
tar -zxvf hadoop-3.3.6.tar.gz
软连接:
ln -s /usr/local/apps/hadoop-3.3.6 hadoop
3、文件配置
hadoop目录结构
各个文件夹含义如下:
bin:存放Hadoop的各类程序(命令)
etc:存放Hadoop的配置文件
include:C语言的一些头文件
lib:存放Linux系统的动态链接库(so文件)
libexec :存放配置Hadoop系统的脚本文件(.sh和.cmd)
licenses-binary:存放许可证文件
sbin:管理员程序(super bin)
share:存放二进制源码(Java jar包)
配置集群,主要修改以下几个配置:
workers:配置从节点(DataNode)有哪些
hadoop-env.sh:配置Hadoop的相关环境变量
core-site.xml:Hadoop核心配置文件
hdfs-site.xml:HDFS核心配置文件
这些文件均存放在$HADOOP_HOME/etc/hadoop文件夹中。
配置workers:
vim etc/hadoop/workers
修改:
# 配置从节点DataNode
node1
node2
node3
配置hadoop-env.sh:
vim etc/hadoop/hadoop-env.sh
在文件最下面追加配置:
# Supplemental options for privileged registry DNS
# By default, Hadoop uses jsvc which needs to know to launch a
# server jvm.
# export HADOOP_REGISTRYDNS_SECURE_EXTRA_OPTS="-jvm server"
# 配置hadoop相关环境变量
export JAVA_HOME=/usr/local/apps/jdk # java环境路径
export HADOOP_HOME=/usr/local/apps/hadoop # hadoop安装路径
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop # hadoop配置文件路径
export HADOOP_LOG_DIR=$HADOOP_HOME/logs # 指明hadoop运行日志路径
配置core-site.xml:
vim etc/hadoop/core-site.xml
修改:
<!--
设置默认的文件系统,此配置指定了HDFS Namenode的服务地址和端口,
在本例中,Namenode运行在名为node1的服务器的8020端口上。
设置Hadoop I/O操作的缓冲区大小,单位是字节。
较大的缓冲区可以减少磁盘I/O次数,可能提升文件读写性能,
但在某些场景下,过大的缓冲区可能会导致内存使用过高。
在本例中,设置为131072字节(即128KiB)。
-->
<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-site.xml:
vim etc/hadoop/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</v