Hadoop3.1.3 集群环境搭建

2023-11-19

Hadoop3.1.3 集群环境搭建

1 集群环境配置

主机名 HDFS YARN IP地址 说明
hadoop0 DataNode、NameNode NodeManager 192.168.108.10 主节点(master)
hadoop1 DataNode NodeManager、ResourceManager 192.168.108.11 子节点
hadoop2 DataNode、Secondary NameNode NodeManager 192.168.108.12 子节点

2 master节点配置

注意:其他节点的配置除了IP地址和主机名不同外,其他基本相同,请根据需求调整。

2.1 更改IP地址

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
 
BOOTPROTO="static"
IPADDR="192.168.108.10"
NETMASK="255.255.255.0"
# 注意网关的IP地址
GATEWAY="192.168.108.2"
 
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="7fde8d7c-1922-485f-8865-0197d7b0726f"
DEVICE="ens33"
ONBOOT="yes"
 
# 默认可以不配置,如果连接不上网络,可以配置DNS
DNS1="8.8.8.8"
DNS2="114.114.144.114"

2.2 修改主机名

# 修改主机名
hostnamectl set-hostname hadoop0

# 查看主机名
hostname

2.3 修改hosts文件

# 编辑hosts文件
vim /etc/hosts

# 在最后添加
192.168.108.10	hadoop0
192.168.108.11	hadoop1
192.168.108.12	hadoop2

# 具体内容如下
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.108.10  hadoop0
192.168.108.11	hadoop1
192.168.108.12	hadoop2

# 查看是否配置成功,ping能够连通说明配置成功
ping hadoop0

2.4 关闭防火墙

# 开机禁用防火墙
systemctl disable firewalld.service

# 关闭防火墙
systemctl stop firewalld.service

2.5 禁用selinux

# 编辑配置文件
vim /etc/selinux/config

# 配置内容如下

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
# SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

2.6 配置免密登录

(1)在每台主机上生成密钥文件

# 进入存储密钥的目录
cd /root/.ssh

# 删除旧密钥
rm -rf *

# 生成密钥文件,多次点击“enter”即可,会生成“id_rsa”和“id_rsa.pub”两个文件
# ssh7.0之后关闭了dsa密码验证,需要rsa来生成秘钥
ssh-keygen -t rsa

# 生成"authorized_keys"文件
cat id_rsa.pub >>authorized_keys

(2)复制公钥

ssh-copy-id命令的作用是将公共密钥填充到远程主机的authorized_keys文件中。

# 进入存储密钥的目录
cd /root/.ssh

# 在hadoop0主机的公钥复制到hadoop1和hadoop2
ssh-copy-id hadoop1
ssh-copy-id hadoop2

# 在hadoop1主机的公钥复制到hadoop0和hadoop2
ssh-copy-id hadoop0
ssh-copy-id hadoop2

# 在hadoop2主机的公钥复制到hadoop0和hadoop1
ssh-copy-id hadoop0
ssh-copy-id hadoop1

3 master节点安装jdk

jdk的版本是1.8(jdk-8u144-linux-x64.tar.gz)

3.1 解压jdk文件

# 将文件复制到"/usr/local"目录下
cp jdk-8u144-linux-x64.tar.gz /opt

# 进入"/opt"
cd /opt

# 解压jdk
tar -xzvf jdk-8u144-linux-x64.tar.gz

3.2 配置环境变量

# 编辑"/etc/profile"
vim /etc/profile

# 在文件最后一行添加如下内容
export JAVA_HOME=/opt/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin

# 使环境变量生效
source /etc/profile

# 查看jdk版本号
java -version

4 master节点安装Hadoop

Hadoop的版本是3.1.3(hadoop-3.1.3.tar.gz )

4.1 下载Hadoop

# 官网下载地址
https://hadoop.apache.org/release.html

# Haoop下载地址
https://archive.apache.org/dist/hadoop/common/

4.2 解压Hadoop

# 将文件复制到"/usr/local"目录下
cp hadoop-3.1.3.tar.gz /opt/

# 进入"/opt"
cd /opt

# 解压jdk
tar -xzvf hadoop-3.1.3.tar.gz

4.3 配置环境变量

# 编辑"/etc/profile"
vim /etc/profile

# 在文件最后添加Haddop环境变量,并添加Hadoop的账号变量
export HADOOP_HOME=/opt/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

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

# 使环境变量生效
source /etc/profile

# 查看hadoop版本
hadoop version

5 master节点配置Hadoop

进入“/opt/hadoop-3.1.3/etc/hadoop”目录下,修改下面的配置文件和相关参数。

5.1 配置hadoop-env.sh

作用:主要用于定义hadoop运行环境相关配置信息

