大数据Hadoop集群搭建 1(伪分布式集群)

article/2025/9/10 10:53:50

目录

Hadoop集群简介

Hadoop集群具体来说包含两个集群:HDFS集群和YARN集群。

Hadoop集群的部署方式分为三种,分别是单机模式、伪分布式模式和完全分布式模式。

环境搭建

1.修改主机名

2.修改时区

 4.配置ssh免密

 5.安装Hadoop

 目录结构

配置文件说明

主要配置文件

搭建HDFS伪分布式集群

 配置Hadoop系统环境变量

搭建YARN伪分布式集群


Hadoop集群简介

Hadoop集群具体来说包含两个集群:HDFS集群和YARN集群。

(1)HDFS集群:负责海量数据的存储,集群中的主要角色有:NameNode(一个,master)、DataNode(若干,slave)和SecondaryNameNode(一个)。

(2)YARN集群:负责海量数据运算的资源调度,集群中的角色主要有:ResourceManager(一个,master)和NodeManager(若干,slave)。

Hadoop集群的部署方式分为三种,分别是单机模式、伪分布式模式和完全分布式模式。

(1)单机模式:又称为独立模式,在该模式下,无需运行任何守护进程,所有的程序都在单个JVM上执行。单机模式下调试Hadoop集群的MapReduce程序非常方便,所以一般情况下,该模式在学习或者开发阶段调试使用。

(2)伪分布式模式:Hadoop程序的守护进程运行在一台主机节点上,通常使用伪分布式模式来调试Hadoop分布式程序的代码,以及程序执行是否正确,伪分布式是完全分布式模式的一个特例。

(3)完全分布式模式:Hadoop的守护进程分别运行在由多个主机搭建的集群上,不同节点担任不同的角色,在实际应用开发中,通常使用该模式构建企业级Hadoop系统。

环境搭建

1.修改主机名

hostnamectl set-hostname hadoop000

 

2.修改时区

tzselect

3.安装JDK

wget https://download.oracle.com/java/19/latest/jdk-19_linux-x64_bin.tar.gz

因为个人习惯故用 -C 参数选择解压到指定路径

tar -zxvf jdk-19_linux-x64_bin.tar.gz -C /home/currify/software/jdk

修改系统配置文件

vim /etc/profile

在结尾添加如下代码段(第二行JAVA_HOME后接JDK安装路径)

export PATH=$PATH:JAVA_HOME/bin
export JAVA_HOME=/home/currify/software/jdk/jdk-19.0.1
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/

 

生效环境变量

source /etc/profile

检查JDK是否安装成功

java -version

 4.配置ssh免密

SSH为Security Shell(安全外壳协议)的缩写。

SSH是一种网络协议,用于计算机之间的加密登录。很多ftp、pop和telent在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,很多不法分子非常容易就可以截获这些口令和数据。

SSH就是专为远程登录会话和其他网络服务提供安全性的协议。

安装ssh服务

yum install openssh-server

 开启ssh服务

systemctl start sshd

生成密钥对

ssh-keygen或者ssh-keygen -t rsa

 将公钥文件放置到授权列表文件authorized_keys中

cp id_rsa.pub authorized_keys

修改授权列表文件authorized_keys的权限

chmod 600 authorized_keys

 验证是否成功配置ssh免密

ssh hadoop000

 5.安装Hadoop

wget https://mirrors.cnnic.cn/apache/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
tar -zxvf hadoop-3.3.4.tar.gz -C /home/currify/software/hadoop

 目录结构

(1)bin:存放操作Hadoop相关服务(HDFS、YARN)的脚本,但是通常使用sbin目录下的脚本。

(2)etc:存放Hadoop配置文件。

(3)include:对外提供的编程库头文件(具体动态库和静态库在lib目录中)。

(4)lib:该目录包含了Hadoop对外提供的编程动态库和静态库。

(5)libexec:各个服务对应的shell配置文件所在的目录。

(6)sbin:该目录存放Hadoop管理脚本,主要包含HDFS和YARN中各类服务的启动/关闭脚本。

(7)share:Hadoop各个模块编译后的jar包所在的目录。

配置文件说明

(1)一种是只读的默认配置文件,包括core-default、hdfs-default.xml、mapred-default.xml和yarn-default.xml,这些文件包含了Hadoop系统各种默认配置参数。

(2)另一种是Hadoop集群自定义配置时编辑的配置文件,包括hadoop-env.sh、yarn-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml和slaves共7个文件,可以根据需要在这些文件中对默认配置文件中的参数进行修改,Hadoop会优先选择这些配置文件中的参数。

主要配置文件

配置文件功能描述
hadoop-env.sh配置Hadoop运行所需的环境变量
yarn-env.sh配置YARN运行所需的环境变量
core-site.xmlHadoop核心全局配置文件,可在其它配置文件中引用该文件
hdfs-site.xmlHDFS配置文件,继承core-site.xml配置文件
mapred-site.xmlMapReduce配置文件,继承core-site.xml配置文件
yarn-site.xmlYARN配置文件,继承core-site.xml配置文件
slaves

