腾讯云国际站:如何搭建Hadoop集群?

环境准备

  1. 硬件环境 :准备多台计算机作为 Hadoop 集群的节点,常见的如一台主节点(Master)和若干从节点(Slave)。各节点配置应满足一定要求,如 CPU、内存、磁盘空间等,具体根据实际业务需求而定。
  2. 操作系统 :在所有节点上安装 Linux 操作系统,常见的如 CentOS、Ubuntu 等。确保各节点的操作系统版本一致,避免因版本差异导致兼容性问题。
  3. 关闭防火墙和 selinux :为避免防火墙和 selinux 对 Hadoop 集群通信的干扰,在所有节点上关闭防火墙和 selinux。使用命令 systemctl stop firewalldsystemctl disable firewalld 关闭防火墙,通过编辑 /etc/selinux/config 文件将 selinux 设置为 disabled 并重启系统来关闭 selinux。

软件安装

  1. 安装 JDK :Hadoop 是基于 Java 开发的,因此需要在所有节点上安装 JDK。可以从 Oracle 官网下载合适版本的 JDK,如 JDK 8 或 JDK 11 等,然后进行解压安装,并配置环境变量,使系统能够识别 Java 命令。
  2. 下载 Hadoop :从 Apache Hadoop 官方网站下载合适版本的 Hadoop 安装包,如 Hadoop 3.3.4 等。
  3. 解压 Hadoop :将下载的 Hadoop 安装包解压到指定目录,如 /opt/software/,并创建软链接以便于后续使用,如 ln -s /opt/software/hadoop-3.3.4/ /opt/software/hadoop

配置集群

  1. 配置 hosts 文件 :在所有节点的 /etc/hosts 文件中添加各节点的 IP 地址和主机名映射,以便节点之间可以通过主机名相互访问。例如:

    • 192.168.1.100 master
    • 192.168.1.101 slave1
    • 192.168.1.102 slave2
  2. 配置环境变量 :在所有节点上编辑 /etc/profile 文件或 ~/.bashrc 文件,添加 Hadoop 相关的环境变量,如 HADOOP_HOMEPATH 等,使系统能够识别 Hadoop 命令。例如:

    • export HADOOP_HOME=/opt/software/hadoop
    • export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  3. 配置 SSH 免密登录 :在主节点上生成 SSH 密钥对,然后将公钥分发到所有从节点的 ~/.ssh/authorized_keys 文件中,使主节点能够免密登录到从节点。使用命令 ssh-keygen -t rsa 生成密钥对,ssh-copy-id root@slave1 等命令分发公钥。

  4. 配置 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 文件中添加集群中的从节点主机名,如 slave1slave2 等。

  5. 分发配置文件 :将主节点上配置好的 Hadoop 配置文件分发到所有从节点的相同目录下,可以使用 xsync 脚本或 scp 命令等进行分发,确保所有节点的配置一致。

初始化和启动集群

  1. 格式化 NameNode :在主节点上执行命令 hdfs namenode -format 对 HDFS 的 NameNode 进行格式化,初始化 HDFS 文件系统。
  2. 启动 Hadoop 集群 :使用命令 start-dfs.sh 启动 HDFS 服务,使用命令 start-yarn.sh 启动 YARN 服务。
  3. 验证集群状态 :通过命令 jps 查看各节点上 Hadoop 进程是否正常运行,在主节点上应有 NameNode、ResourceManager 等进程,在从节点上应有 DataNode、NodeManager 等进程。还可以通过浏览器访问 Hadoop 的 Web 界面,如 http://master:9870 查看 HDFS 状态,http://master:8088 查看 YARN 状态。