# 修改"/opt/hadoop-3.1.3/etc/hadoop"目录下的hadoop-env.sh文件
vim /opt/hadoop-3.1.3/etc/hadoop/hadoop-env.sh

# 修改第37行如下
JAVA_HOME=/opt/jdk1.8.0_144

5.2 配置core-site.xml

作用:配置集群全局参数,系统级别参数

<configuration>
    <!-- 设置Hadoop文件系统 -->
    <property>
        <name>fs.defaultFS</name>
        <!-- HDFS的默认地址、端口、访问地址 -->
        <value>hdfs://hadoop0:9000</value>
    </property>
    
    <!-- 配置hadoop临时目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop-3.1.3/tmp</value>
    </property>
</configuration>

5.3 配置hdfs-site.xml

作用:配置HDFS相关配置参数

<configuration>
    <!-- 设置HDFS副本的数量 -->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>

    <!-- Secondary namenode的访问地址和端口 -->
    <!-- Secondary namenode作用是HDFS的一个检查点帮助NameNode更好的工作,它不能替代和备份NameNode。 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop2:50090</value>
    </property>

    <!-- 指定namenode的访问地址和端口 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop0:50070</value>
    </property>

    <!-- HDFS文件权限,默认是false表示关闭 -->
    <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>

    <!-- 文件块大小,默认128M -->
    <property>
        <name>dfs.blocksize</name>
        <value>134217728</value>
    </property>
</configuration>

5.4 配置yarn-site.xml

作用:配置资源管理调度相关信息

<configuration>
    <!-- YARN集群调度管理者 -->
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>hadoop1</value>
    </property>
    
    <!-- NodeManager上运行的附属服务 -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</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,HADOOP_HOME,PATH</value>
    </property>
    <property>
        <!-- 开启日志聚合功能 -->
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    
    <property>
        <!-- 在虚拟机中如果报错,可以配置关闭内存检测功能 -->
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>

</configuration>

5.5 配置mapred-site.xml

作用:配置MapReduce相关参数,如果不使用MapReduce可以不配置。

<configuration>
    <!-- 设置MapReduce运行时框架,默认是local本地运行,YARN表示新的框架,classic表示经典mapreduce框架 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    
    <!-- 配置JobHistory Server -->
    <!-- 配置MapReduce JobHistory Server地址,默认端口10020 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop1:10020</value>
    </property>

    <!-- 配置MapReduce JobHistory Server web地址,默认端口19888 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop1:19888</value>
    </property>
</configuration>

5.6 配置workers

hadoop0
hadoop1
hadoop2

6 Node节点数据复制

将master节点文件复制到Node节点上。

# 复制profile
scp /etc/profile  hadoop1:/etc/
scp /etc/profile  hadoop2:/etc/

# 复制hosts
scp /etc/hosts hadoop1:/etc/
scp /etc/hosts hadoop2:/etc/

# 复制jdk
scp -r /opt/jdk1.8.0_144 hadoop1:/opt/
scp -r /opt/jdk1.8.0_144 hadoop2:/opt/

# 复制Hadoop
scp -r /opt/hadoop-3.1.3 hadoop1:/opt/
scp -r /opt/hadoop-3.1.3 hadoop2:/opt/

7 启动Hadoop

(1)正常启动hadoop

# 1 格式化节点,没有报错说明格式化成功
hadoop namenode -format

# 2 启动hadoop
start-all.sh

(2)启动失败后重启

# 停止hadoop
stop-all.sh

# 进入Hadoop的安装目录
cd /opt/hadoop-3.1.3

# 删除data和logs旧数据
rm -rf data/  logs/

# 重新格式化和启动即可
hadoop namenode -format
start-all.sh

(3)查看Hadoop启动

# 在浏览器中输入以下IP地址
http://192.168.108.10:50070/

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hadoop3.1.3 集群环境搭建 的相关文章

