1. hadoop 3.x 完全分布式环境搭建

本文详细介绍如何在CentOS 7环境下安装配置Hadoop 3.2.4集群,包括JDK安装、SSH免密码登录配置、Hadoop各组件配置等步骤,并介绍了Jobhistory服务器与日志聚集服务的配置方法。
一. 安装环境
hadoop1: 192.168.40.144
hadoop2:192.168.40.145
hadoop3: 192.168.40.146
操作系统: centos7
hadoop版本: apache-hadoop-3.2.4
jdk版本:1.8
二. 安装步骤
1.安装jdk

jdk的安装过程此处不赘述,不熟悉的话可以参考网上的资料。

2.修改主机映射并配置ssh免密码登录

为了方便配置信息的维护,我们在hadoop配置文件中使用主机名来标识一台主机,那么我们需要在集群中配置主机与ip的映射关系。
修改集群中每台主机/etc/hosts文件,添加如下内容。

192.168.40.144 hadoop1
192.168.40.145 hadoop2
192.168.40.146 hadoop3

集群在启动的过程中需要ssh远程登录到别的主机上,为了避免每次输入对方主机的密码,我们需要对hadoop1配置免密码登录
在hadoop1上生成公钥。

ssh-keygen 

一路enter确认即可生成对应的公钥。

将hadoop1的公钥拷贝到hadoop1, hadoop2, hadoop3节点上。

ssh-copy-id  -i  ~/.ssh/id_rsa.pub  root@hadoop1
ssh-copy-id  -i  ~/.ssh/id_rsa.pub  root@hadoop2
ssh-copy-id  -i  ~/.ssh/id_rsa.pub  root@hadoop3
3. 修改hadoop配置

下载hadoop 安装包,版本为3.2.4。

  1. 解压安装包

    tar xf hadoop-3.2.4.tar.gz
    
  2. 修改etc/hadoop/hadoop-env.sh

    export JAVA_HOME=/opt/jdk1.8.0_91
    
  3. 修改etc/hadoop/core-site.xml

    <property>
    	<name>fs.defaultFS</name>
    	<value>hdfs://hadoop1:9000</value>
    </property>
    <property>
    	<name>hadoop.tmp.dir</name>
    	<value>/opt/hadoop-3.2.4/data</value>
    </property>
    
  4. 修改etc/hadoop/hdfs-site.xml

    <property>
    	<name>dfs.namenode.http-address</name>
    	<value>hadoop1:9870</value>
    </property>
    <property>
    	<name>dfs.namenode.secondary.http-address</name>
    	<value>hadoop2:9868</value>
    </property>
    
  5. 修改etc/hadoop/mapred-site.xml

    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=/opt/hadoop-3.2.4</value>
    </property>
    <property>
       <name>mapreduce.map.env</name>
       <value>HADOOP_MAPRED_HOME=/opt/hadoop-3.2.4</value>
    </property>
    <property>
       <name>mapreduce.reduce.env</name>
       <value>HADOOP_MAPRED_HOME=/opt/hadoop-3.2.4</value>
    </property>
    
  6. 修改yarn-site.xml

    <property>
    	<name>yarn.nodemanager.aux-services</name>
    	<value>mapreduce_shuffle</value>
    </property>
    <property>
    	<name>yarn.resourcemanager.hostname</name>
    	<value>hadoop1</value>
    </property>
    
  7. 修改etc/hadoop/works

    hadoop1
    hadoop2
    hadoop3
    
  8. 将配置好的hadoop安装包拷贝到其余的datanode上。

    scp -r /opt/hadoop-3.2.4  root@hadoop2:/opt
    scp -r /opt/hadoop-3.2.4  root@hadoop3:/opt
    
4.启动集群,并验证是否成功
  1. 格式化分布式文件系统(在Hadoop1节点上执行)

    ./bin/hadoop  namenode  -format
    
  2. 启动集群HDFS服务和YARN服务

    ./sbin/start-dfs.sh
    ./sbin/start-yarn.sh
    
  3. 查看所有节点上查看进程

    • hadoop1

      [root@hadoop1 hadoop-3.2.4]# jps
      3040 ResourceManager
      2418 NameNode
      3571 Jps
      3193 NodeManager
      2572 DataNode
      
    • hadoop2

      [root@hadoop2 ~]# jps
      2513 Jps
      2179 DataNode
      2261 SecondaryNameNode
      2391 NodeManager
      
    • hadoop3

      [root@hadoop3 ~]# jps
      2213 DataNode
      2505 Jps
      2346 NodeManager
      
  4. 访问HDFS与YARN的web界面
    在这里插入图片描述
    在这里插入图片描述

三. Jobhistory历史服务器与日志聚集服务

