百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

Hadoop完全分布式安装部署

bigegpt 2024-09-12 11:18 9 浏览

Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。我们本次主要完成搭建实际生产环境中比较常用的完全分布式模式,搭建完全分布式模式之前需要对集群部署进行提前规划,不要将过多的服务集中到一台节点上,我们将负责管理工作的namenode和ResourceManager分别部署在两台节点上,另外一台节点上部署SecondaryNamenode,所有节点均承担Datanode和Nodemanager角色,并且datanode和nodemanager通常存在同一节点上,所有角色尽量做到均衡分配。

1. 集群部署规划如表1。



2. 对集群角色的分配主要依靠配置文件制定,配置集群文件细节如下。

(1)核心配置文件core-site.xml,该配置文件属于Hadoop的全局配置文件,我们主要进行配置分布式文件系统的入口地址NameNode的地址和分布式文件系统中数据落地到服务器本地磁盘位置的配置,如下:

[atguigu@hadoop102 hadoop]$ vi core-site.xml

<!-- 指定HDFS中NameNode的地址 -->

<!—其中hdfs为协议名称,hadoop102为namenode的节点主机名称,端口号为9000 -->

<property>

<name>fs.defaultFS</name>

<value>hdfs://hadoop102:9000</value>

</property>

<!-- 指定hadoop运行时产生文件的存储目录,该目录需要单独创建 -->

<property>

<name>hadoop.tmp.dir</name>

<value>/opt/module/hadoop-2.7.2/data/tmp</value>

</property>

(2)Hadoop环境配置文件hadoop-env.sh,在这个配置文件中我们主要需要制定jdk的路径JAVA_HOME,避免程序运行中出现JAVA_HOME找不到的异常。

[atguigu@hadoop102 hadoop]$ vi hadoop-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_144

(3) HDFS配置文件hdfs-site.xml,在这个配置文件中主要进行配置HDFS文件系统属性配置。

[atguigu@hadoop102 hadoop]$ vi hdfs-site.xml

<!-- 指定hdfs存储内容的副本个数 -->

<!—hadoop通过文件的冗余来确保文件存储的可靠性,由于我们有3个datanode节点,所以我们可以将副本数量设置为3 -->

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

<!-- 指定Hadoop辅助名称节点主机配置 -->

<!—SecondaryNameNode节点主要作为NameNode节点的辅助,端口号为50090 -->

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>hadoop104:50090</value>

</property>

(4)YARN的环境配置文件yarn-env.sh,同样将JAVA_HOME路径配置指明。

[atguigu@hadoop102 hadoop]$ vi yarn-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_144

(5)关于YARN的配置文件yarn-site.xml,其中配置YARN的相关参数,主要配置一下两个参数。

[atguigu@hadoop102 hadoop]$ vi yarn-site.xml

<!-- reducer获取数据的方式 -->

<!-- yarn.nodemanager.aux-services是NodeManager上运行的附属服务,其值需要配置成mapreduce_shuffle才可以运行MapReduce程序 -->

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<!-- 指定YARN的ResourceManager的地址 -->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>hadoop103</value>

</property>

(6)mapreduce的环境配置文件mapred-env.sh,同样将JAVA_HOME路径配置指明。

[atguigu@hadoop102 hadoop]$ vi mapred-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_144

(7)关于MapReduce的配置文件mapred-site.xml,主要配置一个参数,指明MapReduce的运行框架为YARN.

[atguigu@hadoop102 hadoop]$ cp mapred-site.xml.template mapred-site.xml

[atguigu@hadoop102 hadoop]$ vi mapred-site.xml

<!—MapReduce计算框架的资源交给YARN来管理 -->

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

(8) 主节点NameNode和ResourceManager的角色在配置文件中已经做了配置,从节点的角色还需指定,配置文件slaves就是用来配置Hadoop集群中各个从节点角色的。如下,对slaves文件进行修改,即将3台节点全部指定为从节点,可以启动DataNode和NodeManager进程。

/opt/module/hadoop-2.7.2/etc/hadoop/slaves

