部署伪分布式 Hadoop集群

news2024/11/24 9:05:01

部署伪分布式 Hadoop集群

  • 一、JDK安装配置
    • 1.1 下载JDK
    • 1.2 上传解压
    • 1.3 java环境配置
  • 二、伪分布式 Hadoop 安装配置
    • 2.1 Hadoop 下载
    • 2.2 上传解压
    • 2.3 Hadoop 文件目录介绍
    • 2.4 Hadoop 配置
      • 2.4.1 修改 core-site.xml 配置文件
      • 2.4.2 修改 hdfs-site.xml 配置文件
      • 2.4.3 修改 hadoop-env.xml 配置文件
      • 2.4.4 修改 mapred-site.xml 配置文件
      • 2.4.5 修改 yarn-site.xml 配置文件
      • 2.4.6 修改 slaves 配置文件
      • 2.4.7 配置 Hadooop 环境变量
      • 2.4.8 创建配置文件里面的目录
  • 三、启动伪分布式 Hadoop 集群
    • 3.1 格式化主节点 namenode
    • 3.2 启动 Hadoop 伪分别集群
    • 3.3 查看 Hadoop 服务进程
    • 3.4 查看 HDFS 文件系统
    • 3.5 查看 YARN 资源管理系统
  • 四、测试运行 Hadoop 伪分布集群
    • 4.1 查看 HDFS 目录
    • 4.2 参加 HDFS 目录
    • 4.3 准备测试数据
    • 4.4 测试数据上次到 HDFS
    • 4.5 运行 WordCount 案例
    • 查看作业运行结果

一、JDK安装配置

部署伪分布式 Hadoop 集群的安装,依赖JDK

1.1 下载JDK

下载地址:https://www.oracle.com/java/technologies/downloads/#license-lightbox

根据需要进行下载,我的系统是 Centos Linux 7 ,所以就下载
在这里插入图片描述

1.2 上传解压

  1. 使用xshell等工具将java压缩包上传到 /root 根目录
  2. 使用下面命令解压java并放到 /usr/local/ 目录下面
tar -zxvf jdk-8u421-linux-x64.tar.gz -C /usr/local/

在这里插入图片描述

1.3 java环境配置

  1. 设置软连接,方便使用
ln -s jdk1.8.0_421 jdk

在这里插入图片描述

  1. 配置JDK环境变量
vim /etc/profile

添加如下内容

# 添加JAVA环境变量
JAVA_HOME=/usr/local/jdk
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH

刷新配置环境

source /etc/profile

在这里插入图片描述

二、伪分布式 Hadoop 安装配置

2.1 Hadoop 下载

下载地址:https://hadoop.apache.org/releases.html
根据需要下载自己的版本,这里我下载 2.10.2
在这里插入图片描述
在这里插入图片描述

2.2 上传解压

上传到根目录 /root
在这里插入图片描述

把文件解压到 /usr/local

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

配置软连接

ln -s /usr/local/hadoop-2.10.2/ hadoop

2.3 Hadoop 文件目录介绍

Hadoop目录介绍

在这里插入图片描述

  • bin:

    • 存放内容:Hadoop的各种可执行脚本和程序,如启动和停止Hadoop服务的脚本、Hadoop命令行工具等。
    • 功能:用于执行对Hadoop相关服务(如HDFS、YARN、MapReduce等)的操作和管理任务。
  • etc:

    • 存放内容:Hadoop的配置文件,如hadoop-env.sh(环境变量配置)、core-site.xml(核心配置)、hdfs-site.xml(HDFS配置)、yarn-site.xml(YARN配置)和mapred-site.xml(MapReduce配置)等。
    • 功能:这些文件定义了Hadoop集群的行为和设置,是Hadoop正常运行的基础。
  • include

    • 存放内容:供C/C++应用程序使用的Hadoop相关的头文件。
    • 功能:当需要编写与Hadoop交互的本地代码时,这些头文件是必要的。它们提供了与Hadoop API交互的接口和定义。
  • lib

    • 存放内容:Hadoop运行所需的本地库(.so文件,即动态链接库)。
    • 功能:这些库提供了如压缩/解压缩等底层功能支持,是Hadoop正常运行的必要条件。
  • sbin

    • 存放内容:包含超级用户(管理员)使用的脚本,主要用于系统级别的操作,如启动和停止Hadoop守护进程。
    • 功能:这些脚本通常需要更高的权限来执行,用于管理Hadoop集群的底层服务和进程。
  • share

    • 存放内容:Hadoop的共享资源,主要包括Java的jar包(二进制源码)、文档和其他资源文件。子目录如share/hadoop/common、share/hadoop/hdfs、share/hadoop/yarn和share/hadoop/mapreduce等分别对应Hadoop各个组件的库文件和文档。
    • 功能:这些资源为Hadoop的开发和部署提供了必要的支持,包括API文档、示例代码和依赖库等。
  • logs

    • 存放内容:Hadoop各个组件和服务的日志文件,通常以.log结尾。
    • 功能:这些日志文件记录了Hadoop集群的运行状态和错误信息,是问题排查和性能优化的重要依据。

