首页 > 其他分享 >Hadoop集群模式的搭建之三:搭建Hadoop完全分布式集群

Hadoop集群模式的搭建之三:搭建Hadoop完全分布式集群

时间:2024-05-19 21:29:46浏览次数:15  
标签:src hadoop yarn Hadoop 集群 usr local 搭建

Hadoop可以按如下3种模式进行安装和运行。
(1)单机模式:Hadoop的默认模式,安装时不需要修改配置文件
(2)伪分布式模式:Hadoop安装在一台计算机上,需要修改相应的配置文件,用一台计算机模拟多台主机的集群。
(3)完全分布式模式:在多台计算机上安装JDK和Hadoop,组成相互连通的集群,需要修改相应的配置文件;Hadoop的守护进程运行在由多台主机搭建的集群上
基于前面两节搭建的3台linux虚拟机环境,本节开始搭建和配置Hadoop的完全分布式集群。

安装与配置Hadoop3.1.4版本
  1. 解压缩软件包
    将下载好的Hadoop3.1.4.tar.gz上传至master节点的root目录后,然后以下执行命令进行解压并切换到解压目录
tar -zxvf /root/hadoop-3.1.4.tar.gz -C /usr/local/src4
cd /usr/local/src/
  1. 修改文件夹名称
    为了简化后续配置,此处需要修改文件夹名称,执行以下命令
mv hadoop-3.1.4 hadoop
  1. 修改环境变量文件
    为了在任何目录下直接执行Hadoop的相关命令,可以在环境变量文件中添加Hadoop的环境变量。执行vi /root/.bash_profile,进入修改模式,将以下内容添加到环境变量文件的末尾
# set hadoop
export HADOOP_HOME=/usr/local/src/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

#3.x版本新增配置项
export HDFS_NAMENODE_USER=root
export HDFS_DATANOEE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
export HIVE_HOME=/usr/local/src/hive
export PATH=$PATH:$HIVE_HOME/bin
  1. 修改hadoop-env.sh配置文件
    从这里开始,需要修改Hadoop配置文件夹中的相关配置文件,需要修改的配置文件在/usr/local/src/hadoop/etc/hadoop文件夹下。在hadoop-env.sh文件中需要配置JAVA_HOME的安装目录,目的时在Hadoop启动时能够执行守护进程,执行以下命令编辑配置文件
cd /usr/local/src/hadoop/etc/hadoop
vi hadoop-env.sh

将以下内容配置追加到文件末尾

export JAVA_HOME=/usr/local/src/java
  1. 修改core-site.xml配置文件
<configuration>
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
</property>

<property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
</property>

<property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/src/hadoop/tmp</value>
</property>

<property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
</property>
</configuration>
  1. 修改hdfs-site.xml配置文件
<configuration>
<property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/src/hadoop/dfs/name</value>
</property>

<property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/src/hadoop/dfs/data</value>
</property>

<property>
        <name>dfs.replication</name>
        <value>2</value>
</property>

<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
</property>

</configuration>
  1. 修改mapred-site.xml配置文件
<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>

  1. 修改yarn-site.xml配置文件
<?xml version="1.0"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->
<configuration>

<!-- Site specific YARN configuration properties -->

<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
</property>
<property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
</property>

<property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
</property>

<property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
</property>

<property>
        <name>yarn.resourcemanager.webapp.https.address</name>
        <value>master:8090</value>
</property>

<property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
</property>

<property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
</property>

<property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>/data/hadoop/yarn/local</value>
</property>

<property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
</property>

<property>
        <name>yarn.nodemanager.remote-app-log-dir</name>
        <value>/data/tmp/logs</value>
</property>

        <description>URL for job history server</description>
</property>

<property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
</property>

<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>

<property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

<property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>512</value>
</property>

<property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>4096</value>
</property>

<property>
        <name>mapreduce.map.memory.mb</name>
        <value>2048</value>
</property>

<property>
        <name>mapreduce.reduce.memory.mb</name>
        <value>2048</value>
</property>


<property>
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>1</value>
</property>

