Centos7搭建Hadoop集群(V3.3.4)

news/2025/2/22 5:31:09/

Centos7搭建Hadoop集群V3.3.4

  • 一、准备工作
    • 1、配置hostname
    • 2、hosts映射
    • 3、关闭防火墙
    • 4、同步时间
    • 5、关闭selinux
    • 6、配置ssh免密登陆
    • 7、重启
  • 二、安装所需环境
    • 1、jdk安装
    • 2、hadoop安装
  • 三、修改配置
    • hadoop-env.sh
    • core-site.xml
    • hdfs-site.xml
    • mapred-site.xml
    • yarn-site.xml
    • workers
  • 四、初始化并启动
    • 1、初始化
    • 2、启动
  • 五、测试hdfs
  • 六、Springboot整合Hdfs

本次安装Hadoop版本为3.3.4
安装规划(3台机器)

node01 :192.168.117.20     NameNode DataNode
node02 :192.168.117.21     DataNode
node03 :192.168.117.22     DataNode SecondaryNameNode

一、准备工作

1、配置hostname

hostname分别为node01,node02,node03

# 三台机器分别执行
hostnamectl set-hostname node01
hostnamectl set-hostname node02
hostnamectl set-hostname node03

在这里插入图片描述

2、hosts映射

# 三台机器均要执行
vim /etc/hosts
192.168.117.20 node01
192.168.117.21 node02
192.168.117.22 node03

3、关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

4、同步时间

yum install ntpdate
ntpdate ntp5.aliyun.com

在这里插入图片描述

5、关闭selinux

vim /etc/selinux/config
修改为 SELINUX=disabled

在这里插入图片描述

6、配置ssh免密登陆

# 三台机器均执行一下命令
ssh-keygen -t rsa
# 将每台机器的公钥拷贝给每台机器
ssh-copy-id node01
ssh-copy-id node02
ssh-copy-id node03

测试
在这里插入图片描述

7、重启

reboot

二、安装所需环境

1、jdk安装

# 三台机器均执行
cd /etc/profile.d
vim jdk.sh
# 写入内容
export JAVA_HOME=/opt/button/jdk
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
# 使配置生效
source /etc/profile

验证

java -version

在这里插入图片描述

2、hadoop安装

下载安装包
配置环境变量

# 三台机器均执行
vim /etc/profile.d/hadoop.sh
# 写入内容
export HADOOP_HOME=/opt/button/hadoop/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# 使配置生效
source /etc/profile

验证

hadoop version

在这里插入图片描述
创建hadoop数据目录:

mkdir /opt/button/hadoop/data
cd /opt/button/hadoop
chmod -R 777 ./data/

三、修改配置

配置位于hadoop解压目录etc/hadoop目录下,三台机器配置保持一致
在这里插入图片描述

hadoop-env.sh

vim hadoop-env.sh
# jdk修改为自己的路径
export JAVA_HOME=/opt/button/jdk

core-site.xml

<!-- 指定HADOOP所使用的文件系统schema,NameNode的地址 -->
<property><name>fs.defaultFS</name><value>hdfs://node01:9000</value>
</property>
<property><name>hadoop.tmp.dir</name><value>/opt/button/hadoop/data</value>
</property>
<!-- 设置HDFS web UI用户身份 -->
<property><name>hadoop.http.staticuser.user</name><value>root</value>
</property> 
<!-- 文件系统垃圾桶保存时间 -->
<property><name>fs.trash.interval</name><value>1440</value>
</property>

hdfs-site.xml

<property><name>dfs.replication</name><value>3</value>
</property>
<property><name>dfs.namenode.secondary.http-address</name><value>node03:50090</value>
</property>
<property><name>dfs.name.dir</name><value>/opt/button/hadoop/data/</value>
</property>
<property><name>dfs.data.dir</name><value>/opt/button/hadoop/data/</value>
</property>

mapred-site.xml

<property><name>mapreduce.framework.name</name><value>yarn</value>
</property>

yarn-site.xml

<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property>
<!-- ResourceManager的地址 -->
<property><name>yarn.resourcemanager.hostname</name><value>node01</value>
</property>
<!-- 关闭yarn内存检查 -->
<property><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value>
</property>
<property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value>
</property>