2.4 Hadoop 配置

2.4.1 修改 core-site.xml 配置文件

core-site.xml 文件主要是配置 Hadoop 的共有属性,具体配置内容如下所示。

[root@hadoop1 hadoop]# vim core-site.xml 

在里面添加如下内容(注释记得去掉,避免引起格式错误)

<property>
	<name>fs.defaultFS</name>
	<value>hdfs://hadoop1:9000</value>
	<!--配置 hdfs NameNode 的地址,9000是RPC通信的端口-->
</property>
<property>
	<name>hadoop.tmp.dir</name>
	<value>/data/tmp</value>
	<!--hadoop 的临时目录-->
</property>

在这里插入图片描述

2.4.2 修改 hdfs-site.xml 配置文件

hdfs-site.xml 文件主要配置跟 HDFS相关的属性,具体配置内容如下所示:

[root@hadoop1 hadoop]# vim hdfs-site..xml 

在里 面添加如下内容(注释记得去掉,避免引起格式错误)

<property>
	<name>dfs.namenode.name.dir</name>
	<value>/root/data/dfs/name</value>
	<!--配置 namenode 节点存储 fsimage的目录位置-->
</property>
<property>
	<name>dfs.datanode.data.dir</name>
	<value>/root/data/dfs/data</value>
	<!--配置 datanode 节点存储 block 的目录位置-->
</property>
<property>
	<name>dfs.replication</name>
	<value>1</value>
	<!--配置 hdfs 副本数量-->
</property>
<property>
	<name>dfs.permissions</name>
	<value>false</value>
	<!--关闭 hdfs 的权限检查-->
</property>

在这里插入图片描述

2.4.3 修改 hadoop-env.xml 配置文件

hadoop.env.sh 文件主要配置 Hadoop 环境相关的变量,这里主要修改JAVA_HOME的安装目录,具体配置如下所示。

[root@hadoop1 hadoop]# vim hadoop-env.sh 

大概第 25 行位置进行修改:
export JAVA_HOME=/usr/local/jdk

备注,如果你有给JAVA配置JAVA_HOME环境变量,此处也可以不进行修改

2.4.4 修改 mapred-site.xml 配置文件

mapred-site.xml 文件主要配置跟 MapReduce 相关的属性,这里主要将 MapReduce 的运行框架名称配置为 YARN,具体配置内容如下所示:

# 先拷贝一份
[root@hadoop1 hadoop]# cp mapred-site.xml.template mapred-site.xml
[root@hadoop1 hadoop]# vim mapred-site.xml

在里面添加如下内容(注释记得去掉,避免引起格式错误)

<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
	<!--指定运行 mapreduce 的环境为 YARN-->
</property>

在这里插入图片描述

2.4.5 修改 yarn-site.xml 配置文件

yarn-site.xml 文件主要配置跟 YARN 相关的属性,具体配置内容如下所示。

[root@hadoop1 hadoop]# vim yarn-site.xml

在里面添加如下内容(注释记得去掉,避免引起格式错误)

<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
	<!--配置 NodeManager 执行MR任务的方式为 Shuffle 混洗-->
</property>

在这里插入图片描述

2.4.6 修改 slaves 配置文件