随机推荐

  • Elasticsearch实战(二十二)---ES数据建模与Mysql对比 一对一模型

    Elasticsearch实战 ES数据建模与Mysql对比实现 一对一模型 文章目录 Elasticsearch实战 ES数据建模与Mysql对比实现 一对一模型 1 一对一 模型 1 1 Mysql建模 1 2 Index ES 模型
  • JetBrains IDE 全新UI申请体验

    JetBrains 宣布为其 IDE 系列产品更新默认 UI 申请 目前需要去官网申请才能获得试用 申请地址 https www jetbrains com lp intellij new ui preview 试用资格 在官网申请之后 就
  • 安装或者升级cmake版本

    1 cmake至少需要3 20 的版本 可以去官网 https cmake org files 下载 也可以通过wget下载并解压 如果下载很慢或打不开官网 可评论留邮箱发你 wget 下载 wget https cmake org fil
  • jq 用val()获取input的值无效

    用id获取input标签 取不到该input的value值 用改标签的name属性就可以 4个下面这种input 懒得复制了 就贴一个
  • 【JavaSE学习笔记】Java中的多态及其引出的Upcast和Downcast问题

    JavaSE学习笔记 JAVA中的多态及其引出的Upcast和Downcast 文章目录 JavaSE学习笔记 JAVA中的多态及其引出的Upcast和Downcast 前言 一 JAVA中的多态 二 Upcast Downcast 三 总
  • SEGGER_RTT_printf()函数实现打印浮点、负数-示例

    概述 最近公司项目换另一款gsensor 用到了浮点数打印 又不想使用串口来打印数据 在此做个笔录 通过修改源码方式实现 一 修改源码 1 在 SEGGER RTT printf c 中 的 int SEGGER RTT vprintf u
  • 类模板的成员函数及类的成员模板函数的特化C

    原文 https blog csdn net jfkidear article details 24656929 utm medium distribute pc relevant none task blog searchFromBaid
  • 作为技术岗位面试官的一些分享

    我在过去的四年里参与了很多公司技术岗位的面试 说实话要看出一个人的综合素质 我还真的做不到 至于其他面试官是否可以 我也不得而知 但我个人感悟是 在面试过程中 面试官更加多的是去匹配和比较 在招聘过程中 企业会根据人力需求先制定出一套招聘需
  • 软件测试中需要使用的工具

    作为一个测试人员在日常工作中会使用到很多的工具 今天给大家分享一下这些工具 对软件测试 接口 自动化 性能测试和日常文档编写办公有帮助的网站 接口测试大力推荐国产的接口测试工具 apipost apipost还是一款很不错的接口文档生产工具
  • 轻量化CICD平台建设

    一 需求 想组合一套cicd流程 但是又不想用gitlab jenkins那么重 首先说一下我的硬件条件 一台群晖920 两块4T的红盘 20G内存 一台华硕tuf的路由器 有联通给的动态外网ip 在路由器做了ddns 再说一下软件条件 d
  • SpringBoot启动时初始化资源的几种方法

    SpringBoot提供了多种方法可实现在启动过程中初始化资源 使用注解 PostConstruct 实现InitializingBean接口 实现CommandLineRunner接口 实现ApplicationRunner接口 监听Sp
  • STM32F103实验定时器

    目录 本文 在上一章的基础上 将介绍如下内容 定时器 上一篇 STM32F103实验外部中断和独立看门狗 https blog csdn net qq 40318498 article details 95980287 正文 STM32F1
  • 利用电影直播赚钱的方法(几乎零成本、很多人不知道)

    每天都有人为了找好项目发愁 什么是大家理解的好项目 上来什么都不做就赚钱吗 边玩边赚钱吗 互联网确实有太多赚钱的项目 但是都是需要前期的积累和沉淀 你熬过去了吗 很多人看着别人后面躺赚的潇洒 觉得好后悔 可以当初自己做了吗 别人付出的时候自
  • 升级Struts2.5后使用DMI动态方法调用遇到问题

    转自 http www lvhongqiang com blog429 html 问题 升级Struts2 5后使用DMI动态方法调用报错 method 找不到 源码 struts xml
  • std:forward 完美转发

    概述 TEMPLATE CLASS identity template
  • leetcode214. 最短回文串

    给定一个字符串 s 你可以通过在字符串前面添加字符将其转换为回文串 找到并返回可以用这种方式转换的最短回文串 示例 1 输入 s aacecaaa 输出 aaacecaaa 示例 2 输入 s abcd 输出 dcbabcd 提示 0 lt
  • Linux脚本- 执行当前文件下前500个.c文件,并将每个文件对应的执行结果重定向到同名的.ok文件中

    需求 执行当前文件下前500个 c文件 并将每个文件对应的执行结果重定向到同名的 ok文件中 以下是一个用于实现该功能的 Bash 脚本 bin bash 计数器 用于限制处理的文件数量 counter 0 遍历当前目录下的所有 c 文件
  • ChatGPT到底怎么用?

    ChatGPT简介 ChatGPT Chat Generative Pre trained Transformer 全称为生成型预训练变换模型 由美国 OpenAI团队研发 现如今的ChatGPT不仅可以根据聊天上下文进行交互 还可以进行文
  • nodejs之express(二)get和post请求

    获取请求中的参数 nodejs的 express框架 提供了四种方法来实现 req body 解析body不是nodejs默认提供的 需要载入body parser中间件才可以使用req body 此方法通常用来解析POST请求中的数据 2
  • Hadoop3.1.3 集群环境搭建

    Hadoop3 1 3 集群环境搭建 1 集群环境配置 主机名 HDFS YARN IP地址 说明 hadoop0 DataNode NameNode NodeManager 192 168 108 10 主节点 master hadoop