Hadoop 部署

1 准备工作

  • 准备好集群环境
    详情参考博客:集群初始配置
  • 安装 Java
    1. 输入javac可查看安装提示信息。
    2. 使用命令sudo apt install openjdk-8-jdk-headless安装JDK
    3. 配置环境变量。使用sudo vim /etc/profile打开profile文件,输入以下内容,保存并退出。然后输入命令source /etc/profile使修改生效。
      export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
      export JRE_HOME=$JAVA_HOME/jre
      export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
      export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
      

2 获取文件

  • 去官网https://dlcdn.apache.org/hadoop/下载文件。比如下载hadoop-3.4.0.tar.gz
  • 上传至某一个 Linux 设备上。
  • 创建目录/opt/hadoop/,或根据自己情况选择其他目录。使用以下命令解压:
    sudo tar -zxvf hadoop-3.4.0.tar.gz -C /opt/hadoop/
    

3 修改配置

3.1 hadoop-env.sh

修改JAVA_HOME,如:

export JAVA_HOME=/usr/local/lib/java/jdk1.8.0_241

3.2 yarn-env.sh

修改JAVA_HOME,如:

export JAVA_HOME=/usr/local/lib/java/jdk1.8.0_241

3.3 core-site.xml

添加配置如下:

<configuration>
    <!-- 配置指定HDFS的通信地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1:8020</value>
    </property>
    <!-- 配置网页登录使用的用户,也可以不配置 -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>cluster</value>
    </property>
</configuration>

3.4 hdfs-site.xml

添加配置如下:

<configuration>
    <!-- 配置NameNode的http访问地址和端口号 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>node1:9870</value>
    </property>
    <!-- 配置SecondaryNameNode的http访问地址和端口号 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node2:9868</value>
    </property>
    
    <!----------- 下面的可选择配置 ----------->
    
    <!-- 配置HDFS副本数量 -->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    
    <!-- 配置NameNode存放的路径 -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/hadoop/hadoop-3.4.0/tmp/dfs/name</value>
    </property>
    <!-- 配置DataNode存放的路径 -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/hadoop/hadoop-3.4.0/tmp/dfs/data</value>
    </property>
</configuration>

3.5 mapred-site.xml

添加配置如下:

<configuration>
    <!-- 配置MapReduce运行时的框架 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    
    <!----------- 下面的可选择配置 ----------->
    
    <!-- 配置MapReduce的历史服务器安装的位置及端口号 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>node3:10020</value>
    </property>
    <!-- 设置历史服务器的web页面地址和端口 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>node3:19888</value>
    </property>
    
    <!-- 配置存放日志文件的临时目录 -->
    <property>
        <name>mapreduce.jobhistory.intermediate-done-dir</name>
        <value>/opt/hadoop/hadoop-3.4.0/tmp/mr-history/tmp</value>
    </property>
    <!-- 配置存放运行日志文件的最终目录 -->
    <property>
        <name>mapreduce.jobhistory.done-dir</name>
        <value>/opt/hadoop/hadoop-3.4.0/tmp/mr-history/done</value>
    </property>
</configuration>

3.6 yarn-site.xml

添加配置如下:

<configuration>
    <!-- 配置ResourceManager运行位置 -->
    <property>
        <name>yarn.resourcemanager.hostsname</name>
        <value>node3</value>
    </property>
    <!-- ResourceManager 对 NodeManager 暴露的地址 -->
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>node1:8031</value>
    </property>
    
    <!-- 配置NodeManager启动时加载server的方式 -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <!----------- 下面的可选择配置 ----------->
    
    <!-- ResourceManager 对客户端暴露的地址 -->
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>node1:8032</value>
    </property>
    <!-- ResourceManager 对 ApplicationMaster 暴露的访问地址 -->
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>node1:8030</value>
    </property>
    <!-- 配置ResourceManager服务器的web地址和端口 -->
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>node1:8088</value>
    </property>
    <!-- ResourceManager 对管理员暴露的访问地址 -->
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>node1:8033</value>
    </property>

    <!-- 配置使用mapreduce_shuffle中的类 -->
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <!-- 配置配置是否启用日志聚集功能 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <!-- 配置聚集的日志在HDFS上保存的最长时间 -->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>106800</value>
    </property>
    <!-- 配置日志聚合目录 -->
    <property>
        <name>yarn.nodemanager.remote-app-log-dir</name>
        <value>/opt/hadoop/hadoop-3.4.0/logs</value>
    </property>
