Hadoop 安装与伪分布的搭建

目录

1 SSH免密登录

1.1 修改主机名称

1.2 修改hosts文件

1.3 创建hadoop用户

1.4 生成密钥对免密登录

2 搭建hadoop环境与jdk环境

2.1 将下载好的压缩包进行解压

2.2 编写hadoop环境变量脚本文件

2.3 修改hadoop配置文件,指定jdk路径

2.4 查看环境是否搭建完成

3 hadoop的启动

3.1 Hadoop 启动需要修改的配置文件

3.2 配置文件的修改

1、core-site.xml

2、hdfs-site.xml

3、mapred-site.xml

4、yarn-site.xml

3.3 启动hadoop与权限修改

3.4 再次启动hadoop


Rocky Linux 9.4 (CentOS同样适用)

hadoop版本 3.3.6

java : jdk1.8

1 SSH免密登录

1.1 修改主机名称

[root@localhost ~]# hostnamectl set-hostname hadoop

退出重新登录

[root@localhost ~]# exit

1.2 修改hosts文件

[root@hadoop ~]# vim /etc/hosts

1.3 创建hadoop用户

[root@hadoop ~] useradd -m hadoop -s /bin/bash
[root@hadoop ~] ls /home/
hadoop  rocky
# 设置用户密码
[root@hadoop ~] passwd hadoop
更改用户 hadoop 的密码 。
新的密码: 
重新输入新的密码: 
passwd:所有的身份验证令牌已经成功更新。
[root@hadoop ~] ssh hadoop@hadoop
hadoop@hadoop's password: 
Last failed login: Sat Jun 29 15:08:33 CST 2024 from 192.168.239.131 on ssh:notty
There were 2 failed login attempts since the last successful login.
[hadoop@hadoop ~]$ exit
注销

1.4 生成密钥对免密登录

使用su - hadoop 登录hadoop 账户

[root@hadoop /]# su - hadoop# 创建秘钥对,为免密登录做准备
[hadoop@hadoop ~]$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/hadoop/.ssh/id_rsa
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:NVZ+2Ur09zHUadG9KMNkwOnh1wodT3SUpR9ae6xM+wo hadoop@hadoop1
The key's randomart image is:
+---[RSA 4096]----+
|        ..o o.o=X|
|         + * ooO+|
|        o X * B==|
|         * B *o=B|
|        S o +.o.=|
|           . o o.|
|            E +  |
|             . . |
|              ...|
+----[SHA256]-----+[hadoop@hadoop ~]$ ssh-copy-id root@hadoop
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/hadoop/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@hadoop1's password: Number of key(s) added: 1Now try logging into the machine, with:   "ssh 'root@hadoop1'"
and check to make sure that only the key(s) you wanted were added.# 给本机免密登录
[hadoop@hadoop1 ~]$ ssh-copy-id hadoop
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/hadoop/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
hadoop@hadoop1's password: Number of key(s) added: 1Now try logging into the machine, with:   "ssh 'hadoop1'"
and check to make sure that only the key(s) you wanted were added.# 测试免密登录是否成功
[hadoop@hadoop1 ~]$ ssh hadoop1
Last login: Sat Jun 29 15:32:19 2024 from fe80::20c:29ff:fe33:d160%ens160
[hadoop@hadoop1 ~]$ exit
注销

 命令行输入 ssh hadoop 不需要密码即成功

2 搭建hadoop环境与jdk环境

2.1 将下载好的压缩包进行解压

解压路径为

hadoop  :  /opt/hadoop

jdk        :  /opt/jdk 

[root@hadoop ~] ls
hadoop-3.3.6.tar.gz  jdk-8u162-linux-x64.tar.gz 公共  模板  视频  图片  文档  下载  音乐  桌面  anaconda-ks.cfg  test[root@hadoop ~] mkdir -p /opt/jdk
[root@hadoop ~] mkdir -p /opt/hadoop
[root@hadoop ~] tar -xzf jdk-8u162-linux-x64.tar.gz -C /opt/jdk
[root@hadoop ~] tar -xzf hadoop-3.3.6.tar.gz -C /opt/hadoop
[root@hadoop ~] cd /opt
[root@hadoop opt] ls
hadoop  jdk  rh  soft