slaves 文件主要配置哪些节点为 datanode 角色,由于目前搭建的是 Hadoop伪分布集群,所以只需要填写当前主机的 hostname 即可,具体配置内容如下所示:

[root@hadoop1 hadoop]# vim slaves

里面添加如下内容(主机名称):
hadoop1

2.4.7 配置 Hadooop 环境变量

在 root 用户下,添加 Hadoop 环境变量, 具体操作如下所示:

[root@hadoop1 hadoop]# vim /etc/profile

里面添加如下内容:

# 添加 Hadoop环境变量
HADOOP_HOME=/usr/local/hadoop
PATH=$HADOOP_HOME/bin:$PATH
export HADOOP_HOME PATH

在这里插入图片描述

更新环境配置文件

[root@hadoop1 hadoop]# source /etc/profile

查看 Hadoop 版本

[root@hadoop1 hadoop]# hadoop version

在这里插入图片描述

2.4.8 创建配置文件里面的目录

[root@hadoop1 hadoop]# mkdir -p /root/data/tmp
[root@hadoop1 hadoop]# mkdir -p /root/data/dfs/name
[root@hadoop1 hadoop]# mkdir -p /root/data/dfs/data

三、启动伪分布式 Hadoop 集群

3.1 格式化主节点 namenode

再 Hadoop 安装目录,使用如下命令对 NameNode 进行格式化

[root@hadoop1 hadoop]# ./bin/hdfs namenode -format

在这里插入图片描述

注意:第一次安装 Hadoop 集群需要对 NameNode 进行格式化,Hadoop 集群安装成功之后,下次只需要使用脚本 start-all.sh 一键启动 Hadoop 集群即可。

3.2 启动 Hadoop 伪分别集群

在 Hadoop 安装目录下,使用脚本一键启动 Hadoop 集群,具体操作如下所示:

[root@hadoop1 hadoop]# ./sbin/start-all.sh 

在这里插入图片描述

3.3 查看 Hadoop 服务进程

通过 jps 命令查看 Hadoop 伪分布集群的服务进程,具体操作如下:

[root@hadoop1 hadoop]# jps

在这里插入图片描述

如果服务进程中包含 Resourcemanager、Nodemanager、NameNode、DataNode 和 SecondaryNameNode 等5个进程,这就说明 Hadoop 伪分布式集群启动成功了。

3.4 查看 HDFS 文件系统

在浏览器中输入 http://hadoop1:50070 地址,通过 web 界面查看 HDFS 文件系统,具体操作如下:
在这里插入图片描述

3.5 查看 YARN 资源管理系统

在浏览器中输入 http://hadoop1:8088 地址,通过 web 界面查看 HDFS 文件系统,具体操作如下:

在这里插入图片描述

四、测试运行 Hadoop 伪分布集群

Hadoop 伪分布集群启动之后,我们以 Hadoop 自带的 WordCount 案例来检测 Hadoop 集群环境的可用性。

4.1 查看 HDFS 目录

在 HDFS shell 中,使用 ls 命令查看 HDFS 文件系统目录,具体操作如下所示:

[root@hadoop1 hadoop]# ./bin/hdfs dfs -ls /

由于是第一次使用 HDFS 文件系统,所以 HDFS 中目前没有任何文件和目录

4.2 参加 HDFS 目录

在 HDFS shell 中,使用 ls 命令查看 HDFS 文件系统目录,具体操作如下所示:

[root@hadoop1 hadoop]# ./bin/hdfs dfs -mkdir /test

4.3 准备测试数据

在 HDFS shell 中,使用 ls 命令查看 HDFS 文件系统目录,具体操作如下所示:

[root@hadoop1 hadoop]# vi words.log

添加如下内容:

hadoop hadoop hadoop 
spark spark spark
flink flink flink

4.4 测试数据上次到 HDFS

在 HDFS shell 中,使用 ls 命令查看 HDFS 文件系统目录,具体操作如下所示:

[root@hadoop1 hadoop]# ./bin/hdfs dfs -put words.log /test

4.5 运行 WordCount 案例

使用 yarn 脚本将 Hadoop 自带的 WordCount 程序提交到 YARN 集群运行,具体操作如下所示:

[root@hadoop1 hadoop]# ./bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.2.jar wordcount /test/words.log /test/out