</configuration>

namenode、secondary namenode 和 ResourceManager 建议放在不一设备上。

3.7 workers

设置为你的设备地址。如

node1
node2
node3

4 分发文件

经过上面的配置已经配置好文件,接下来需要把文件分发给其他设备。

5 启动集群

在 Hadoop 根目录运行以下命令。

  • 在启动 Hadoop 集群前,需要先格式化 NameNode,在 Master 主机下操作。在下一次格式化之前,需要停止所有的 NameNode和 DateNode,并删除所有机器的 tmp 和 logs 中的文件。
    ./bin/hdfs namenode -format
    
  • 启动和停止HDFS:
    ./sbin/start-dfs.sh        #启动HDFS
    ./sbin/stop-dfs.sh         #停止HDFS
    
  • 启动和停止YARN:
    ./sbin/start-yarn.sh       #启动YARN
    ./sbin/stop-yarn.sh        #停止YARN
    
  • 全部启动和停止:
    ./sbin/start-all.sh        #启动HDFS和YARN
    ./sbin/stop-all.sh         #停止HDFS和YARN
    
  • 启动和停止历史(日志)服务器:
    ./sbin/mr-jobhistory-daemon.sh start historyserver     #启动historyserver
    ./sbin/mr-jobhistory-daemon.sh start historyserver     #停止historyserver
    

6 访问

  • 访问HDFS:node1:9870
  • 访问YARN:node3:8088
### Hadoop部署教程 Hadoop部署通常分为单机模式、伪分布式模式以及完全分布式模式。以下是基于完全分布式环境下的 Hadoop 部署指南。 #### 1. 环境准备 在开始之前,确保所有的节点都已配置好基础环境,包括但不限于 JDK 安装、SSH 密钥免密登录配置等[^2]。 还需要确认所有机器上的 `/etc/hosts` 文件已经正确映射各主机名到 IP 地址。 #### 2. 用户权限校验 检查 `hadoop` 文件夹下每个文件是否属于 `hadoop` 组中的 `hadoop` 用户。如果不是,则需要通过以下命令重新设置用户和组: ```bash chown -R hadoop:hadoop /path/to/hadoop/ ``` #### 3. 分发安装包至集群节点 将 Hadoop 安装目录分发到其他节点上。例如,在主节点执行如下命令可以将安装路径复制到另一台名为 `hadoop2` 的服务器上: ```bash scp -r /export/servers/hadoop-3.3.0 root@hadoop2:/export/servers/ ``` 此操作需针对每台目标节点重复进行[^3]。 #### 4. 修改核心配置文件 编辑 Hadoop 的主要配置文件(如 `core-site.xml`, `hdfs-site.xml`, `mapred-site.xml`, 和 `yarn-site.xml`),并根据实际需求调整参数值。这些文件位于 `$HADOOP_HOME/etc/hadoop/` 下面。 #### 5. 启动 JournalNode 进程 为了支持高可用性 (HA),需要启动所有节点上的 JournalNode 进程。可以通过脚本批量运行该服务: ```bash [hadoop@cs0 hadoop]$ runRemoteCmd.sh "/home/hadoop/app/hadoop/sbin/hadoop-daemon.sh start journalnode" all ``` 上述指令会依次连接各个节点来开启对应的 JournalNode 实例[^1]。 #### 6. 初始化 NameNodes 并格式化 如果尚未初始化 Namenode 或者 SecondaryNamenode 数据库结构的话,请先执行下面这条命令来进行格式化处理: ```bash hdfs namenode -format ``` #### 7. 开启整个 HDFS 及 YARN 生态系统 最后一步就是正式启动 HDFS 和 MapReduce/YARN 框架的服务组件们啦!分别输入这两条语句即可实现目的: ```bash start-dfs.sh && start-yarn.sh ``` 至此,完整的 Hadoop 集群应该已经被成功搭建起来了! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值