HADOOP精简笔记

分类: Hadoop

Hadoop部署精简版

第一步:系统环境准备

1. 修改主机名并配置 Hosts 映射 分别在三台机器上设置主机名:

# 在第一台机器执行
hostnamectl set-hostname master
# 在第二台机器执行
hostnamectl set-hostname slave1
# 在第三台机器执行
hostnamectl set-hostname slave2

编辑 /etc/hosts 文件,在所有机器的该文件末尾添加完整的映射信息:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.1.10 master
192.168.1.11 slave1
192.168.1.12 slave2

第二步:配置 SSH 免密登录

(以下操作仅在 master 节点执行)

生成公钥和私钥(一路回车即可):

ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2

第三步:安装 JDK

  1. 将下载好的 JDK 压缩包(如 jdk-8u212-linux-x64.tar.gz)解压到 /opt/ 目录:

Bash

tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/
mv /opt/jdk1.8.0_212 /opt/jdk
  1. 配置环境变量,编辑 /etc/profile

Bash

# 在文件末尾追加以下内容
export JAVA_HOME=/opt/jdk
export PATH=$PATH:$JAVA_HOME/bin
  1. 使环境变量生效并验证:

Bash

source /etc/profile
java -version

第四步:安装并配置 Hadoop

  1. 解压 Hadoop 压缩包(如 hadoop-3.3.6.tar.gz)到 /opt/

Bash

tar -zxvf hadoop-3.3.6.tar.gz -C /opt/
mv /opt/hadoop-3.3.6 /opt/hadoop
  1. 配置环境变量,编辑 /etc/profile

Bash

# 在刚才添加的 JAVA_HOME 下面继续追加
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

执行 source /etc/profile 使其生效。

  1. 修改 Hadoop 配置文件。配置文件位于 /opt/hadoop/etc/hadoop/ 目录下。

hadoop-env.sh (在文件末尾追加完整的 Java 路径和运行用户配置):

Bash

export JAVA_HOME=/opt/jdk
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

core-site.xml (提供完整的 XML 结构):

XML

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop/tmp</value>
    </property>
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
    </property>
</configuration>

hdfs-site.xml (提供完整的 XML 结构):

XML

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave1:9868</value>
    </property>
</configuration>

yarn-site.xml (提供完整的 XML 结构):

XML

<?xml version="1.0"?>
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
</configuration>

mapred-site.xml (提供完整的 XML 结构):

XML

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
</configuration>

workers (用于配置 DataNode 和 NodeManager 所在的节点,清空原文件并写入以下完整内容):

Plaintext

master
slave1
slave2

第五步:分发 Hadoop 目录和环境变量

将配置好的 Hadoop 整个目录及系统环境变量文件同步到从节点:

Bash

scp -r /opt/hadoop root@slave1:/opt/
scp -r /opt/hadoop root@slave2:/opt/

scp /etc/profile root@slave1:/etc/
scp /etc/profile root@slave2:/etc/

slave1slave2 上分别执行 source /etc/profile 使环境变量生效。


第六步:初始化与启动集群

1. 格式化 NameNode(只在master) (仅在首次启动前执行一次,切勿重复格式化)

Bash

hdfs namenode -format

2. 启动 HDFS 和 YARNmaster 节点上执行以下命令:

Bash

# 启动 HDFS 进程
start-dfs.sh

# 启动 YARN 进程
start-yarn.sh

3. 验证集群状态 在各节点输入 jps 命令查看运行的 Java 进程:

  • master 应该有:NameNode, DataNode, ResourceManager, NodeManager, Jps

  • slave1 应该有:SecondaryNameNode, DataNode, NodeManager,

Jps

  • slave2 应该有:DataNode, NodeManager, Jps

最后,你可以通过浏览器访问 Hadoop 的 Web UI 来确认集群是否健康运行:

  • HDFS Web UI: http://192.168.1.10:9870
  • YARN Web UI: http://192.168.1.10:8088