2.2 编写hadoop环境变量脚本文件

添加路径到path环境变量中

[hadoop@hadoop ~]$ exit

[root@hadoop ~] # vim /etc/profile.d/hadoop-eco.sh

创建脚本文件,加入以下环境变量路径

JAVA_HOME=/opt/jdk
PATH=$JAVA_HOME/bin:$PATHHADOOP_HOME=/opt/hadoop
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH# HADOOP_USER
export HDFS_NAMENODE_USER=hadoop
export HDFS_DATANODE_USER=hadoop
export HDFS_SECONDARYNAMENODE_USER=hadoop
export YARN_RESOURCEMANAGER_USER=hadoop
export YARN_NODEMANAGER_USER=hadoop
export HDFS_JOURNALNODE_USER=hadoop
export HDFS_ZKFC_USER=hadoop

  • HDFS_NAMENODE_USER=hadoop:指定HDFS NameNode服务的运行用户。NameNode负责管理文件系统的命名空间,包括文件和目录的元数据。

  • HDFS_DATANODE_USER=hadoop:指定HDFS DataNode服务的运行用户。DataNodes存储实际的数据块,是HDFS数据存储的主要组成部分。

  • HDFS_SECONDARYNAMENODE_USER=hadoop:指定HDFS Secondary NameNode服务的运行用户。Secondary NameNode并不存储集群的实时状态,但它定期合并NameNode的fsimage和editlogs文件,减少NameNode的启动时间。

  • YARN_RESOURCEMANAGER_USER=hadoop:指定YARN ResourceManager服务的运行用户。ResourceManager是YARN中的主控服务,负责集群资源的分配和管理工作。

  • YARN_NODEMANAGER_USER=hadoop:指定YARN NodeManager服务的运行用户。NodeManagers运行在每个集群节点上,负责容器的生命周期管理。

  • HDFS_JOURNALNODE_USER=hadoop:指定HDFS JournalNode服务的运行用户。JournalNodes用于在HA(High Availability)配置中存储NameNode状态的编辑日志,以保证数据的一致性。

  • HDFS_ZKFC_USER=hadoop:指定ZooKeeper Failover Controller(ZKFC)的运行用户。ZKFC用于监控NameNode的状态,并在检测到故障时触发failover,切换到备用NameNode。

通过设置这些环境变量,你确保了Hadoop的各个服务将以hadoop用户的身份运行,而不是以root或其他用户运行。这不仅增强了系统的安全性,还便于管理和审计。在Hadoop的启动脚本中,这些变量会被读取并应用到相应的服务启动过程中

2.3 修改hadoop配置文件,指定jdk路径

[root@hadoop ~]# vim /opt/hadoop/etc/hadoop/hadoop-env.sh 

这个变量指定了 Java 的安装位置。Hadoop 依赖于 Java 运行,因此必须正确设置此变量,指向你的 Java 安装目录。

增加以下行,注意此路径为java环境变量的路径

运行修改后的脚本

[root@hadoop ~] source /opt/hadoop/etc/hadoop/hadoop-env.sh

2.4 查看环境是否搭建完成

输入hadoop version 和 java -version 查询版本号,检查环境是否配好

[root@hadoop ~] hadoop version
Hadoop 3.3.6
Source code repository https://github.com/apache/hadoop.git -r 1be78238728da9266a4f88195058f08fd012bf9c
Compiled by ubuntu on 2023-06-18T08:22Z
Compiled on platform linux-x86_64
Compiled with protoc 3.7.1
From source with checksum 5652179ad55f76cb287d9c633bb53bbd
This command was run using /opt/hadoop/share/hadoop/common/hadoop-common-3.3.6.jar
[root@hadoop ~] java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

3 hadoop的启动

3.1 Hadoop 启动需要修改的配置文件

1、core-site.xml

        fs.defaultFS

        hadoop.tmp.dir

2、hdfs-site.xml

        dfs.replication => 1

        dfs.namenode.name.dir

        dfs.datanode.data.dir

3、mapred-site.xml

        mapreduce.framework.name =>yarn

4、yarn-site.xml

        yarn.resourcemanager.hostname => localhost

        yarn.nodemanager.aux-services => mapreduce_shuffle

