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,一经查实,立即删除!

相关文章

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

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

快手正式推出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源…

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 开发工具的选择…

fiddler抓包工具

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

如何在写代码中找到乐趣

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

[方法] Unity 3D模型与骨骼动画

1. 在软件中导出3D模型 1.1 3dsmax 2014 1.1.1 TGA转PNG 3dsmax的贴图格式为tga&#xff0c;我们需要在在线格式转换中将其转换为Unity可识别的png格式。 1.1.2 模型导出 导出文件格式为fbx。在导出设置中&#xff0c;要勾选三角算法&#xff0c;取消勾选摄像机和灯光&#…

三秒4张图!让 Stable Diffusion 出图速度暴增的新一代生成模型LCM!

前言 大家好&#xff0c;这里是和你们一起探索 AI绘画月月~ 最近一种新的图像生成形式逐渐兴起&#xff0c;即生成的图像会随输入的文字或笔画动作迅速变化&#xff0c;这让图像生成有了更多灵活探索和准确控制的空间。这种「实时反馈」的感觉源于模型能在几秒钟内&#xff0…

fiddler 返回Raw乱码

有时会发现自己发送的请求后&#xff0c;返回结果Raw里面是乱码&#xff0c;可以勾选Decode并重新发送请求就解决了 这个时候将Decode勾选一下 此时就好了

【C++ | 委托构造函数】委托构造函数 详解 及 例子源码

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

模版总结小全

BFS 最短步数问题 #include<iostream> #include<queue> #include<cstring> using namespace std;const int N 50; char g[N][N],d[N][N]; int dx[] {-1,0,1,0}; int dy[] {0,1,0,-1}; int n,m;int bfs(int x,int y){queue<pair<int,int> > q…

MySQL高级-SQL优化-insert优化-批量插入-手动提交事务-主键顺序插入

文章目录 1、批量插入1.1、大批量插入数据1.2、启动Linux中的mysql服务1.3、客户端连接到mysql数据库&#xff0c;加上参数 --local-infile1.4、查询当前会话中 local_infile 系统变量的值。1.5、开启从本地文件加载数据到服务器的功能1.6、创建表 tb_user 结构1.7、上传文件到…

mysql_config 命令, 可以查看mysqlclient库的位置在/usr/lib64/mysql下

好吧&#xff0c;其实我是从这里知道了 -l 后面加的库名和so文件这种名不一样&#xff0c;因为库文件实际叫下面这个名&#xff08;前面有lib)。

MySQL之覆盖索引

什么是覆盖索引&#xff1f; 覆盖索引&#xff1a;查询时使用了索引&#xff0c;且需要返回的列&#xff0c;在改索引中已经全部能找到。 示例&#xff1a;有user表如下&#xff1a; CREATE TABLE user (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 技术主键,name varch…