【大数据入门核心技术-Hadoop】Hadoop非高可用集群搭建

news2024/10/5 18:31:44

目录

目录

一、Hadoop部署的三种方式

1、Standalone mode(独立模式)

2、Pseudo-Distributed mode(伪分布式模式)

3、Cluster mode(集群模式)

二、准备工作

1、/etc/hosts

2、关闭防火墙和禁用swap交换分区

3、三台机器间免密

4、安装jdk

5、下载好hadoop安装包

三、开始安装Hadoop

1、解压

2、配置hadoop

3、初始化和启动操作

四、集群的页面访问 

1、查看NameNode页面地址

2、YARN访问

3、JobHistory访问

五、测试

1、查看目录

2、创建目录

3、上传文件


一、Hadoop部署的三种方式

1、Standalone mode(独立模式)

独立模式又称为单机模式,仅1个机器运行1个java进程,主要用于调试。

2、Pseudo-Distributed mode(伪分布式模式)

伪分布模式也是在1个机器上运行HDFS的NameNode和DataNode、YARN的 ResourceManger和NodeManager,但分别启动单独的java进程,主要用于调试。

3、Cluster mode(集群模式)

单Namenode节点模式-高可用HA模式

集群模式主要用于生产环境部署。会使用N台主机组成一个Hadoop集群。这种部署模式下,主节点和从节点会分开部署在不同的机器上。

本教程主要安装 单Namenode 节点 非高可用集群模式

二、准备工作

集群组建MasterSlave1Slave2
NameNode

Secondary

Namenode

DataNode
ResourceManager
NodeManager

1、/etc/hosts

172.30.1.56 master
172.30.1.57 slave1
172.30.1.58 slave2

2、关闭防火墙和禁用swap交换分区

1)关闭防火墙和SeLinux

systemctl stop firewalld && systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/sysconfig/selinux

2)禁用swap交换分区

swapoff -a && sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/sysconfig/selinux

3、三台机器间免密

生成密钥

ssh-keygen -t rsa

将密钥复制到其他机器

ssh-copy-id slave1
ssh-copy-id slave2

4、安装jdk

将jdk目录复制到/usr/local

vim /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_131
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

source /etc/profile

java -version

查看结果

 java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

5、下载好hadoop安装包

下载地址

Apache Hadoop

三、开始安装Hadoop

1、解压

tar zxvf hadoop-3.2.1.tar.gz -C /usr/local

vim /etc/profile

export HADOOP_HOME=/usr/local/hadoop-3.2.1
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

source /etc/profile

测试

hadoop version

Hadoop 3.2.1
Source code repository https://gitbox.apache.org/repos/asf/hadoop.git -r b3cbbb467e22ea829b3808f4b7b01d07e0bf3842
Compiled by rohithsharmaks on 2019-09-10T15:56Z
Compiled with protoc 2.5.0
From source with checksum 776eaf9eee9c0ffc370bcbc1888737
This command was run using /usr/local/hadoop-3.2.1/share/hadoop/common/hadoop-common-3.2.1.jar

2、配置hadoop

创建数据目录

mkdir -p /data/bigdata/hadoop/tmp

mkdir -p /data/bigdata/hadoop/var

mkdir -p /data/bigdata/hadoop/dfs/name

mkdir -p /data/bigdata/hadoop/dfs/data

cd /usr/local/hadoop-3.2.1/etc/hadoop

修改配置hadoop-env.sh

JAVA_HOME 和 HADOOP_HOME改为真实路径

在最后面添加

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

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
    <description>HDFS 的 URI,文件系统://namenode标识:端口</description>
  </property>

  <property>
    <name>hadoop.tmp.dir</name>
    <value>/data/bigdata/hadoop/tmp</value>
    <description>namenode 上传到 hadoop 的临时文件夹</description>
  </property>

</configuration>

修改works

master

slave1
slave2

修改hdfs-site.xml