[atguigu@hadoop102 hadoop]$ vi slaves

hadoop102

hadoop103

hadoop104

(9)在集群上分发配置好的Hadoop配置文件,这样3台节点即享有相同的Hadoop的配置,可准备通过不同的进程启动命令进行启动了。

[atguigu@hadoop102 hadoop]$ xsync /opt/module/hadoop-2.7.2/

(10)查看文件分发情况

[atguigu@hadoop103 hadoop]$ cat /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml

3. 创建数据目录

根据core-site.xml中配置的分布式文件系统最终落地到各个数据节点上的本地磁盘位置信息/opt/module/hadoop-2.7.2/data/tmp,自行创建该目录。

[atguigu@hadoop102 hadoop-2.7.2]$ mkdir /opt/module/hadoop-2.7.2/data/tmp

[atguigu@hadoop103 hadoop-2.7.2]$ mkdir /opt/module/hadoop-2.7.2/data/tmp

[atguigu@hadoop104 hadoop-2.7.2]$ mkdir /opt/module/hadoop-2.7.2/data/tmp

4. 启动Hadoop集群

(1)如果集群是第一次启动,需要格式化NameNode

[atguigu@hadoop102 hadoop-2.7.2]$ hadoop namenode -format

(2)通过start-dfs.sh命令在配置了namenode的节点启动HDFS,即可同时启动所有的datanode和SecondaryNameNode节点。