workers

vim workers
# 写入如下内容
node01
node02
node03

四、初始化并启动

1、初始化

如果第一次启动集群需格式化NameNode,三个节点都操作

hdfs namenode –format

注:如果不是第一次,需要先执行stop-all.sh,然后删除data与logs中的文件再执行初始化命令

2、启动

在node01节点上的sbin目录找到start-all.sh并执行即可
在这里插入图片描述
执行如下操作解决此问题

vim /etc/profile.d/my_env.sh
# 添加如下内容
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

重新执行start-all.sh
在这里插入图片描述
查看启动的服务
在这里插入图片描述
NameNode默认端口9870
http://192.168.117.20:9870/
在这里插入图片描述
ResourceManager默认端口8088
在这里插入图片描述

五、测试hdfs

hadoop fs -mkdir /hfile
hadoop fs -put input.txt /hfile
hadoop fs -ls /hfile

在这里插入图片描述

六、Springboot整合Hdfs

Springboot整合hdfs实现基本操作


http://www.ppmy.cn/news/20827.html

相关文章

【K8S系列】Pod重启策略及重启可能原因

目录 1 重启策略 1.1 Always 1.2 OnFailure 1.3 Nerver 1.4 yaml示例 2 Pod常见异常状态 2.1 Pending状态 2.2 Waiting/ContainerCreating状态 2.3 CrashLoopBackOff状态 2.4 ImagePullBackOff状态 2.5 Error状态 2.6 其他状态说明 tips: 3.自动重启的可能原…

Linux之环境搭建

目录 一、VMware 二、centos7的安装 三、Mysql安装 四、 前端项目部署 1.确保前台项目能用 2.将前台项目打包npm run build 3.做ip/host主机映射 4.完成Nginx动静分离的default.conf的相关配置 5.将前端构件号的dist项目&#xff0c;上传到云服务器/usr/local/... …

JVM垃圾回收总结

常见面试题 如何判断对象是否死亡 简单介绍一下强引用、软引用、弱引用、虚引用 如何判断常量是一个废弃常量 如何判断类是一个无用类 垃圾收集有哪些算法、各自的特点&#xff1f; 常见的垃圾回收器有哪些&#xff1f; 介绍一下CMS&#xff0c;G1收集器&#xff1f; minor gc和…

Java进阶--方法重载

笔记内容 java重载的原理,以及如何运用java重载的方法,java重载的好处。 1.基本介绍 java中允许同一个类中,多个同名方法的存在,但要求形参列表不一样! 比如:System.out.println();就可以输出不同的数据类型。 方法重载减轻了起名的麻烦,减轻记名的麻烦; import java.u…

C++中的new、operator new与placement new

new operator 当我们使用了new关键字去创建一个对象时&#xff0c;你知道背后做了哪些事情吗&#xff1f; A* a new A;实际上这样简单的一行语句&#xff0c; 背后做了以下三件事情&#xff1a; 分配内存,如果类A重载了operator new&#xff0c;那么将调用A::operator new(…

【C语言进阶】柔性数组

目录一&#xff1a;柔性数组的特点二&#xff1a;柔性数组的使用三&#xff1a;模拟实现柔性数组在C99中&#xff0c;结构中的最后一个元素允许是未知大小的数组&#xff0c;这就叫做柔性数组成员 以下是柔性数组的两种写法&#xff1a; //写法一&#xff1a; struct S {int n…

不看后悔,一文入门Go云原生微服务

文章目录打好基础微服务框架对比简单横评各个框架微服务概念软件架构演进史简单理解微服务的好处go-micro概述构成组件Go MicroAPISidecarWebCLIBot总结Go Micro组件架构Registry注册中心Selector负载均衡Broker事件驱动&#xff1a;发布订阅Transport消息传输总结快速入门准备…

kotlin lambda表达式和简化

Lambda&#xff1a; 是一小段可以作为参数传递的代码&#xff0c; 作为实参 结构&#xff1a; {参数名1: 类型&#xff0c; 参数名1: 类型 -> 函数体} 最后一行代码会自动作为Lambda 表达式的返回值 思考一个需求&#xff1a; 在水果集合中找到字符最长的水果 val list l…