配置Jobhistory服务后和日志聚集服务后,可以方便的查看mapreduce程序运行日志。

  1. 修改mapred-site.xml

    <property>
       <name>mapreduce.jobhistory.address</name>
       <value>hadoop3:10020</value>
    </property>
    <!-- 历史服务器web端地址 -->
    <property>
       <name>mapreduce.jobhistory.webapp.address</name>
       <value>hadoop3:19888</value>
    </property>
    
  2. 修改yarn-site.xml

    <property>
         <name>yarn.log-aggregation-enable</name>
         <value>true</value>
    </property>
    <!-- 日志保留时间设置7天 -->
    <property>
         <name>yarn.log-aggregation.retain-seconds</name>
         <value>604800</value>
    </property>
    <property>
         <name>yarn.log.server.url</name>
         <value>http://hadoop3:19888/jobhistory/logs</value>
    </property>
    
  3. 将配置同步到其它节点

  4. 重启HDFS和YARN服务

    ./sbin/stop-dfs.sh
    ./sbin/stop-yarn.sh
    ./sbin/start-dfs.sh
    ./sbin/start-yarn.sh
    
  5. 在hadoop3节点启动historyserver服务

    mapred --daemon start historyserver
    

启动Jobhistory服务后,可以通过web ui查看mapreduce程序运行日志。

  1. 运行hadoop example 应用程序

    [root@hadoop1 hadoop-3.2.4]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.4.jar  pi 10 10
    
  2. 查看运行日志
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

### Hadoop 3.x 完全分布式部署在 CentOS 7 上的搭建教程 以下是关于在 CentOS 7 系统上搭建 Hadoop 3.x 完全分布式环境的详细指南,涵盖了从安装到配置以及启动集群的全过程。 #### 1. 环境准备 确保所有节点的操作系统为 CentOS 7,并且已经关闭防火墙和 SELinux。 ```bash # 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 关闭 SELinux sed -i &#39;s/SELINUX=enforcing/SELINUX=disabled/g&#39; /etc/selinux/config setenforce 0 ``` 此外,需要确保各节点之间可以通过 SSH 免密登录[^1]。 #### 2. 安装 Java 环境 Hadoop 需要 Java 环境支持。可以使用以下命令安装 OpenJDK: ```bash yum install -y java-1.8.0-openjdk-devel ``` 验证 Java 版本: ```bash java -version ``` #### 3. 解压 Hadoop 安装包 将 Hadoop 安装包解压到指定目录。例如,假设 Hadoop 版本为 3.1.3: ```bash tar -zxvf /opt/software/hadoop-3.1.3.tar.gz -C /opt/servers/ ``` 设置环境变量以便全局访问 Hadoop 命令: 编辑 `~/.bashrc` 文件,添加以下内容: ```bash export HADOOP_HOME=/opt/servers/hadoop-3.1.3 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` 使配置生效: ```bash source ~/.bashrc ``` #### 4. 配置 Hadoop 进入 Hadoop 配置文件目录 `/opt/servers/hadoop-3.1.3/etc/hadoop`,修改以下文件: ##### (1) `core-site.xml` 定义 HDFS 的默认文件系统路径: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> </configuration> ``` ##### (2) `hdfs-site.xml` 配置 HDFS 的副本数和存储路径: ```xml <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/usr/local/hadoop/data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/usr/local/hadoop/data/datanode</value> </property> </configuration> ``` ##### (3) `mapred-site.xml` 启用 YARN 作为资源管理器: ```xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` ##### (4) `yarn-site.xml` 配置 ResourceManager 和 NodeManager: ```xml <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> ``` ##### (5) `workers` 列出所有 DataNode 节点的主机名或 IP 地址: ``` hadoop101 hadoop102 ``` #### 5. 同步配置到其他节点 将 Hadoop 目录同步到其他节点: ```bash cd /opt/servers/ scp -r hadoop-3.1.3 hadoop101:/opt/servers/ scp -r hadoop-3.1.3 hadoop102:/opt/servers/ ``` #### 6. 格式化 NameNode 在主节点(NameNode)上执行以下命令格式化 HDFS 文件系统: ```bash hdfs namenode -format ``` #### 7. 启动 Hadoop 集群 使用脚本启动 Hadoop 集群: ```bash sh hadoop.sh start ``` 同样,关闭集群时可以运行: ```bash sh hadoop.sh stop ``` #### 8. 测试 MapReduce 程序 上传测试数据到 HDFS 并运行 WordCount 示例程序: ```bash hadoop fs -mkdir -p /wordcount/input hadoop fs -put wcdata.txt /wordcount/input hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /wordcount/input /wordcount/output ``` ### 注意事项 - 确保所有节点的时间同步,避免因时间差异导致的问题[^3]。 - 如果遇到权限问题,请检查相关目录的权限设置。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值