Hadoop集群所有从节点(DataNode和NodeManager)列表

搭建HDFS伪分布式集群

设置 HADOOP 环境变量

vim ~/.bashrc

 在最后添加

# Hadoop Environment Variables
export HADOOP_HOME=/home/currify/software/jdk/jdk-19.0.1
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

生效环境变量 

source ~/.bashrc

配置环境变量hadoop-env.sh

vim /home/currify/software/hadoop/hadoop-3.3.4/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/home/currify/software/jdk/jdk-19.0.1

配置核心组件core-site.xml 

vim /home/currify/software/hadoop/hadoop-3.3.4/etc/hadoop/core-site.xml

将以下内容添加

<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/soft/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

 

 配置核心组件hdfs-site.xml

该文件主要用于配置HDFS相关的属性,例如复制因子(即数据块的副本数)、NameNode和DataNode用于存储数据的目录等。在完全分布式模式下,默认的块副本是3份。

vim /home/currify/software/hadoop/hadoop-3.3.4/etc/hadoop/hdfs-site.xml

将以下内容加入

<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>file:/usr/soft/hadoop/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/usr/soft/hadoop/tmp/dfs/data</value></property><property><name>dfs.secondary.http.address</name><!--这里是你自己的ip,端口默认--><value>dfs://localhost:50070</value></property>
</configuration>

 

 配置Hadoop系统环境变量

vim /etc/profile

在底部加入 

export HADOOP_HOME=/home/currify/software/hadoop/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

生效环境变量

source /etc/profile

检查是否安装成功

hadoop version

 初次启动HDFS集群时,必须对主节点进行格式化处理

hdfs namenode -format

 启动NameNode

hdfs namenode start

启动DataNode

hdfs datanode start

搭建YARN伪分布式集群

配置环境变量yarn-env.sh,加入JDK路径

export JAVA_HOME=/home/currify/software/jdk/jdk-19.0.1

配置mapred-site.xml

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapred.job.tracker.http.address</name><value>0.0.0.0:50030</value></property><property><name>mapred.task.tracker.http.address</name><value>0.0.0.0:50060</value></property><property><name>mapreduce.admin.user.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value></property><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value></property>
</configuration>

配置yarn-site.xml

<!-- Site specific YARN configuration properties --><property><name>yarn.resourcemanager.hostname</name><!-- 自己的ip端口默认 --><value>hdfs://localhost:9000</value></property><!-- reducer获取数据的方式 --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>

单节点逐个启动YARN集群进行测试

yarn resourcemanager start
yarn nodemanager start


http://chatgpt.dhexx.cn/article/GkrReBnI.shtml

相关文章

HADOOP 伪分布式集群搭建

一 linux 环境的搭建 由于笔者这里使用的是vmware 虚拟机 采用centos7 linux 操作系统进行搭建&#xff0c;所以一下示例均以centos7进行示例 1. 搭建vmware 虚拟机 &#xff08;1&#xff09;创建好虚拟机后采用linux ISO镜像文件启动安装centos7操作系统&#xff08;其它…

Zookeeper分布式集群部署

文章目录 一&#xff1a;zookeeper安装包下载安装1.下载安装包2.上传安装包3.解压安装包4.改名 二&#xff1a;zookeeper集群配置1.修改zoo.cfg配置文件2.创建myid文件3.配置系统环境变量4.分发zookeeper相关文件至从节点slave1&#xff0c;slave2 三&#xff1a;zookeeper服务…

漫话:如何给女朋友解释什么是分布式和集群?

作者 | 漫小画 公号 | 漫话编程 漫小画 擅长漫话 程小员 擅长编程 某天&#xff0c;下班较早&#xff0c;我正在玩吃鸡&#xff0c;已经到决赛圈了&#xff0c;这时候&#xff0c;女朋友满脸求知欲的朝我走过来。 上次他们都说你给我讲的面向对象太简单了。 那你想怎样&#xf…

什么是分布式集群?

首先来说一下集群的概念&#xff0c;集群是指将多台服务器集中起来一起进行同一种服务。相比一台服务器&#xff0c;集群的优势在于将负载均衡到每台服务器上&#xff0c;可以承载更高的访问量。 分布式又是什么呢&#xff0c;分布式指的是将工作进行业务拆分&#xff0c;然后…

什么是分布式,分布式和集群的区别又是什么?这一篇让你彻底明白!

1. 什么是分布式 ? 分布式系统一定是由多个节点组成的系统。 其中&#xff0c;节点指的是计算机服务器&#xff0c;而且这些节点一般不是孤立的&#xff0c;而是互通的。 这些连通的节点上部署了我们的节点&#xff0c;并且相互的操作会有协同。 分布式系统对于用户而言&a…