<configuration>
  <property>
     <name>dfs.namenode.name.dir</name>
     <value>/data/bigdata/hadoop/dfs/name</value>
     <description>datanode 上存储 hdfs 名字空间元数据</description>
   </property>

   <property>
     <name>dfs.datanode.data.dir</name>
     <value>/data/bigdata/hadoop/dfs/data</value>
     <description>datanode 上数据块的物理存储位置</description>
   </property>

   <property>
     <name>dfs.replication</name>
     <value>2</value>
     <description>副本个数,默认配置是 3,应小于 datanode 机器数量</description>
   </property>

   <property>
     <name>dfs.webhdfs.enabled</name>
     <value>true</value>
   </property>

   <property>
     <name>dfs.permissions.enabled</name>
     <value>false</value>
   </property>

</configuration>

先将mapred-site.xml.template copy 一份命名为mapred-site.xml

再修改mapred-site.xml为

<configuration>
<property>
   <name>mapred.job.tracker</name>
   <value>master:49001</value>
</property>
<property>
      <name>mapred.local.dir</name>
       <value>/data/bigdata/hadoop/var</value>
</property>
<property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
</property>
</configuration>

修改yarn-site.xml

<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <property>
        <description>The address of the applications manager interface in the RM.</description>
        <name>yarn.resourcemanager.address</name>
        <value>${yarn.resourcemanager.hostname}:8032</value>
    </property>
    <property>
        <description>The address of the scheduler interface.</description>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>${yarn.resourcemanager.hostname}:8030</value>
    </property>
    <property>
        <description>The http address of the RM web application.</description>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>${yarn.resourcemanager.hostname}:8088</value>
    </property>
    <property>
        <description>The https adddress of the RM web application.</description>
        <name>yarn.resourcemanager.webapp.https.address</name>
        <value>${yarn.resourcemanager.hostname}:8090</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>${yarn.resourcemanager.hostname}:8031</value>
    </property>
    <property>
        <description>The address of the RM admin interface.</description>
        <name>yarn.resourcemanager.admin.address</name>
        <value>${yarn.resourcemanager.hostname}:8033</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>8192</value>
        <discription>每个节点可用内存,单位MB,默认8182MB</discription>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>2.1</value>
    </property>
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>2048</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.application.classpath</name>
        <value>
         /usr/local/hadoop-3.2.1/etc/hadoop,
         /usr/local/hadoop-3.2.1/share/hadoop/common/*,
         /usr/local/hadoop-3.2.1/share/hadoop/common/lib/*,
         /usr/local/hadoop-3.2.1/share/hadoop/hdfs/*,
         /usr/local/hadoop-3.2.1/share/hadoop/hdfs/lib/*,
         /usr/local/hadoop-3.2.1/share/hadoop/mapreduce/*,
         /usr/local/hadoop-3.2.1/share/hadoop/mapreduce/lib/*,
         /usr/local/hadoop-3.2.1/share/hadoop/yarn/*,
         /usr/local/hadoop-3.2.1/share/hadoop/yarn/lib/*
     </value>
    </property>
</configuration>

注意:端口号与里面的值,后期优化配置需要修改,第一次配可以全复制。

说明:yarn.nodemanager.vmem-check-enabled这个的意思是忽略虚拟内存的检查,如果你是安装在虚拟机上,这个配置很有用,配上去之后后续操作不容易出问题。如果是实体机上,并且内存够多,可以将这个配置去掉

再将配置好的hadoop文件和/etc/pofile直接copy到另外的节点,并source /etc/profile,相当于在另外两个节点重复以上操作

3、初始化和启动操作

主节点在启动之前需要先格式化namenode,生成初始目录.

hadoop namenode -format

有如下提示即成功。

启动hadoop

/usr/local/hadoop-3.2.1/sbin/start-all.sh

或者使用: start-dfs.sh 启动HDFS 和 start-yarn.sh 启动Yarn

启动历史任务服务进程

mr-jobhistory-daemon.sh start historyserver

检查各个节点进程是否启动成功

停止集群:

stop-dfs.sh、stop-yarn.sh、mr-jobhistory-daemon.sh stophistoryserver

启动之后,使用jps命令查看相关服务是否启动,jps是显示Java相关的进程命令。

四、集群的页面访问 

1、查看NameNode页面地址

一旦Hadoop集群启动并运行,可以通过web-ui进行集群查看,如下所述:

http://master:9870/   

旧版本端口为50070,新版本3.2.1为9870

当然也可以在hdfs-site.xml中配置dfs.namenode.http-address项

2、YARN访问

http://master:8088/cluster

3、JobHistory访问

http://master:19888/jobhistory

五、测试

1、查看目录

hadoop fs -ls /

2、创建目录

hadoop fs  -mkdir /test

3、上传文件

hadoop fs -put a.txt /test/a.txt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/59284.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机软考高项(信息系统项目管理师)、中项(系统集成项目管理工程师),统计师中级的一些备考经验

软考高项及中项 对于因各种原因需要拿工程系列职称的朋友&#xff0c;计算机软考高项和中项可能是性价比最高的副高级职称和中级职称&#xff0c;没有学历和工作经验的要求&#xff0c;是水平考试&#xff0c;即可以跳过初级、中级&#xff0c;直接考高级&#xff0c;也可以考…

[附源码]JAVA毕业设计九宫格日志网站(系统+LW)

[附源码]JAVA毕业设计九宫格日志网站&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&a…

# 智慧社区管理系统-核心信息管理-02物业收费管理

一 后端 1:entity package com.woniu.community.entity;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;Data AllArgsConstructor NoArgsConstructor public class PropertyInfo {private int id;private int typeId;private Doub…

制作php的composer包

目录 1、初始化包 2、将代码推送到github远程仓库 3、为写好扩展包打上tag标签标记当前代码版本 4、将包发布到包管理平台 初始化包&#xff0c;生成 创建配置文件composer.json composer init composer init 按照引导就可以生成了 , 详细的引导解释如下 This command wil…

计算机图形学中的曲线问题——拉格朗日插值曲线绘制实践

拉格朗日插值曲线的绘制 限于篇幅&#xff0c;我们将在这篇文章中介绍拉格朗日插值曲线绘制实践&#xff0c;主文章链接&#xff1a; GGN_2015 计算机图形学中的曲线问题 在主文章中我们已经介绍了拉格朗日插值函数的绘制方法。给定一个函数必须通过的点的集合&#xff0c;保证…

学习spring源码的意义是什么呢?有什么高效的源码学习方式吗?

这不是准备跳槽了&#xff0c;所以最近摸鱼比较多一些&#xff0c;老大默许了&#xff0c;我觉得我老大还是很好的。也在网上看了一些资料&#xff0c;但是&#xff0c;我发现很多讲解注解的时候&#xff0c;对于一些可以直接点击源码查看的内容讲解的占多数&#xff0c;但是授…

【学习笔记】《Python深度学习》第六章:深度学习用于文本和序列

文章目录1 处理文本数据1.1 单词和字符的one-hot编码1.2 使用词嵌入1.3 从原始文本到词嵌入2 循环神经网络2.1 Keras中的循环层2.2 LSTM层和GRU层2.3 实例&#xff1a;使用 LSTM 进行 IMDB 电影评论分类3 循环神经网络的高级用法3.1 温度预测问题3.2 准备数据3.3 基于常识、非机…

eclipse导入svn项目,项目有红色的感叹号/叉号

eclipse导入svn项目&#xff0c;项目左下角有红色的感叹号/叉号 1.首先调出Problems ( window -> show view-> Problems ) 查看报错信息 其次&#xff0c;看看Project是否开启了项目自动构建&#xff08;Build Automatically&#xff09; 2.根据报错信息逐一解决 3.…

【Linux内核代码分析1】Linux时间子系统及HRTIMER实现

Linux时间子系统软件架构 &#xff08;1&#xff09;嵌入式设备需要较好的电源管理策略。传统的linux会有一个周期性的时钟&#xff0c;即便是系统无事可做的时候也要醒来&#xff0c;这样导致系统不断的从低功耗&#xff08;idle&#xff09;状态进入高功耗的状态。这样的设计…

从 Nauty 数据结构出发认识群论

在阅读本文前&#xff0c;强烈建议有志入门群论的同学观看 3blue1brown 魔群 视频。 对于计算机方向同学&#xff0c;可以尝试从数据结构的角度理解。本文主要基于文档、网站 Nauty 和 Nauty 的 python binding, pynauty(github.com) 展开。 Nauty 数据结构 本小节截选自 Na…

字节跳动虚拟数字人技术与应用

导读&#xff1a;火山引擎正在打造完善的虚拟数字人技术和应用体系&#xff0c;那么火山引擎是如何定义虚拟数字人的呢&#xff1f;火山引擎 2D 虚拟数字人和 3D 数字人采用了怎样先进的技术&#xff1f;火山引擎数字人有哪些应用和前景展望&#xff1f;今天我们就来一起探秘火…

[附源码]计算机毕业设计基于SpringBoot的毕业生就业系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

浅谈操作系统和进程

前言 操作系统是一个软件&#xff0c;对下要管理硬件设备&#xff0c;对上要给软件运行提供稳定的运行环境。操作系统是软硬件及用户之间交互的媒介。最常见的操作系统有Windows 98&#xff0c;2000&#xff0c;xp&#xff0c;vista&#xff0c;win7&#xff0c;win8&#xff…

# 智慧社区管理系统-核心业务功能-04保修信息

一 后端 1:entity package com.woniu.community.entity;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;Data AllArgsConstructor NoArgsConstructor public class Repair {private int id;private String comId;private String co…

[附源码]计算机毕业设计springboot医院挂号住院管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

LeetCode 441. 排列硬币

&#x1f308;&#x1f308;&#x1f604;&#x1f604; 欢迎来到茶色岛独家岛屿&#xff0c;本期将为大家揭晓LeetCode 441. 排列硬币 &#xff0c;做好准备了么&#xff0c;那么开始吧。 &#x1f332;&#x1f332;&#x1f434;&#x1f434; 一、题目名称 LeetCode 441. …

Java基于springboot+vue的游戏物品销售购物商城系统 前后端分离

随着时代和计算机的发展&#xff0c;出现了越来越多的网络游戏&#xff0c;相对应的也拥有了越来越多的玩家&#xff0c;这些玩家在玩了一段游戏之后&#xff0c;可能会有游戏交易的需求。如果直接在私下个人交易很不安全&#xff0c;容易被骗。为了能够让广大游戏爱好者拥有一…

.net6 web api中使用SqlSugar(MySQL数据库)

其中SqlSugar&#xff0c;也可以是EFcore&#xff0c;或者Dapper&#xff0c;或者其他ORM框架。 其中mysql&#xff0c;也可以是SqlServer&#xff0c;或者oracle&#xff0c;或者其他数据库类型。 1.首先使用vs2022建立.net6 web api 2.增加SqlSugar和MySQL依赖项。 Newton…

17.前端笔记-CSS-定位

1、为什么要定位 先看看以下这些场景是否可以用标准流或浮动实现 &#xff08;1&#xff09;某个元素可以自由的在一个盒子内移动位置&#xff0c;并且压住其他盒子 &#xff08;2&#xff09;滚动窗口时&#xff0c;某些盒子是可以固定在屏幕某个位置的 以上这种场景使用标准…

# 智慧社区管理系统-核心业务管理-01车位收费

一 后端 1:entity package com.woniu.community.entity;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;Data AllArgsConstructor NoArgsConstructor public class CarCharge {private int id;private String payDate;//开始时间pr…