大数据---Hadoop集群搭建

news2024/9/29 18:49:26

Hadoop集群搭建

再起启动一台虚拟机并且安装jdk,开启免密登录
不需要安装zookeeper


文章目录

  • Hadoop集群搭建
  • 时间同步4台机器
    • 安装npdate
    • 设置定时任务
  • 集群配置图
      • 将Hadoop安装包上传到zk1
      • zk1---解压到soft目录下
      • zk1---更名
      • zk1---修改配置文件
        • core-site.xml
        • hdfs-site.xml
        • mapred-site.xml
        • yarn-site.xml
        • hadoop-env.sh
        • workers
      • 修改 /etc/profile
      • 给hadoop313修改用户和组
      • 将hadoop313 /etc/profile 发送到zk2 zk3 zk4
      • 刷新 zk1 zk2 zk3 zk4 /etc/profile
  • 集群首次启动
    • 1.启动zk集群
    • 2.启动zk1,zk2,zk3的journalnode服务
    • 3.在zk1格式化hfds namenode
    • 4.在zk1启动namenode服务
    • 5.在zk2机器上同步namenode信息
    • 6.在zk2启动namenode服务
      • 查看namenode节点状态
    • 7.关闭所有dfs有关的服务
    • 8.格式化zk
    • 9.启动dfs
    • 10.启动yarn


时间同步4台机器

安装npdate

[root@zk1 opt]# yum -y install ntpdate

设置定时任务

[root@zk1 opt]# crontab -e
设置每10分更新时间

*/10 * * * * /usr/sbin/ntpdate time.windows.com

在这里插入图片描述
加载定时任务
[root@zk1 opt]# service crond reload
重启定时任务
[root@zk1 opt]# service crond restart

集群配置图

zk1zk2zk3zk4
NameNodeNameNode
DataNodeDataNodeDataNodeDataNode
NodeManagerNodeManagerNodeManagerNodeManager
ResourceManagerResourceManager
JournalNodeJournalNodeJournalNode
DFSZKFConlerDFSZKFConler
zookeeperzookeeperzookeeper
JobHistory

将Hadoop安装包上传到zk1

在这里插入图片描述

zk1—解压到soft目录下

[root@zk1 install]# tar -zxvf ./hadoop-3.1.3.tar.gz -C …/soft/
在这里插入图片描述

zk1—更名

[root@zk1 soft]# mv hadoop-3.1.3/ hadoop313
在这里插入图片描述

zk1—修改配置文件

切换到/opt/soft/hadoop313/etc/hadoop目录下

core-site.xml

<property>
		<name>fs.defaultFS</name>
		<value>hdfs://gky</value>
		<description>逻辑名称,必须与hdfs-site.xml中的dfs.nameservices值保持一致</description>
	</property>
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/opt/soft/hadoop313/tmpdata</value>
		<description>namenode上本地的hadoop临时文件夹</description>
	</property>
	<property>
		<name>hadoop.http.staticuser.user</name>
		<value>root</value>
		<description>默认用户</description>
	</property>
	<property>
		<name>hadoop.proxyuser.root.hosts</name>
		<value>*</value>
		<description></description>
	</property>
	<property>
		<name>hadoop.proxyuser.root.groups</name>
		<value>*</value>
		<description></description>
	</property>
	<property>
		<name>io.file.buffer.size</name>
		<value>131072</value>
		<description>读写文件的buffer大小为:128K</description>
	</property>
	<property>
		<name>ha.zookeeper.quorum</name>
		<value>zk1:2181,zk2:2181,zk3:2181</value>
		<description></description>
	</property>
	<property>
		<name>ha.zookeeper.session-timeout.ms</name>
		<value>10000</value>
		<description>hadoop链接zookeeper的超时时长设置为10s</description>
	</property>

hdfs-site.xml

