【赵渝强老师】Hadoop的伪分布部署模式

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 本文详解Hadoop伪分布式部署:涵盖目录结构、环境变量配置、核心配置文件(hdfs-site.xml等)修改、NameNode格式化、集群启动及Web UI访问,并通过WordCount实例验证HDFS与YARN功能。

b444.png

Hadoop的安装和部署是大数据生态圈体系中最麻烦的一个。Hadoop部署完成后,进一步地部署Spark和Flink就非常容易了。Hadoop的部署模式分为本地模式、伪分布模式和全分布模式。在学习完成了ZooKeeper的相关内容后,还将进一步地学习Hadoop HA的部署。这里重点讨论一下Hadoop的伪分布部署模式。视频讲解如下:


一、 Hadoop的目录结构


在部署Hadoop之前,需要对Hadoop的目录结构要有一定了解。先执行下面的语句将Hadoop的安装介质解压的/root/training目录。

tar -zxvf hadoop-3.1.2.tar.gz -C ~/training/
# 下面展示了Hadoop的目录结构:
[root@bigdata111 training]# tree -d -L 3 hadoop-3.1.2/
hadoop-3.1.2/              ─ ─ ── HADOOP_HOME目录
├── bin                    ─ ─ ── 最基本的管理和使用脚本所在的目录
├── etc                    ─ ─ ── 配置文件所在目录
│   └── hadoop
│       └── shellprofile.d
├── include                ─ ─ ── 对外提供的编程库头文件目录
├── lib                    ─ ─ ── 对外提供的编程动态库和静态库
│   └── native
│       └── examples
├── libexec                ─ ─ ── 各个服务Shell配置文件所在的目录
│   ├── shellprofile.d
│   └── tools
├── sbin                   ─ ─ ── Hadoop管理脚本所在目录
│   └── FederationStateStore
│       ├── MySQL
│       └── SQLServer
└── share
    ├── doc
    │   └── hadoop
    └── hadoop            ─ ─ ── ─ 各个模块编译后的Jar包所在目录
        ├── client
        ├── common
        ├── hdfs
        ├── mapreduce
        ├── tools
        └── yarn


为了方便操作Hadoop,需要设置HADOOP_HOME的环境变量,并把bin和sbin目录加入系统的PATH路径中。下面列举了具体的步骤。


(1)编辑文件~/.bash_profile文件。

vi /root/.bash_profile


(2)输入下面的环境变量信息,并保存退出。

HADOOP_HOME=/root/training/hadoop-3.1.2
export HADOOP_HOME
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH


(3)生效环境变量。

source /root/.bash_profile


二、 【实战】部署Hadoop伪分布模式


Hadoop伪分布式模式是在单机上模拟一个分布式环境,它具备Hadoop的所有功能特性,即:具备HDFS和Yarn。由于在伪分布模式下依然只有一台主机,因此这种模式并不是真正的集群环境。这种模式更多的是在开发和测试环境中使用该模式,不建议在生产环境中使用Hadoop的伪分布模式。


(1)进入Hadoop配置文件所在的目录

cd /root/training/hadoop-3.1.2/etc/hadoop/


(2)修改文件hadoop-env.sh,设置JAVA_HOME

export JAVA_HOME=/root/training/jdk1.8.0_181


(3)在/root/.bash_profile文件中增加下面的环境变量,并执行source语句生效环境变量。

export HDFS_DATANODE_USER=root
export HDFS_DATANODE_SECURE_USER=root
export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root


(4)进入Hadoop配置文件所在目录。

cd /root/training/hadoop-3.1.2/etc/hadoop/


(5)修改hdfs-site.xml文件,增加下面的内容。

<!--数据块的冗余度,默认为3-->
<!--冗余度的配置原则一般与数据节点的个数一致,最大不超过3-->
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>
<!--禁用HDFS的权限功能-->
<!--开发环境设置为false-->
<!--生产环境设置为true-->
<property>
  <name>dfs.permissions</name>
  <value>false</value>
</property>


(6)修改core-site.xml文件,增加下面的内容。

<!--NameNode的地址-->
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://bigdata111:9000</value>
</property> 
<!--HDFS对应于操作系统目录-->
<!--该参数的默认值是Linux的tmp目录-->
<property>
  <name>hadoop.tmp.dir</name>
  <value>/root/training/hadoop-3.1.2/tmp</value>
</property>


(7)修改mapred-site.xml文件,增加下面的内容。

<!--配置MapReduce运行的框架-->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property> 
<!--以下是配置Hadoop的环境变量-->
<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property> 
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property> 
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>


(8)修改yarn-site.xml文件,增加下面的内容。

<!--配置的ResourceManager的地址-->
<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>bigdata111</value>
</property>
<!--NodeManager采用shuffle洗牌的方式来执行任务-->
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>


(9)执行命令对NameNode进行格式化。

hdfs namenode -format
# 格式化成功后,将看到如下的日志信息:
Storage directory /root/training/hadoop-3.1.2/tmp/dfs/name has been successfully formatted.


