当前位置: 首页 > news >正文

部署伪分布式 Hadoop集群

部署伪分布式 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 伪分布式集群已经搭建成功

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【算法 03】雇佣问题
  • LLM与NLP
  • 【leetcode详解】正方形中的最多点数【中等】(C++思路精析)
  • windows 10下,修改ubuntu的密码
  • 【LeetCode】54. 螺旋矩阵
  • 自动回复的AI小助手,人工智能还是人工智障
  • MTK Android 12 Clone Project 克隆项目
  • 清华和字节联合推出的视频理解大模型video-SALMONN(ICML 2024)
  • heapq.heapify构建小顶堆的流程
  • 电脑新加的硬盘如何分区?新加硬盘分区选MBR还是GPT
  • ⭕️【论文阅读】《Interactive Class-Agnostic Object Counting》
  • Spring-包扫描
  • Go sdk下载和配置环境变量
  • 60、PHP 实现 单词查找树算法
  • M.2接口
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • eclipse的离线汉化
  • JavaWeb(学习笔记二)
  • Java精华积累:初学者都应该搞懂的问题
  • mac修复ab及siege安装
  • PAT A1092
  • tab.js分享及浏览器兼容性问题汇总
  • Yii源码解读-服务定位器(Service Locator)
  • 测试开发系类之接口自动化测试
  • 大快搜索数据爬虫技术实例安装教学篇
  • 京东美团研发面经
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 浅谈web中前端模板引擎的使用
  • 小程序01:wepy框架整合iview webapp UI
  • 用Canvas画一棵二叉树
  • Spring第一个helloWorld
  • ​补​充​经​纬​恒​润​一​面​
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • $.proxy和$.extend
  • (02)Hive SQL编译成MapReduce任务的过程
  • (11)MSP430F5529 定时器B
  • (C++哈希表01)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (五)网络优化与超参数选择--九五小庞
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (转)linux 命令大全
  • (转)一些感悟
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • .NET 反射的使用
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET单元测试
  • .NET值类型变量“活”在哪?
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • ::什么意思
  • @EnableWebMvc介绍和使用详细demo
  • [2021 蓝帽杯] One Pointer PHP
  • [2024-06]-[大模型]-[Ollama] 0-相关命令