[atguigu@hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh

[atguigu@hadoop102 hadoop-2.7.2]$ jps

4166 NameNode

4482 Jps

4263 DataNode

[atguigu@hadoop103 hadoop-2.7.2]$ jps

3218 DataNode

3288 Jps

[atguigu@hadoop104 hadoop-2.7.2]$ jps

3221 DataNode

3283 SecondaryNameNode

3364 Jps

(3)通过start-yarn.sh命令启动yarn,即可同时启动ResourceManager和所有的Nodemanager节点。需要注意的是:NameNode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。

[atguigu@hadoop103 hadoop-2.7.2]$ sbin/start-yarn.sh

通过jps命令可在各个节点上查看进程启动情况,显示如下所示即表示启动成功。

[atguigu@hadoop103 hadoop-2.7.2]$ sbin/start-yarn.sh

[atguigu@hadoop102 hadoop-2.7.2]$ jps

4166 NameNode

4482 Jps

4263 DataNode

4485 NodeManager

[atguigu@hadoop103 hadoop-2.7.2]$ jps

3218 DataNode

3288 Jps

3290 ResourceManager

3299 NodeManager

[atguigu@hadoop104 hadoop-2.7.2]$ jps

3221 DataNode

3283 SecondaryNameNode

3364 Jps

3389 NodeManager

5. Web UI查看集群是否启动成功

(1) 通过web端输入我们之前配置的NameNode节点地址和端口号50070我们可以查看HDFS文件系统,例如:浏览器中输入:http://hadoop102:50070,可以检查NameNode和DataNode是否正常。如图1所示


图1 NameNode的web端

(2) 通过在web端输入配置ResourceManager节点地址和端口号8088,可以查看YARN上运行任务情况。例如:在浏览器输入:http://hadoop103:8088 ,即可查看本集群YARN运行情况。如图2所示。


图2 Y

ARN的web端

6. 运行PI实例检查集群是否启动成功

在集群任意节点上执行下面的命令,如果看到如图3所示的执行结果,则说明集群启动成功。

[atguigu@hadoop102 hadoop]$ cd /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/

[atguigu@hadoop102 mapreduce]$ hadoop jar hadoop-mapreduce-examples-2.7.2.jar pi 10 10

最后输出为

Estimated value of Pi is 3.20000000000000000000



图3 PI实例运行结果

相关推荐

当Frida来“敲”门(frida是什么)

0x1渗透测试瓶颈目前,碰到越来越多的大客户都会将核心资产业务集中在统一的APP上,或者对自己比较重要的APP,如自己的主业务,办公APP进行加壳,流量加密,投入了很多精力在移动端的防护上。而现在挖...

服务端性能测试实战3-性能测试脚本开发

前言在前面的两篇文章中,我们分别介绍了性能测试的理论知识以及性能测试计划制定,本篇文章将重点介绍性能测试脚本开发。脚本开发将分为两个阶段:阶段一:了解各个接口的入参、出参,使用Python代码模拟前端...

Springboot整合Apache Ftpserver拓展功能及业务讲解(三)

今日分享每天分享技术实战干货,技术在于积累和收藏,希望可以帮助到您,同时也希望获得您的支持和关注。架构开源地址:https://gitee.com/msxyspringboot整合Ftpserver参...

Linux和Windows下:Python Crypto模块安装方式区别

一、Linux环境下:fromCrypto.SignatureimportPKCS1_v1_5如果导包报错:ImportError:Nomodulenamed'Crypt...

Python 3 加密简介(python des加密解密)

Python3的标准库中是没多少用来解决加密的,不过却有用于处理哈希的库。在这里我们会对其进行一个简单的介绍,但重点会放在两个第三方的软件包:PyCrypto和cryptography上,我...

怎样从零开始编译一个魔兽世界开源服务端Windows

第二章:编译和安装我是艾西,上期我们讲述到编译一个魔兽世界开源服务端环境准备,那么今天跟大家聊聊怎么编译和安装我们直接进入正题(上一章没有看到的小伙伴可以点我主页查看)编译服务端:在D盘新建一个文件夹...

附1-Conda部署安装及基本使用(conda安装教程)

Windows环境安装安装介质下载下载地址:https://www.anaconda.com/products/individual安装Anaconda安装时,选择自定义安装,选择自定义安装路径:配置...

如何配置全世界最小的 MySQL 服务器

配置全世界最小的MySQL服务器——如何在一块IntelEdison为控制板上安装一个MySQL服务器。介绍在我最近的一篇博文中,物联网,消息以及MySQL,我展示了如果Partic...

如何使用Github Action来自动化编译PolarDB-PG数据库

随着PolarDB在国产数据库领域荣膺桂冠并持续获得广泛认可,越来越多的学生和技术爱好者开始关注并涉足这款由阿里巴巴集团倾力打造且性能卓越的关系型云原生数据库。有很多同学想要上手尝试,却卡在了编译数据...

面向NDK开发者的Android 7.0变更(ndk android.mk)

订阅Google官方微信公众号:谷歌开发者。与谷歌一起创造未来!受Android平台其他改进的影响,为了方便加载本机代码,AndroidM和N中的动态链接器对编写整洁且跨平台兼容的本机...

信创改造--人大金仓(Kingbase)数据库安装、备份恢复的问题纪要

问题一:在安装KingbaseES时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。在Linux系统中,需要以非root用户执行安装程序,且该用户要有标准的home目录,您可...

OpenSSH 安全漏洞,修补操作一手掌握

1.漏洞概述近日,国家信息安全漏洞库(CNNVD)收到关于OpenSSH安全漏洞(CNNVD-202407-017、CVE-2024-6387)情况的报送。攻击者可以利用该漏洞在无需认证的情况下,通...

Linux:lsof命令详解(linux lsof命令详解)

介绍欢迎来到这篇博客。在这篇博客中,我们将学习Unix/Linux系统上的lsof命令行工具。命令行工具是您使用CLI(命令行界面)而不是GUI(图形用户界面)运行的程序或工具。lsoflsof代表&...

幻隐说固态第一期:固态硬盘接口类别

前排声明所有信息来源于网络收集,如有错误请评论区指出更正。废话不多说,目前固态硬盘接口按速度由慢到快分有这几类:SATA、mSATA、SATAExpress、PCI-E、m.2、u.2。下面我们来...

新品轰炸 影驰SSD多款产品登Computex

分享泡泡网SSD固态硬盘频道6月6日台北电脑展作为全球第二、亚洲最大的3C/IT产业链专业展,吸引了众多IT厂商和全球各地媒体的热烈关注,全球存储新势力—影驰,也积极参与其中,为广大玩家朋友带来了...