3.2 配置文件的修改

1、core-site.xml

[root@hadoop hadoop] vim /opt/hadoop/etc/hadoop/core-site.xml

在configuration块中添加以下信息

<property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value>
</property>
<property><name>hadoop.tmp.dir</name><value>file:///opt/hadoop-record/tep</value>
</property>

<configuration>

这是Hadoop配置文件的根标签,用于包含所有的配置属性。

<property>

这个标签用于定义一个具体的配置项,包括名称(<name>)和值(<value>)两部分。

<name>fs.defaultFS</name>

这个配置项指定了Hadoop的默认文件系统。在你的例子中,hdfs://localhost:9000表示Hadoop将使用运行在本地主机上的Hadoop分布式文件系统(HDFS),端口号为9000。

<name>hadoop.tmp.dir</name>

这个配置项定义了Hadoop存放临时文件的目录。这里设置为file:///opt/hadoop-record/tep,意味着所有Hadoop产生的临时文件将存储在本地文件系统的/opt/hadoop-record/tep目录下。

这些配置通常被写入到Hadoop的核心配置文件core-site.xml中,该文件位于Hadoop的配置目录$HADOOP_HOME/etc/hadoop/内。通过修改这些配置,可以指定Hadoop如何存储数据以及临时文件的存放位置,这对于优化性能和管理数据至关重要。

2、hdfs-site.xml

[root@hadoop hadoop] vim /opt/hadoop/etc/hadoop/hdfs-site.xml

在configuration块中添加以下配置

        <property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>file:///opt/hadoop-record/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:///opt/hadoop-record/data</value></property>

<property>

每一个<property>标签都定义了一个具体的配置项,包括配置项的名称和对应的值。

<name>dfs.replication</name>

  • 功能描述:此配置项决定了HDFS中数据块的默认复制因子。复制因子是指一个数据块在HDFS集群中存储的副本数量。

  • 你的设置:你将其设置为1,这意味着数据块只在一个节点上保存一份副本,不进行冗余备份。在生产环境中,这通常是不推荐的做法,因为如果存储数据的节点出现故障,数据可能会丢失。但在测试或开发环境中,为了节省资源,有时会采用这种方式。

<name>dfs.namenode.name.dir</name>

  • 功能描述:此配置项指定了NameNode存储元数据信息的本地文件系统目录。

  • 你的设置:将其设置为file:///opt/hadoop-record/name,这意味着NameNode的元数据将存储在本地文件系统的/opt/hadoop-record/name目录下。

<name>dfs.datanode.data.dir</name>

  • 功能描述:此配置项指定了DataNode存储实际数据块的本地文件系统目录。

  • 你的设置:你将其设置为file:///opt/hadoop-record/data,这意味着DataNode的数据块将存储在本地文件系统的/opt/hadoop-record/data目录下。

3、mapred-site.xml

[root@hadoop hadoop] vim /opt/hadoop/etc/hadoop/mapred-site.xml

在configuration块中添加以下配置

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

<configuration>

这是Hadoop配置文件中的根元素,用于封装所有的配置项。

<property>

此标签定义了一个具体的配置属性,包含了属性的名称和值。

<name>mapreduce.framework.name</name>

  • 功能描述:此配置项指定了MapReduce作业执行时所依赖的资源管理和调度框架。在Hadoop生态系统中,YARN(Yet Another Resource Negotiator)是一个通用的资源管理系统,它不仅可以管理MapReduce作业,还可以支持其他类型的计算框架。

  • 设置:将其设置为yarn,这意味着MapReduce作业将通过YARN来进行资源管理和调度。这是Hadoop 2.x版本及以后版本的默认设置,YARN提供了一个更加灵活和强大的平台,允许多种计算框架共存于同一集群中。

4、yarn-site.xml

[root@hadoop hadoop] vim /opt/hadoop/etc/hadoop/yarn-site.xml 

在configuration块中添加以下配置

        <property><name>yarn.resourcemanager.hostname</name><value>localhost</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>

3.3 启动hadoop与权限修改

格式化namenode

[root@hadoop ~]# hdfs namenode -format 

[root@hadoop ~]# start-all.sh

接下来启动hadoop会有可能发现以下问题,这是由于hadoop用户权限不足