执行完,查看 YARN 资源管理系统
在这里插入图片描述

查看作业运行结果

使用 cat 命令查看 WordCount 作业输出结果,具体操作如下所示。

[root@hadoop1 hadoop]# ./bin/hdfs dfs -cat /test/out/*

在这里插入图片描述
如果 WordCount 运行结果符合预期值,说明 Hadoop 伪分布式集群已经搭建成功

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

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

相关文章

【从零开始一步步学习VSOA开发】URL 资源标识

URL 资源标识 概念 在 VSOA 的世界里&#xff0c;所有的差异化均得到统一&#xff0c;所有的硬件、软件服务均提供统一的资源标签 URL。类似 http://&#xff0c;VSOA 的 URL 以 vsoa:// 开始。下面通过 2 个例子介绍 VSOA 统一资源标识的好处&#xff1a; 匹配规则 URL 标…

Modbus poll和Modbus Mbslave的使用

读取Modbus Mbslave中的数据 首先创建COM1和COM2端口 然后 using System.IO.Ports; ​ namespace 通信 {internal class Program{static void Main(string[] args){Console.WriteLine("Hello, World!");SerialPort serialPort new SerialPort("COM1",960…

前缀和专题

板子&#xff1a; &#xff08;占坑&#xff09; Leetcode 238. 除自身以外数组的乘积 优化前&#xff1a;使用前后缀数组记录 class Solution { public:vector<int> productExceptSelf(vector<int>& nums) {int n nums.size();vector<int> pre(n, 1),…

JMeter 压测Http接口

前言 今天产品在会议上吐槽说我们的服务接口连一点点压力都扛不住&#xff0c;用户稍微用下翻译功能&#xff0c;就报错 429。我一听 429 就觉得不对劲&#xff0c;明明4xx 的错误码应该找前端才对的&#xff0c;怎么能找我这个前端后端运维测试工程师呢&#xff1f; 如果是产…

如何在生成式AI里使用 Ray Data 进行大规模 RAG 应用的 Embedding Inference

检索增强生成 (RAG) 是企业级生成式 AI&#xff08;GenAI&#xff09;应用的热门案例之一。多数 RAG 教程演示了如何利用 OpenAI API 结合 Embedding 模型和大语言模型&#xff08;LLM&#xff09;来进行推理&#xff08;Inference&#xff09;。然而&#xff0c;在开发过程中&…

【第16章】Spring Cloud之Gateway全局过滤器(安全认证)

文章目录 前言一、公共模块1. 引入依赖2. 工具类 二、用户服务1. 新建模块2. 引入依赖3. 启动类4. 基本配置5. 登录接口 三、网关服务1. 引入依赖2. 应用配置3. 自定义过滤器 四、单元测试1.介绍2. 登录接口3. 提供者接口3.1 无token3.2 有token 总结 前言 我们已经接入了网关…

构造散列表以及处理冲突问题

目录 一. 散列表的基本概念 二. 散列表的冲突问题 三. 构造散列函数 四. 处理冲突 一. 散列表的基本概念 散列表简而言之就是一个根据一个对应关系&#xff08;这个对应关系也叫散列函数&#xff09;来存储关键码&#xff08;关键字&#xff09;的一个表。 例如&#xff0c;…

SSM电子商务系统-计算机毕业设计源码68470

基于SSM框架的电子商务系统的设计与实现 摘 要 随着电子商务的迅猛发展和计算机信息技术的全面跃升&#xff0c;网上购物系统由于其迎合了人们诉求和期望而渗入社会生活各个层面和角落。本文设计并实现了一个基于SSM框架的电子商务系统。该系统旨在为用户提供一个舒适且快捷的…

创建第一个Spring MVC项目

上篇文章&#xff0c;我们围绕什么是Spring MVC进行讲述了&#xff0c;这篇&#xff0c;我们将在IDEA创建我们的第一个Spring MVC项目。 创建我们的第一个Spring MVC项目 创建项目模块 如果你出现上面小图这样的&#xff0c;代表你就成功创建成功了一个Web项目&#xff0c;当…

商品购物网页的设计

系统名称&#xff1a; 基于TCP网络通信及数据库的网页查询系统 文档作者&#xff1a;清馨 创作时间&#xff1a;2024-8-3 最新修改时间&#xff1a;2024-8-6 最新版本号&#xff1a; 1.0 1.背景描述&#xff1a; 该系统为创建网络并发服务器&#xff0c;通过HTTP超文本网络…

【ML】 如何训练transform model, 模型训练实现细节

【ML】 如何训练transform model, 模型训练实现细节 1. transform 训练 原理2. transform 训练TIPS2.1 copy mechanism![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/69fb84a73d0240cc9042e17ae10bbef7.jpeg) 2. bean search束搜索的工作原理&#xff1a;束搜索的特…

部署DR模式集群

一、配置实验环境 每台主机的防火墙和SELinux都要关掉 systemctl stop firewalld setenforce 0 1、client(eth0为nat模式) 配置好网卡IP和网关IP&#xff0c;然后重启网卡 nmcli connection reload nmcli connection up eth0 [rootclient ~]# cat /etc/NetworkManager/syst…

500Kg载重履带式无人车技术详解

本款500Kg载重履带式无人车&#xff0c;专为复杂环境与多样化任务设计&#xff0c;具备卓越的机动性和承载能力。其基础参数如下&#xff1a; 最大载重量&#xff1a;500Kg&#xff0c;适用于运输装备、物资或执行特定作业任务。 整车重量&#xff1a;根据具体配置有所不同&am…

解决RDP远程计算机收到非预期的证书的问题

打开证书管理 查看远程桌面证书删除 然后搜索别的同名证书&#xff0c;如果在受信任的根证书里面&#xff0c;也删除。

差旅平台如何为企业降本30%?事前管控是关键

在多员工、业务跨地域的众多企业中&#xff0c;差旅成本常常成为一项巨大负担。为了有效解决这一问题&#xff0c;许多企业开始寻求可以显著降低企业差旅成本的差旅平台。本次&#xff0c;我们将集中拆解上市公司中智药业集团是如何通过差旅平台分贝通实现差旅成本减少30%效果的…

微信小程序教程011-3:京西购物商城实战之Home页实现

文章目录 3、首页3.0 创建home分支3.1 配置网络请求3.2 轮播图区域3.2.1 请求轮播图的数据3.2.2 渲染轮播图的UI结构3.2.3 配置小程序分包3.2.4 点击轮播图跳转到商品详情页3.2.5 封装 uni.$showMsg() 方法3.3 分类导航区域3.3.1 获取分类导航的数据3.3.2 渲染分类导航的UI结构…

通过Sui Gas Pool扩展赞助交易gas费

Mysten Labs正在向Sui开发者社区开源Sui Gas Pool功能。这项创新服务旨在大规模赞助Sui上交易的gas费&#xff0c;解决高并发需求应用的用户入驻问题。 Sui的原生功能赞助交易&#xff0c;允许交易使用与发送者地址不同的gas coin支付gas费。这一功能允许服务补贴用户的交易成…

如何评估并选择最佳的国内项目管理软件?

国内外主流的10款国内项目管理软件对比&#xff1a;PingCode、Worktile、Jira 、Basecamp、Trello、Asana 、Wrike、Tower 、禅道、Teambition 。 在选择适合自己企业的项目管理软件时&#xff0c;很多人会感到无从下手&#xff0c;担心无法找到既符合预算又能满足团队需求的解…

【优秀python案例】基于百度贴吧的数据采集与文本分析设计与实现

数据采集实现&#xff1a; 对百度贴吧帖子数据的采集。首先&#xff0c;使用requests库发送HTTP请求&#xff0c;通过设置请求头模拟浏览器访问&#xff0c;获取网页的HTML内容。然后&#xff0c;利用BeautifulSoup库对HTML内容进行解析&#xff0c;以便提取所需的信息。 在循…

AI回答:C#项目编译后生成部分文件的主要职责

【引入】以ConsoleApp1为例&#xff0c;请问C#编译之后以下文件有啥用 1.bin\runtimes 文件夹存放什么&#xff0c;有什么用&#xff1f; bin\runtimes 文件夹存放了项目的运行时相关文件&#xff0c;这些文件包括了各种目标平台的运行时库。 2.bin\生成的exe文件可以在别的电脑…