(10)执行命令启动Hadoop集群,如下图所示:

start-all.sh

image.png

(11)执行jps命令查看后台的进程,如下图所示。

image.png

(12)通过9870端口访问HDFS的Web Consol,如下图所示。

image.png


(13)通过8081端口访问Yarn的Web Console,如下图所示。

image.png


(14)执行命令在HDFS上创建/input目录。

hdfs dfs -mkdir /input


(15)执行命令将/root/temp/data.txt文件上传到/input目录。

hdfs dfs -put /root/temp/data.txt /input


(16)执行MapReduce WordCount任务。

cd /root/training/hadoop-3.1.2/share/hadoop/mapreduce/
hadoop jar hadoop-mapreduce-examples-3.1.2.jar wordcount /input/data.txt /output/wc


(17)刷新Yarn的Web Console,观察任务的执行过程,如下图所示。

image.png

(18)任务执行完成后,在HDFS上观察输出的结果,如下图所示。

image.png

相关文章
|
JavaScript
vue element plus Slider 滑块
vue element plus Slider 滑块
832 0
|
14天前
|
人工智能 缓存 Shell
Claude Code 全攻略:命令大全 + 实战工作流(完整版)
Claude Code 是一款运行在终端环境下的 AI 编码助手,能够直接在项目目录中理解代码结构、编辑文件、执行命令、执行开发计划,并支持持久化记忆、上下文压缩、后台任务、多模型切换等专业能力。对于日常开发、项目维护、快速重构、代码审查等场景,它可以大幅减少手动操作、提升编码效率。本文从常用命令、界面模式、核心指令、记忆机制、图片处理、进阶工作流等维度完整说明,帮助开发者快速上手并稳定使用。
3406 4
|
5月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL锁的类型
PostgreSQL通过表级锁和行级锁实现并发控制,结合MVCC机制保障数据一致性。锁模式多样,粒度精细,可有效避免事务冲突,提升并发性能。
324 0
【赵渝强老师】PostgreSQL锁的类型
|
6月前
|
数据采集 运维 DataWorks
【赵渝强老师】阿里云大数据集成开发平台DataWorks
DataWorks是阿里云一站式大数据开发治理平台,支持数据集成、开发、建模、分析、质量监控、服务化及迁移等全链路功能,兼容多种计算引擎,助力企业高效构建数据中台,实现数据资产化与价值挖掘。
540 6
|
11月前
|
运维 监控 测试技术
【赵渝强老师】使用obd快速体验OceanBase
OceanBase Deployer (obd) 是 OceanBase 数据库的安装部署工具,支持命令行与白屏界面两种方式。通过标准化复杂配置流程,降低集群部署难度。命令行适合深度用户,白屏界面便于快速体验。obd 还提供包管理、压测、集群管理等运维功能。文中详细介绍了使用 obd 部署 OceanBase 数据库集群的步骤,包括执行命令、连接数据库、查看信息及监控页面访问等内容,并附有视频讲解和示例输出。
331 1
|
12月前
|
存储 关系型数据库 MySQL
【赵渝强老师】MySQL的备份方案
本文详细介绍了MySQL数据库备份与恢复的多种方式,包括物理备份与逻辑备份的概念及区别、全量备份、增量备份和差异备份的特点,以及热备份与冷备份的适用场景与优缺点。通过图文结合的方式,并辅以视频讲解,帮助读者全面了解MySQL备份策略及其工具选择,为实际操作提供理论支持。
328 9
|
12月前
|
存储 关系型数据库 分布式数据库
【赵渝强老师】HBase的逻辑存储结构
HBase的逻辑存储结构包括命名空间、表和列族。命名空间类似关系型数据库中的数据库,用于逻辑划分和隔离数据;表以RowKey组织数据并按字典序排列,分为多个Region实现分布式存储;列族包含列且无需预先定义,由MemStore缓存写入数据,定期刷新生成Store File。文章通过视频和代码示例详细讲解了各部分的操作与功能。
440 2
|
数据可视化 数据挖掘 项目管理
2024年办公协同软件最新排行榜:五款协同利器全方位测评
在数字化办公时代,协同软件成为提升工作效率、优化沟通和简化管理的重要工具。本文从功能特点、上手难度、性价比等角度,对五款热门办公协同软件——板栗看板、飞书、钉钉、Notion 和 Microsoft Teams 进行了深度测评,帮助企业和团队找到最适合自身需求的工具。
1274 3
|
消息中间件 Java Kafka
springboot 如何保证Kafka顺序消费
【7月更文挑战第1天】在分布式消息系统中,消息的顺序性是一个重要的问题。Apache Kafka 提供了多种机制来确保消息的顺序消费,但需要根据具体的使用场景进行配置和设计。
1147 0
|
Web App开发 缓存 安全
HTTP协议 -JavaWeb基础必知
HTTP协议 -JavaWeb基础必知
318 0