修改权限

[root@hadoop ~]# chown -R hadoop:hadoop /opt/hadoop

3.4 再次启动hadoop

[root@hadoop opt]# start-all.sh

jsp 命令输出显示了当前运行在你的 hadoop 节点上的 Java 进程及其进程ID(PID)

[root@hadoop opt]# jps
9824 NameNode
10738 NodeManager
13539 Jps
10020 DataNode
10582 ResourceManager
10329 SecondaryNameNode

关闭防火墙

[root@hadoop opt]# systemctl stop firewalld

浏览器打开虚拟机的ip+端口号

http://192.168.239.132:9870/

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

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

相关文章

Clickhouse 常见操作

数据查询 从json array string中解析字段 json array string 为json.dumps(array(dict)) select JSONExtractString(row,"Date") as Date from( select arrayJoin(JSONExtractArrayRaw(Remarks)) as row from table x )JSONExtractArrayRaw&#xff1a; 将JsonS…

python中的相对路径

在Python中&#xff0c;相对路径是相对于当前工作目录&#xff08;由os.getcwd()返回&#xff09;的路径。当你想要引用当前目录、父目录或子目录中的文件或目录时&#xff0c;你会使用相对路径。 以下是一些常见的相对路径写法&#xff1a; 引用当前目录下的文件或目录&#…

C# Modbus设备信息加载的实现方式(2)

GlobalProperties是一个全局的数据&#xff0c;类似CoreData&#xff1a; public class GlobalProperties{public static Device Device { set; get; }public static Action<int, string> AddLog;public static SysAdmin CurrentAdmin;public static ModbusTCP Modbus { …

基于Spring Boot的药房信息管理系统

1 项目介绍 1.1 研究的背景及意义 随着社会的飞速进步和药房行业竞争的白热化&#xff0c;传统的手工管理模式已难以适应药房信息管理的现代化需求。在计算机科学技术日臻完善的背景下&#xff0c;药房信息管理者们日益认识到运用计算机技术进行信息管理的迫切性和重要性。计…

【Git】LFS

什么是lfs Git 是分布式 版本控制系统&#xff0c;这意味着在克隆过程中会将仓库的整个历史记录传输到客户端。对于包涵大文件&#xff08;尤其是经常被修改的大文件&#xff09;的项目&#xff0c;初始克隆需要大量时间&#xff0c;因为客户端会下载每个文件的每个版本**。Gi…

快手正式推出Vision Pro版本,引领虚拟现实社交新潮流

6月28日&#xff0c;快手正式推出其专为Apple Vision Pro打造的版本——快手vp版app&#xff0c;成为国内首批登陆Apple Vision Pro的短视频平台。 借助先进的虚拟现实技术&#xff0c;用户可以在快手上体验更真实生动的视频内容&#xff0c;无论是观看趣味短视频内容&#xf…

产品是应该有生命力的

产品是应该有生命力的 在日新月异的商业环境中&#xff0c;产品被寄予厚望&#xff0c;不仅仅满足基本功能需求&#xff0c;而是要能够自我革新&#xff0c;适应市场和技术的快速变化&#xff0c;以及持续吸引并留住用户。 这种生命力体现在产品的迭代升级能力、对用户需求的精…

[鹏城杯 2022]babybit

发现一个压缩包提取出来提取出来两个压缩包里面是注册表使用MiTeC Windows Registry Recovery 恢复注册表 flag在ROOT\ControlSet001\Control\FVEStats里的OsvEncryptInit和OsvEncryptComplete中 NSSCTF{2022/6/13_15:17:39_2022/6/13_15:23:46}

互联网信任危机:Perplexity搜索引擎如何破坏内容创作者的权益

前段时间&#xff0c;Perplexity搜索引擎还是一颗冉冉升起的明日之星&#xff0c;手握巨额投资&#xff0c;有很美好的未来前景&#xff0c;这时&#xff0c;如果不出意外的话&#xff0c;要出意外。 喜好儿网 Perplexity这家公司&#xff0c;它正试图通过创建一个新型的“答…

LoRaWAN网关源码分析(基础概念篇)

