环境准备
- 硬件环境 :准备多台计算机作为 Hadoop 集群的节点,常见的如一台主节点(Master)和若干从节点(Slave)。各节点配置应满足一定要求,如 CPU、内存、磁盘空间等,具体根据实际业务需求而定。
- 操作系统 :在所有节点上安装 Linux 操作系统,常见的如 CentOS、Ubuntu 等。确保各节点的操作系统版本一致,避免因版本差异导致兼容性问题。
- 关闭防火墙和 selinux :为避免防火墙和 selinux 对 Hadoop 集群通信的干扰,在所有节点上关闭防火墙和 selinux。使用命令
systemctl stop firewalld和systemctl disable firewalld关闭防火墙,通过编辑/etc/selinux/config文件将 selinux 设置为 disabled 并重启系统来关闭 selinux。
软件安装
- 安装 JDK :Hadoop 是基于 Java 开发的,因此需要在所有节点上安装 JDK。可以从 Oracle 官网下载合适版本的 JDK,如 JDK 8 或 JDK 11 等,然后进行解压安装,并配置环境变量,使系统能够识别 Java 命令。
- 下载 Hadoop :从 Apache Hadoop 官方网站下载合适版本的 Hadoop 安装包,如 Hadoop 3.3.4 等。
- 解压 Hadoop :将下载的 Hadoop 安装包解压到指定目录,如
/opt/software/,并创建软链接以便于后续使用,如ln -s /opt/software/hadoop-3.3.4/ /opt/software/hadoop。
配置集群
-
配置 hosts 文件 :在所有节点的
/etc/hosts文件中添加各节点的 IP 地址和主机名映射,以便节点之间可以通过主机名相互访问。例如:192.168.1.100 master192.168.1.101 slave1192.168.1.102 slave2。
-
配置环境变量 :在所有节点上编辑
/etc/profile文件或~/.bashrc文件,添加 Hadoop 相关的环境变量,如HADOOP_HOME和PATH等,使系统能够识别 Hadoop 命令。例如:export HADOOP_HOME=/opt/software/hadoopexport PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin。
-
配置 SSH 免密登录 :在主节点上生成 SSH 密钥对,然后将公钥分发到所有从节点的
~/.ssh/authorized_keys文件中,使主节点能够免密登录到从节点。使用命令ssh-keygen -t rsa生成密钥对,ssh-copy-id root@slave1等命令分发公钥。 -
配置 Hadoop 核心文件 :
-
core-site.xml :在主节点的
$HADOOP_HOME/etc/hadoop/core-site.xml文件中配置 HDFS 的 NameNode 地址等信息。例如:-
<property><name>fs.defaultFS</name><value>hdfs://master:9000</value></property>。
-
-
hdfs-site.xml :在
$HADOOP_HOME/etc/hadoop/hdfs-site.xml文件中配置 HDFS 的相关参数,如副本数量、NameNode 和 DataNode 的存储目录等。例如:-
<property><name>dfs.replication</name><value>3</value></property>
-
<property><name>dfs.namenode.name.dir</name><value>/data/hadoop/nn</value></property>
-
<property><name>dfs.datanode.data.dir</name><value>/data/hadoop/dn</value></property>。
-
-
mapred-site.xml :在
$HADOOP_HOME/etc/hadoop/mapred-site.xml文件中配置 MapReduce 的相关参数,如框架名称等。例如:-
<property><name>mapreduce.framework.name</name><value>yarn</value></property>。
-
-
yarn-site.xml :在
$HADOOP_HOME/etc/hadoop/yarn-site.xml文件中配置 YARN 的 ResourceManager 地址等信息。例如:-
<property><name>yarn.resourcemanager.hostname</name><value>master</value></property>。
-
-
workers 文件 :在
$HADOOP_HOME/etc/hadoop/workers文件中添加集群中的从节点主机名,如slave1、slave2等。
-
-
分发配置文件 :将主节点上配置好的 Hadoop 配置文件分发到所有从节点的相同目录下,可以使用
xsync脚本或scp命令等进行分发,确保所有节点的配置一致。
初始化和启动集群
- 格式化 NameNode :在主节点上执行命令
hdfs namenode -format对 HDFS 的 NameNode 进行格式化,初始化 HDFS 文件系统。 - 启动 Hadoop 集群 :使用命令
start-dfs.sh启动 HDFS 服务,使用命令start-yarn.sh启动 YARN 服务。 - 验证集群状态 :通过命令
jps查看各节点上 Hadoop 进程是否正常运行,在主节点上应有 NameNode、ResourceManager 等进程,在从节点上应有 DataNode、NodeManager 等进程。还可以通过浏览器访问 Hadoop 的 Web 界面,如http://master:9870查看 HDFS 状态,http://master:8088查看 YARN 状态。