<property>
        <name>yarn.application.classpath</name>
        <value>/usr/local/src/hadoop/etc/hadoop:/usr/local/src/hadoop/share/hadoop/common/lib/*:/usr/local/src/hadoop/share/hadoop/common/*:/usr/local/src/hadoop/share/hadoop/hdfs:/usr/local/src/hadoop/share/hadoop/hdfs/lib/*:/usr/local/src/hadoop/share/hadoop/hdfs/*:/usr/local/src/hadoop/share/hadoop/mapreduce/lib/*:/usr/local/src/hadoop/share/hadoop/mapreduce/*:/usr/local/src/hadoop/share/hadoop/yarn:/usr/local/src/hadoop/share/hadoop/yarn/lib/*:/usr/local/src/hadoop/share/hadoop/yarn/*</value>
</property>

  1. 修改从节点文件
    在/usr/local/src/hadoop/etc/hadoop目录下有一个workers文件,该文件中记录了集群中的所有从节点(HDFS的DataNode和YARN的NodeManager所在的主机),用来配合一键启动脚本时启动集群中的所有从节点。执行"vi workes"命令在workers文件中追加配置信息,如下所示,该文件中原有的"localhost"内容可以保留并让master节点同时充当NameNode和DataNode,或者删掉"localhost"行,让master节点仅作为NameNode,保存并退出
slave1
slave2
  1. 创建文件目录
    由于在前面的配置文件中配置Hadoop集群的临时文件夹,相关的NameNode和DataNode的文件路径,需要创建这些文件夹,执行以下命令
cd /usr/local/src/hadoop
mkdir /usr/local/src/hadoop/tmp
mkdir /usr/local/src/hadoop/tmp/dfs/name -p
mkdir /usr/local/src/hadoop/tmp/dfs/data -p

  1. 分发配置文件到slave节点上
    将master节点上配置好的hadoop文件夹和环境变量文件分别分发到slave1节点和slave2节点上。执行以下命令进行分发
scp -r /usr/local/src/hadoop slave1:/usr/local/src/
scp -r /usr/local/hadoop slave2:/usr/local/src/
scp /root/.bash_profile slave1:/root/
scp /root/.bash_profile slave2:/root/
  1. 生效环境变量
source /root/.bash_profile
  1. 测试Hadoop的安装情况
    执行"Hadoop version"命令查看安装的Hadoop版本信息,若如以下所示,则表示安装成功
[root@master hadoop]# hadoop version
Hadoop 3.2.4
Source code repository Unknown -r 7e5d9983b388e372fe640f21f048f2f2ae6e9eba
Compiled by ubuntu on 2022-07-12T11:58Z
Compiled with protoc 2.5.0
From source with checksum ee031c16fe785bbb35252c749418712
This command was run using /usr/local/src/hadoop/share/hadoop/common/hadoop-common-3.2.4.jar

标签:src,hadoop,yarn,Hadoop,集群,usr,local,搭建
From: https://www.cnblogs.com/cs-js/p/18200703

相关文章

  • 【PYTHON3】环境搭建+编程学习之路的开始——Windows系统
    一、概述在学习python开发语言之前需要安装好开发语言环境(也就是常说的开发环境)开发环境主要有:解释器和编辑器IDE,而其中的解释器是用来将代码转换成机器语言,python语言也就是解释器;编辑器用来写代码逻辑,python语言推荐的是pycharm,它是IDE集成开发环境,这里面有开发时需要的工具......
  • OpenStack Centos7 T版本搭建
    目录Centos7搭建OpenStackT版本--上1.环境准备(所有节点操作)1.1修改主机名1.2关闭selinux以及防火墙1.3修改hosts1.4配置时间同步controller操作compute以及其他节点操作1.5配置OpenStack软件包1.6安装数据库1.7安装消息队列1.8安装memcached1.9安装etcd2.安装Ke......
  • redis实现分片集群
     为什么要使用分片集群?主从和哨兵可以解决高可用、高并发读的问题。但是仍存在海量数据存储、高并发写问题分片集群特征:集群中有多个master,每个master保存不同数据。为master置备了后备隐藏能源:多个slave节点优化了sentinel,master互相ping检测彼此状态结构复杂,难弄 ......
  • 从开发到部署,搭建离线私有大模型知识库
    背景介绍最近一段时间搭建了一套完整的私有大模型知识库,目前完整的服务已经完成测试部署上线。基本之前的实践过程,从工程角度整理技术方案以及中间碰到的一些问题,方便后续对这个方向有需求的研发同学们。为什么做离线私有化部署在大模型火热起来之后,很多企业都有尝试相关服务。......
  • Linux集群管理
    1.ssh密钥认证全过程 2.Ansible自动化运维:批量管理,批量分发,批量执行,维护。。Ansible是python写的.  3.Ansible管理架构Inventory主机清单:被管理主机的ip列表,分类.ad-hoc模式:命令行批量管理(使用ans模块),临时任务.playbook剧本模式:类似于把操作写出脚......
  • Games101 环境搭建
    wsl环境配置必要的库sudoaptinstallg++gdbcmakesudoaptinstalllibopencv-devlibeigen3-devopencv头文件{"configurations":[{"name":"Linux","includePath":[&qu......
  • 【Modbus】转发:Modbus通讯模拟仿真环境的搭建
    文章目录一、概要二、所需工具介绍三、搭建虚拟仿真环境1.ModbusRTU虚拟仿真环境搭建1.1.虚拟串口工具(VSPD)使用1.2.虚拟从站工具(ModSim32)使用1.3.虚拟主站工具(Modscan32)使用1.4.更改虚拟从站工具(ModSim32)的Modbus寄存器的值1.5.更改虚拟主站工具(Modscan32)的Modbus寄存器的值2.Mo......
  • 012_尚硅谷_Windows下搭建Go开发环境
    1.Windows下搭建Go开发环境-安装和配置SDK1.1介绍SDK1)SDK(软件开发工具包)2)SDK是提供给开发人员使用的,其中包含了对应开发语言的工具包1.2SDK下载1)下载地址:Golang中国  https://go.p2hp.com/go.dev/dl/2)如何选择对应的SDK......
  • 【Linux】《VMware17搭建Ubuntu.22.04-Rust开发环境》
    下载VMware17安装包下载链接:创建虚拟机之后都默认就可以了。进入系统设置登录账号和密码以及修改下语言,剩余都默认即可。设置中文界面设置中文输入法接下来开始设置输入法切换快捷键设置使用Ctrl+Alt+T打开终端,输入ibus-setup重启,看一下是......
  • Ack集群Pod独占EIP实践
    1.背景某线上应用部署在ack集群内,用于根据用户定义的http请求项配置,周期性检查http接口的请求响应状态,接口地址为内网或公网,当接口地址为公网时,频繁出现请求超时的报警错误。经过排查发现,在公网请求发生超时的时刻,集群vpcNAT带宽达到上限200Mbps,也就是25MB/s分析:由于集群占用......