目录 一、简介 1、lora_gateway 2、packet_forwarder 二、目录结构 1、lora_gateway 2、packet_forwarder 一、简介 LoRaWAN网关的实现主要依赖两个源代码&#xff1a;lora_gateway和packet_forwarder。接下来&#xff0c;我们将从分析源代码入手&#xff0c;移植LoRaWAN源…

LeetCode:经典题之21、24 题解及延伸

系列目录 88.合并两个有序数组 52.螺旋数组 567.字符串的排列 643.子数组最大平均数 150.逆波兰表达式 61.旋转链表 160.相交链表 83.删除排序链表中的重复元素 389.找不同 1491.去掉最低工资和最高工资后的工资平均值 896.单调序列 206.反转链表 92.反转链表II 141.环形链表 …

深入探讨目标检测算法:原理、方法与应用

目录 1. 目标检测的基本原理 1.1 分类与定位 1.2 评价指标 2. 常见目标检测算法 2.1 传统方法 2.2 基于深度学习的方法 2.2.1 区域提议方法 2.2.2 单阶段检测方法 3. 目标检测算法的发展历程 3.1 早期阶段 3.2 深度学习时代 4. 目标检测的实际应用 4.1 自动驾驶 …

网页背景全屏就这?分享 1 段优质 CSS 代码片段!

大家好&#xff0c;我是大澈&#xff01; 本文约 700 字&#xff0c;整篇阅读约需 1 分钟。 每日分享一段优质代码片段。 今天分享一段 CSS 代码片段&#xff0c;使用 CSS 设置网页全屏背景图片&#xff0c;很简单。 老规矩&#xff0c;先阅读代码片段并思考&#xff0c;再看…

Android Focused Window的更新

启动App时更新inputInfo/请求焦点窗口流程&#xff1a; App主线程调ViewRootImpl.java的relayoutWindow()&#xff1b;然后调用到Wms的relayoutWindow()&#xff0c;窗口布局流程。焦点窗口的更新&#xff0c;通过WMS#updateFocusedWindowLocked()方法开始&#xff0c;下面从这…

MIX OTP——监督树和应用

在上一章关于 GenServer 的内容中&#xff0c;我们实现了 KV.Registry 来管理存储容器。在某个时候&#xff0c;我们开始监控存储容器&#xff0c;这样每当 KV.Bucket 崩溃时&#xff0c;我们就能采取行动。虽然变化相对较小&#xff0c;但它提出了一个 Elixir 开发人员经常问的…

独家原创 | Matlab实现CNN-Transformer多变量时间序列预测

SCI一区级 | Matlab实现BO-Transformer-GRU多变量时间序列预测 目录 SCI一区级 | Matlab实现BO-Transformer-GRU多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现CNN-Transformer多变量时间序列预测&#xff1b; 2.运行环境为Matlab2023b…

【JavaScript】JavaScript简介

希望文章能给到你启发和灵感&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏 支持一下博主吧&#xff5e; 阅读指南 JavaScript入门&#xff08;1&#xff09;————JavaScript简介开篇说明一、什么是JavaScript二、JavaScript的使用2.1 开发工具的选择…

JAVA 面试常见问题详解

JAVA 面试常见问题详解 目录 基础知识 Java基础面向对象编程异常处理 高级特性 多线程与并发集合框架JVM原理 实战问题 代码优化设计模式Spring框架 常见算法与数据结构 排序算法树与图动态规划 系统设计与架构 高并发系统设计分布式系统微服务架构 基础知识 Java基础 JDK…

fiddler抓包工具

概念 概念&#xff1a; Fiddler是一个http协议调试代理工具&#xff0c;它能够记录并检查所有你的电脑和互联网之间的http通讯。 http&#xff1a;不加密&#xff0c;端口为80 https&#xff1a;加密&#xff0c;端口为443 原理&#xff1a; 其实就在访问服务器时&#xff0…

如何在写代码中找到乐趣

平时我们写代码呢&#xff0c;多数情况都是流水线式写代码&#xff0c;基本就可以实现业务逻辑了。 如何在写代码中找到乐趣呢&#xff0c;我觉得&#xff0c;最好的方式就是&#xff1a;使用设计模式优化自己的业务代码。 参考资料&#xff1a; 实战&#xff01;工作中常用到…