<property>
		<name>dfs.replication</name>
		<value>3</value>
		<description>Hadoop中每一个block的备份数</description>
	</property>
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>/opt/soft/hadoop313/data/dfs/name</value>
		<description>namenode上存储hdfs名字空间元数据目录</description>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>/opt/soft/hadoop313/data/dfs/data</value>
		<description>datanode上数据块的物理存储位置</description>
	</property>
	<property>
		<name>dfs.namenode.secondary.http-address</name>
		<value>zk1:9869</value>
		<description></description>
	</property>
	<property>
		<name>dfs.nameservices</name>
		<value>gky</value>
		<description>指定hdfs的nameservice,需要和core-site.xml中保持一致</description>
	</property>
	<property>
		<name>dfs.ha.namenodes.gky</name>
		<value>nn1,nn2</value>
		<description>gky为集群的逻辑名称,映射两个namenode逻辑名</description>
	</property>
	<property>
		<name>dfs.namenode.rpc-address.gky.nn1</name>
		<value>zk1:9000</value>
		<description>namenode1的RPC通信地址</description>
	</property>
	<property>
		<name>dfs.namenode.http-address.gky.nn1</name>
		<value>zk1:9870</value>
		<description>namenode1的http通信地址</description>
	</property>
	
	<property>
		<name>dfs.namenode.rpc-address.gky.nn2</name>
		<value>zk2:9000</value>
		<description>namenode2的RPC通信地址</description>
	</property>
	<property>
		<name>dfs.namenode.http-address.gky.nn2</name>
		<value>zk2:9870</value>
		<description>namenode2的http通信地址</description>
	</property>
	<property>
		<name>dfs.namenode.shared.edits.dir</name>
		<value>qjournal://zk1:8485;zk2:8485;zk3:8485/gky</value>
		<description>指定NameNode的edits元数据的共享存储位置(JournalNode列表)</description>
	</property>
	<property>
		<name>dfs.journalnode.edits.dir</name>
		<value>/opt/soft/hadoop313/data/journaldata</value>
		<description>指定JournalNode在本地磁盘存放数据的位置</description>
	</property>	
	<!-- 容错 -->
	<property>
		<name>dfs.ha.automatic-failover.enabled</name>
		<value>true</value>
		<description>开启NameNode故障自动切换</description>
	</property>
	<property>
		<name>dfs.client.failover.proxy.provider.gky</name>
		<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
		<description>失败后自动切换的实现方式</description>
	</property>
	<property>
		<name>dfs.ha.fencing.methods</name>
		<value>sshfence</value>
		<description>防止脑裂的处理</description>
	</property>
	<property>
		<name>dfs.ha.fencing.ssh.private-key-files</name>
		<value>/root/.ssh/id_rsa</value>
		<description>使用sshfence隔离机制时,需要ssh免密登陆</description>
	</property>	
	<property>
		<name>dfs.permissions.enabled</name>
		<value>false</value>
		<description>关闭HDFS操作权限验证</description>
	</property>
	<property>
		<name>dfs.image.transfer.bandwidthPerSec</name>
		<value>1048576</value>
		<description></description>
	</property>	
	<property>
		<name>dfs.block.scanner.volume.bytes.per.second</name>
		<value>1048576</value>
		<description></description>
	</property>

mapred-site.xml