什么是集群?什么是分布式?集群与分布式的区别,集群和分布式的关系。

什么是集群 假如你开发了一个程序供大家使用&#xff0c;当然会把开发好的程序放到应用服务器中&#xff0c;刚开始用户量不大&#xff0c;用户访问的正常&#xff0c;服务器压力小。 但是随着用户量的增大&#xff0c;一台服务器不足以支撑系统的正常运行。 于是你决定把程…

python 除法符号_python的除法运算符是什么

python的除法运算符是什么&#xff1f;python中除法运算符有两类&#xff0c;一种是浮点除法运算符&#xff0c;另一种是整除除法运算符。 1. / 浮点除法&#xff0c;就算分子分母都是int类型&#xff0c;也返回float类型&#xff0c;比如我们用4/2&#xff0c;返回2.0 2. // …

c语言和Python整除符号,互联网常识:python除法运算符有哪些

python除法运算符&#xff1a;1、“/”运算符&#xff0c;按照常规数学除法计算的方式直接得出结果即可&#xff1b;2、“//”运算符&#xff0c;取整除&#xff0c;返回商的整数部分(向下取整)&#xff1b;3、“%”运算符&#xff0c;返回除法的余数。 本教程操作环境&#xf…

python的除法_python中的除法

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 截断表示截断小数分,取整数部分的意思。 实际应用中,精确除法比截断除法更频繁,所以有的书上,精确除法也叫普通除法(也就是常用除法) 也有人把精确除法叫浮…

python 整除及余数_python除法余数

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 常量常量就是不变的变量,在python中,通常用大写的变量名表示常量,这一点和java想相同:ali_address=ali_address=www.alibaba.com4.除法python中和除法...- …

Python 计算之除法

文章目录 1. 除法 /2. 四舍五入round()3. 浮点数取整int()4. 地板除 //5. 向上取整math.ceil()6. 取小数和整数部分math.modf() 1. 除法 / a,b 95,20 c a/b print(a,a,b,b,c,c)运行结果&#xff1a; a 95 b 20 c 4.752. 四舍五入round() round()的第2个位置参数表示取小数…

微信小程序框架(思维导图)

这是小编整理的一份关于微信小程序框架的思维导图&#xff0c;建议大家电脑点击图片查看哦&#xff01;

微信小程序框架分析思维导图

微信小程序框架分析思维导图

微信小程序表单框架01

简易表单wxml界面代码与界面效果 文本框样式&#xff1a; 点击多列选择器&#xff0c;代码与效果如下&#xff1a; 多列选择器js代码&#xff1a;

新建微信小程序项目

文章目录 app.jsonapp.wxsspages/index/index.wxmlpages/index/index.wxss相关链接 使用微信开发者工具新建微信小程序项目&#xff1a;mydemo&#xff0c;不使用云开发&#xff0c;不使用模板&#xff0c;自动生成如下文件&#xff1a; app.jsapp.wxssapp.jsonpages index in…

搭建微信小程序vue框架步骤

搭建微信小程序vue框架步骤 1.下载node.js 下载地址&#xff1a;https://nodejs.org/en/download/ 查看node、npm版本&#xff0c;确保环境正确 node --version npm --version2.安装vue脚手架工具vue-cli npm install -g vue/cli-init3.初始化结构 vue init mpvue/mpvue-qu…

微信小程序自定义组件

目录 一.自定义组件 1.创建自定义组件 2.声明组件 3.使用组件 二.Tabs样式优化 三.标题激活选中 四.父向子组件传递数据 五.子向父传递数据 六.自定义组件-slot 七.自定义组件的其他属性 一.自定义组件 1.创建自定义组件 类似页面&#xff0c;一个自定义组件由json ,wxm…

微信小程序npm引用ui框架

第一步&#xff1a;创建新的小程序&#xff0c;winR 输入cmd命令&#xff0c;进入小程序所在文件夹 第二步&#xff1a;在小程序根目录下输入 npm init 进行初始化 成功之后&#xff0c;会多一个package.json的文件 第三步&#xff1a; 接着执行两行命令 1、npm install --pr…

从0到一开发微信小程序(3)—小程序框架配置

文章目录 其他相关文章1、小程序框架1.1、全局配置1.1.1、Pages1.1.1.1、entryPagePath1.1.1.2、生成页面方式 1.1.2、window1.1.3、tabBar与属性1.1.4、常用其他配置1.1.4.1、sitemapLocation1.1.4.2、style1.1.4.3、networkTimeout1.1.4.4、debug1.1.4.5、functionalPages1.1…

微信小程序云开发教程-微信小程序框架的介绍

同学们大家好&#xff0c;我是小伊同学&#xff0c;今天我们来学习微信小程序框架。 微信小程序实质上是一款基于web技术的应用程序&#xff0c;他和我们平常所接触到的前端网页是大同小异的。相同点在于他们使用的开发语言&#xff0c;代码结构以及代码的运行机制是一样。但是…