<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
		<description>job执行框架: local, classic or yarn</description>
		<final>true</final>
	</property>
	<property>
		<name>mapreduce.application.classpath</name>
        <value>/opt/soft/hadoop313/etc/hadoop:/opt/soft/hadoop313/share/hadoop/common/lib/*:/opt/soft/hadoop313/share/hadoop/common/*:/opt/soft/hadoop313/share/hadoop/hdfs/*:/opt/soft/hadoop313/share/hadoop/hdfs/lib/*:/opt/soft/hadoop313/share/hadoop/mapreduce/*:/opt/soft/hadoop313/share/hadoop/mapreduce/lib/*:/opt/soft/hadoop313/share/hadoop/yarn/*:/opt/soft/hadoop313/share/hadoop/yarn/lib/*</value>
	</property>
	<property>
		<name>mapreduce.jobhistory.address</name>
		<value>zk1:10020</value>
	</property>
	<property>
		<name>mapreduce.jobhistory.webapp.address</name>
		<value>zk1:19888</value>
	</property>
	<property>
		<name>mapreduce.map.memory.mb</name>
		<value>1024</value>
		<description>map阶段的task工作内存</description>
	</property>
	<property>
		<name>mapreduce.reduce.memory.mb</name>
		<value>2048</value>
		<description>reduce阶段的task工作内存</description>
	</property>

yarn-site.xml

<property>
		<name>yarn.resourcemanager.ha.enabled</name>
		<value>true</value>
		<description>开启resourcemanager高可用</description>
	</property>
	<property>
		<name>yarn.resourcemanager.cluster-id</name>
		<value>yrcabc</value>
		<description>指定yarn集群中的id</description>
	</property>
	<property>
		<name>yarn.resourcemanager.ha.rm-ids</name>
		<value>rm1,rm2</value>
		<description>指定resourcemanager的名字</description>
	</property>
	<property>
		<name>yarn.resourcemanager.hostname.rm1</name>
		<value>zk1</value>
		<description>设置rm1的名字</description>
	</property>
	<property>
		<name>yarn.resourcemanager.hostname.rm2</name>
		<value>zk4</value>
		<description>设置rm2的名字</description>
	</property>
	<property>
		<name>yarn.resourcemanager.webapp.address.rm1</name>
		<value>zk3:8088</value>
		<description></description>
	</property>
	<property>
		<name>yarn.resourcemanager.webapp.address.rm2</name>
		<value>zk4:8088</value>
		<description></description>
	</property>	
	<property>
		<name>yarn.resourcemanager.zk-address</name>
		<value>zk1:2181,zk2:2181,zk3:2181</value>
		<description>指定zk集群地址</description>
	</property>
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
		<description>运行mapreduce程序必须配置的附属服务</description>
	</property>
	<property>
		<name>yarn.nodemanager.local-dirs</name>
		<value>/opt/soft/hadoop313/tmpdata/yarn/local</value>
		<description>nodemanager本地存储目录</description>
	</property>
	<property>
		<name>yarn.nodemanager.log-dirs</name>
		<value>/opt/soft/hadoop313/tmpdata/yarn/log</value>
		<description>nodemanager本地日志目录</description>
	</property>
	
	<property>
		<name>yarn.nodemanager.resource.memory-mb</name>
		<value>2048</value>
		<description>resource进程的工作内存</description>
	</property>
	<property>
		<name>yarn.nodemanager.resource.cpu-vcores</name>
		<value>2</value>
		<description>resource工作中所能使用机器的内核数</description>
	</property>
	<property>
		<name>yarn.scheduler.minimum-allocation-mb</name>
		<value>256</value>
		<description></description>
	</property>
	<property>
		<name>yarn.log-aggregation-enable</name>
		<value>true</value>
		<description></description>
	</property>
	<property>
		<name>yarn.log-aggregation.retain-seconds</name>
		<value>86400</value>
		<description>日志保留多少秒</description>
	</property>
	<property>
		<name>yarn.nodemanager.vmem-check-enabled</name>
		<value>false</value>
		<description></description>
	</property>
	<property>
		<name>yarn.application.classpath</name>
		<value>/opt/soft/hadoop313/etc/hadoop:/opt/soft/hadoop313/share/hadoop/common/lib/*:/opt/soft/hadoop313/share/hadoop/common/*:/opt/soft/hadoop313/share/hadoop/hdfs/*:/opt/soft/hadoop313/share/hadoop/hdfs/lib/*:/opt/soft/hadoop313/share/hadoop/mapreduce/*:/opt/soft/hadoop313/share/hadoop/mapreduce/lib/*:/opt/soft/hadoop313/share/hadoop/yarn/*:/opt/soft/hadoop313/share/hadoop/yarn/lib/*</value>
		<description></description>
	</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</value>
		<description></description>
	</property>

hadoop-env.sh

export JAVA_HOME=/opt/soft/jdk180
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export HDFS_JOURNALNODE_USER=root
export HDFS_ZKFC_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

在这里插入图片描述

workers

zk1
zk2
zk3
zk4

修改 /etc/profile

在profile里配置hadoop全局环境

 81 #Hadoop
 82 export HADOOP_HOME=/opt/soft/hadoop313
 83 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib

在这里插入图片描述

给hadoop313修改用户和组

[root@zk1 soft]# chown -R root:root hadoop313/
在这里插入图片描述

将hadoop313 /etc/profile 发送到zk2 zk3 zk4

[root@zk1 soft]# scp -r ./hadoop313/ root@zk2:/opt/soft
[root@zk1 soft]# scp -r ./hadoop313/ root@zk3:/opt/soft
[root@zk1 soft]# scp -r ./hadoop313/ root@zk4:/opt/soft

[root@zk1 soft]# scp /etc/profile root@zk2:/etc/
[root@zk1 soft]# scp /etc/profile root@zk3:/etc/
[root@zk1 soft]# scp /etc/profile root@zk4:/etc/

刷新 zk1 zk2 zk3 zk4 /etc/profile

[root@zk1 soft]# source /etc/profile
[root@zk2 soft]# source /etc/profile
[root@zk3 soft]# source /etc/profile
[root@zk4 soft]# source /etc/profile

集群首次启动

1.启动zk集群

[root@zk1 opt]# ./zkop.sh start
在这里插入图片描述

2.启动zk1,zk2,zk3的journalnode服务

hdfs --daemon start journalnode
在这里插入图片描述

3.在zk1格式化hfds namenode

[root@zk1 opt]# hdfs namenode -format
在这里插入图片描述

4.在zk1启动namenode服务

[root@zk1 opt]# hdfs --daemon start namenode
在这里插入图片描述

5.在zk2机器上同步namenode信息

[root@zk2 soft]# hdfs namenode -bootstrapStandby

6.在zk2启动namenode服务

[root@zk2 hadoop313]# hdfs --daemon start namenode
在这里插入图片描述

查看namenode节点状态

hdfs haadmin -getServiceState nn1|nn2
在这里插入图片描述

7.关闭所有dfs有关的服务

[root@zk1 soft]# stop-dfs.sh
在这里插入图片描述

8.格式化zk

[root@zk1 soft]# hdfs zkfc -formatZK

9.启动dfs

[root@zk1 soft]# start-dfs.sh
在这里插入图片描述

10.启动yarn

[root@zk1 soft]# start-yarn.sh
查看resourcemanager节点状态
yarn rmadmin -getServiceState rm1|rm2
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

第四届宁波网安市赛训练题

Crypto 散乱的密文 8fd4a4c94gf15{50}l72d3提示了2 1 6 5 3 4&#xff0c;我们直接横向排列 2165348fd4a4c94gf15{50}l72d3 按顺序竖着抄下来fc1l84f}a45dg034{2d957,然后栅栏解密&#xff0c;注意这里是W型栅栏解密&#xff0c;行数6 flag:flag{52048c453d794df1} 综合解密…

stm32f429FMC外设学习

功能框图 这是一种型号为 W9825G6KH 的 SDRAM 芯片内部结构框图&#xff0c;以它为模型进行学习 CLK -- FMC_SDCLK //同步时钟信号 CKE -- FMC_SDCKE[1:0] //SDCKE0&#xff1a; SDRAM 存储区域 1 时钟使能,;SDCKE1&#xff1a; SDRAM 存储区域 2 时钟使能.这里表示的…

QT(16)- QFileDevice

QT&#xff08;16&#xff09;- QFileDevice1 简介2 公有类型2.1 enum QFileDevice::FileError2.2 enum QFileDevice&#xff1a;&#xff1a;FileHandleFlag2.3 enum QFileDevice::FileTime2.4 enum QFileDevice&#xff1a;&#xff1a;MemoryMapFlags2.5 enum QFileDevice::…

【OJ】计数的梦

&#x1f4da;Description: Bessie 处于半梦半醒的状态。过了一会儿&#xff0c;她意识到她好像在数羊&#xff0c;不能入睡。Bessie的大脑反应灵敏&#xff0c;仿佛真实地看到了她数过的一个又一个数。她开始注意每一个数码&#xff1a;每一个数码在计数的过程中出现过多少次…

华为OD机试 - 箱子之形摆放(Python)| 真题+思路+考点+代码+岗位

箱子之形摆放 题目 有一批箱子(形式为字符串,设为str), 要求将这批箱子按从上到下以之字形的顺序摆放在宽度为 n 的空地,请输出箱子的摆放位置。 例如:箱子ABCDEFG,空地宽度为3,摆放结果如图: 则输出结果为: AFG BE CD 输入 输入一行字符串,通过空格分隔,前面部…

关于tensorboard --logdir=logs的报错解决办法记录

我在运行tensorboard --logdirlogs时&#xff0c;产生了如下的报错&#xff0c;找遍全网后&#xff0c;解决办法如下 先卸载 pip uninstall tensorboard再安装 pip install tensorboard最后出现如下报错 Traceback (most recent call last): File “d:\newanaconda\envs\imo…

华为3面,官网显示面试通过了...开始泡池子,进入漫长等待期

背景&#xff1a; 现在双非本科&#xff0c;非计算机科班&#xff0c;有算法方面的奖&#xff0c;有嵌入式开发经历&#xff0c;官网显示面试通过&#xff0c;短信说录用情况在十个工作日内告知&#xff0c;看别人的说法应该是泡池子了。 全程视频面试&#xff0c;一天面完三…

[ Azure - IAM ] Azure 中的基于角色的访问控制 (RBAC) 与基于属性的访问控制 (ABAC)

在任何公司中&#xff0c;网络用户必须先经过身份验证和授权&#xff0c;然后才能访问可能导致安全漏洞的系统部分。获得授权的过程称为访问控制。在本文中&#xff0c;我将讨论管理系统访问控制的两种主要方法——基于角色的访问控制 (RBAC)和基于属性的访问控制 (ABAC) &…

春招Leetcode刷题日记-D3-双指针算法-归并两个有序数组Two Sum

D3-双指针算法-归并两个有序数组&&Two Sum什么是双指针算法力扣88. 合并两个有序数组思路代码力扣167. 两数之和 II - 输入有序数组思路思路一&#xff1a;时间复杂度O(nlogn&#xff09;算法代码思路二&#xff1a;时间复杂度O(n)--双指针算法代码什么是双指针算法 1…

c++学习笔记-案例-职工管理系统(哔站-黑马程序员c++教学视频)

目录 一、需求分析 1、职工管理系统需求 2、管理系统中需要实现的功能 3、系统界面如下&#xff1a; 二、代码实现 1、整体结构 2、具体分析 &#xff08;1&#xff09;创建01workerManager.h &#xff08;2&#xff09;创建02worker.h &#xff08;3&#xff09;创建…

秒杀项目的消息推送

目录 一、创建消费者 二、创建订单链路配置 1.定义RabbitMQ配置类 2.创建RabbitmqOrderConfig配置类 三、如何实现RabbitMQ重复投递机制 1.开启发送者消息确认模式 2.消息发送确认 ① 创建ConfirmCallBacker确认模式 ② 创建ReturnCallBack退回模式 3.创建生产者 …

*1创建 Vue3

1、使用 vue-cli 进行创建 &#xff08;1&#xff09;查看 vue-cli 版本,确保 vue-cli 版本在4.5.0上 win键 r &#xff0c;输入cmd ——>输入 vue -V 若低于4.5.0版本&#xff0c;则需要重新安装 npm i -g vue/cli &#xff08;2&#xff09;在桌面创建项目&#xff08;也…

天荒地老修仙功-第七部:Dubbo基本使用与原理详解

文章目录一、基础知识1、分布式基础理论1.1、什么是分布式系统&#xff1f;1.2、发展演变1.2.1 单一应用架构1.2.2 垂直应用架构1.2.4 分布式服务架构1.2.4 流动计算架构1.3、RPC2、dubbo核心概念2.1、简介2.2、基本概念2.2.1 服务提供者&#xff08;Provider&#xff09;2.2.2…

ViewBinding使用入门

ViewBinding 参考资料: 新技术 ViewBinding 最佳实践 & 原理击穿 更多 ViewBinding 的封装思路 1. kotlin-android-extensions(KAE) 的问题 根据Google官方的说法, KAE存在以下问题: 污染全局命名空间不能暴露可空性信息仅支持Kotlin代码 kotlin在1.4.20中 开始废弃这…

广州暨大港澳子弟学校小学部IB探究

作为IB世界会员学校的一员&#xff0c;培养学生成为具有国际情怀的人&#xff0c;承认人类共有的博爱精神&#xff0c;分担守护地球的责任&#xff0c;帮助开创一个更好、更和平的世界而努力是广州暨大港澳子弟学校&#xff08;ASJ&#xff09;的教育使命和目标。 ASJ在PYP项目…

使用Junit框架,提高自动化测试效率

目录 1、Junit 是什么&#xff1f; 2、Junit 的用法 2.1、注解【Test、BeforeEach、BeforeAll、AfterEach、AfterAll】 2.2、断言Assertion类 2.2.1、断言匹配/不匹配 2.2.2、断言结果为真/为假 2.2.3、断言结果为空/不为空 2.3、用例的执行顺序【order注解】 2.4、参…

字节跳动青训营--前端day10

文章目录前言一、web开发安全 - 攻击1. Cross-Site Scripting(XSS)1.1 存储型&#xff08;Stored Xss&#xff09;1.2 反射型&#xff08;Reflect Xss&#xff09;1.3 DOM型&#xff08;DOM Xss&#xff09;1.4 Mutation-based XSS2. Cross-Site Request Forgery&#xff08;CS…

如何使用TypeScript封装一个简单好用的Http工具

前言 Http 请求对于任何系统都是一大基石&#xff0c;那么如何封装一个高可用的 Http 请求工具呢&#xff1f;接下来手把手教你使用 TypeScript 封装一个高可用的 Http 请求工具。 本工具由三部分构成&#xff1a;Http基础层、基础方法层、业务层。 Http基础层 Http基础层主…

Lua语法入门

注意&#xff1a;文章将持续更新完善 文章目录一. 初识Lua二. HelloWorld三. Lua的数据类型四. 变量五. 循环六. 函数七. 条件控制一. 初识Lua Lua 是一种轻量小巧的脚本语言&#xff0c;用标准C语言编写并以源代码形式开放&#xff0c; 其设计目的是为了嵌入应用程序中&#…

VR全景行业的应用价值如何呈现?

互联网高速发展的今天&#xff0c;多媒体所包含的种类也是越来越多&#xff0c;而一些较为传统的表现方式已经越来越无法满足大部分客户对展示方式的要求。而在传统的表现方式中&#xff0c;展现的方式无非是静态的平面图片以及动态的视频&#xff0c;但是他们都有一个缺点就是…