centos7安装 hadoop集群

目录

  • 准备
  • 集群搭建步骤
  • 1. 环境准备
      • 三台服务器IP
      • 关闭三台服务器的防火墙
      • 修改三台服务器的hostname文件
      • 修改三台服务器的hosts映射
      • 配置三台服务器之间的免密登录
      • 三台时间同步设置
  • 2. hadoop安装资源划分
  • 3. 开始搭建hadoop集群
    • 192.168.83.144 即 hadoop1上的修改
      • 解压安装包
      • 添加环境变量
      • 验证hadoop环境配置
      • 修改hadoop配置
      • core-site.xml
      • hdfs-site.xml
      • hadoop-env.sh
      • works
    • 192.168.83.145 和192.168.83.146 即hadoop2和hadoop3的配置
      • 拷贝安装
    • 环境变量配置
    • 格式化集群
    • 启动集群
      • 其他启动停止的操作命令
  • 4. 物理机浏览器访问hadoop系统界面

准备

  1. 虚拟机准备三台centos7的服务器。保证三台服务器之间网络互通。
  2. jdk1.8 安装完成,并在三台centos7的服务器配置好环境变量。
  3. hadoop-3.4.0安装包

集群搭建步骤

1. 环境准备

三台服务器IP

三台服务器IP如下

IP地址
192.168.83.144
192.168.83.145
192.168.83.146

关闭三台服务器的防火墙

使用一下命令关闭三台服务器的防火墙。

# 关闭防火墙。暂时关闭。重启服务器后系统自动开启防火墙
systemctl stop firewalld
# 禁用防火墙,服务器重启后防火墙是关闭状态
systemctl disable firewalld

修改三台服务器的hostname文件

使用以下命令编辑hostName文件

vi /etc/hostname

三台服务器修改的名称如下表

服务器修改后的hostname
192.168.83.144hadoop1
192.168.83.145hadoop2
192.168.83.146hadoop3

修改三台服务器的hosts映射

使用以下命令编辑hosts文件

vi /etc/hosts

在三台服务器的hosts文件新增以下配置:

192.168.83.144  hadoop1
192.168.83.145  hadoop2
192.168.83.146  hadoop3

配置三台服务器之间的免密登录

在每个服务器中使用以下命令生成RSA公钥和私钥

ssh-keygen

回车三次之后得到密钥。密钥存放地址在:/root/.ssh
使用以下命令将密钥分发给其他服务器达到免密登录的效果.
注意,第一次分发密钥需要输入密码

# 将密钥分给hadoop1
ssh-copy-id hadoop1

# 将密钥分给hadoop2
ssh-copy-id hadoop2

# 将密钥分给hadoop3
ssh-copy-id hadoop3

当三台服务器都分发完密钥之后,服务器之间即可进行免密登录

三台时间同步设置

为了保证三台服务器的时间一致,三台服务器需要同步网络时间。使用以下命令同步时间

ntpdate pool.ntp.org 

也可以使用同步时间脚本。详情参考:centerOs7安装相关的应用脚本

2. hadoop安装资源划分

hadoop集群中主要有NameNode、DataNode、SecondaryNode 进程。
NameNode和SecondaryNode不要放在同一个服务器上。
DataNode在每个服务器上
具体如下表:

服务器安装资源
192.168.83.144NameNode、DataNode
192.168.83.145SecondaryNode 、DataNode
192.168.83.146DataNode

3. 开始搭建hadoop集群

192.168.83.144 即 hadoop1上的修改

解压安装包

将hadoop-3.4.0安装压缩包上传到服务器的 /usr/local/
使用以下命令解压hadoop-3.4.0安装压缩包

# 格式:tar -zxvf  压缩包路径 -C  解压到的目标路径
tar -zxvf /usr/local/hadoop-3.4.0.tar.gz -C /usr/local/

解压完成后在 /usr/local/ 下会有一个名为 hadoop-3.4.0 的文件夹,此文件夹为hadoop的安装路径。
hadoop-3.4.0 文件夹目录结构说明如下:

bin: 存放命令执行文件
etc:存放配置文件
include:存放工具脚本
lib:存放资源库
sbin:存放管理集群的命令
share:存放共享资源、开发工具、官方案例
...

添加环境变量

使用以下命令打开编辑环境变量文件

vim /etc/profile

在文件中加入以下内容:

export HADOOP_HOME=/usr/local/hadoop-3.4.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

注意:如果PATH的值中以 冒号: 分隔每个配置。hadoop的配置需要添加 binsbin 路径

修改完成后使用以下命令重新加载环境变量

source /etc/profile

验证hadoop环境配置

使用以下命令验证hadoop的环境配置是否可用

hadoop version

如果打印出hadoop的版本号,则说明配置环境成功。

修改hadoop配置

进入 /usr/local/hadoop-3.4.0/etc/ 下。对以下文件进行修改

core-site.xml

将原来core-site.xml中的configuration标签替换为以下内容

<configuration>
    <!-- 
    	设置NameNode节点 ,此处按照《hadoop安装资源划分》部分配置设置hadoop1为NameNode节点
    	注意: 
    	hadoop1.x时代默认端口9000 
    	hadoop2.x时代默认端口8020 
    	hadoop3.x时代默认端口 9820。此处的版本为3.4.0所以使用的是9820的默认端口 
   	-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop1:9820</value>
    </property>
    
    <!-- 
    	hdfs的基础路径,此路径的tmp 文件夹不需要手动创建,Hadoop
    	会自动创建tmp文件夹
   	-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop-3.3.1/tmp</value>
    </property>
</configuration>

hdfs-site.xml

将原来hdfs-site.xml中的configuration标签替换为以下内容

<configuration>
    <!-- hadoop块的副本数量,一般情况下建议等于集群机器节点数量。 -->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    
    <!-- 
    	设置SecondaryNameNode 节点 .
    	此处按照《hadoop安装资源划分》部分配置设置hadoop2为SecondaryNameNode 节点
    	SecondaryNameNode http访问主机名和端口号。
    -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop2:9868</value>
    </property>
    
    <!-- NameNode守护进程的http地址:主机名和端口号。-->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop1:9870</value>
    </property>
</configuration>

hadoop-env.sh

在 hadoop-env.sh 中加入以下配置

# 此处根据自己的jdk安装路径填写
export JAVA_HOME=/usr/local/jdk8

# Hadoop3中,需要添加如下配置,设置启动集群角色的用户
# NameNode 的启动用户
export HDFS_NAMENODE_USER=root

# DataNode 的启动用户
export HDFS_DATANODE_USER=root

# SecondaryNameNode  的启动用户
export HDFS_SECONDARYNAMENODE_USER=root

works

配置服务器节点.在works下加入以下配置。

hadoop1
hadoop2
hadoop3

到此hadoop1 的配置完成

192.168.83.145 和192.168.83.146 即hadoop2和hadoop3的配置

拷贝安装

由于hadoop2和hadoop3的配置也需要和hadoop1的配置一致,所以只需要将hadoop1中的/usr/local/hadoop3.4.0文件夹拷贝一份到hadoop2和hadoop3机器中即可。
在hadoop1服务器中使用以下命令将hadoop1中已经配置好的hadoop发送到hadoop2和hadoop3.

# 拷贝到hadoop2服务器的/usr/local/下
scp -r /usr/local/hadoop3.4.0 hadoop2:/usr/local/

# 拷贝到hadoop3服务器的/usr/local/下
scp -r /usr/local/hadoop3.4.0 hadoop3:/usr/local/

环境变量配置

hadoop2和hadoop3两台服务器的环境变量配置也要和hadoop1中的配置一致。参考上面的《 添加环境变量》步骤。
当然也可以使用拷贝的方式将hadoop1中已经配置好的环境变量文件拷贝到hadoop2和hadoop3。
最后都需要使用命令source /etc/profile重新加载环境变量配置

格式化集群

使用以下命令格式化集群。初始化一个新的hadoop集群环境
在hadoop1中使用以下命令格式化一个新的hadoop集群环境

hdfs namenode -format

执行成功之后,在hadoop1的安装路径 /usr/local/hadoop3.4.0/ 下会出现 tmp 文件夹,说明格式化成功。
注意,此时hadoop2和hadoop3还未生成tmp ,hadoop2和hadoop3需要集群启动之后才会自动生成此文件夹。

启动集群

在hadoop1中使用以下命令启动hadoop集群.

start-dfs.sh

启动完成之后hadoop1、hadoop2、hadoop3 中都会生成对应的tmp文件夹 。且分别在hadoop1、hadoop2、hadoop3 中使用 jps 命令都能查询到hadoop的进程信息。
如下三个图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

其他启动停止的操作命令

# 启动HDFS所有进程(NameNode、SecondaryNameNode、DataNode)
start-dfs.sh	

# 停止HDFS所有进程(NameNode、SecondaryNameNode、DataNode)		
stop-dfs.sh				

# hdfs --daemon start 单独启动一个进程
# 只开启NameNode
hdfs --daemon start NameNode	
# 只开启SecondaryNameNode		
hdfs --daemon start SecondaryNameNode	
# 只开启DataNode	
hdfs --daemon start DataNode				

# hdfs --daemon stop 单独停止一个进程
# 只停止NameNode
hdfs --daemon stop NameNode
# 只停止SecondaryNameNode
hdfs --daemon stop SecondaryNameNode	
# 只停止DataNode
hdfs --daemon stop DataNode

# hdfs --workers --daemon start 启动所有的指定进程
# 开启所有节点上的DataNode
hdfs --workers --daemon start DataNode		

# hdfs --workers --daemon stop 启动所有的指定进程
# 停止所有节点上的DataNode
hdfs --workers --daemon stop DataNode		

4. 物理机浏览器访问hadoop系统界面

集群启动完成之后,在物理机的浏览器上访问以下地址:

http://192.168.83.144:9870

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

R可视化:可发表的热图

当使用pheatmap包在R语言中实现不同组间的基因表达热图时,我们通常遵循以下步骤: 步骤 1: 加载所需的库首先,我们需要加载pheatmap包以及可能需要的其他包,如dplyr或tidyverse,用于数据预处理。 步骤 2: 准备数据我们需要一个基因表达矩阵,其中行代表基因,列代表样本,每…

非递归实现快排排序及归并排序(尾篇)

1.快速排序&#xff08;双指针实现&#xff09; 2.非递归实现快排 3.递归实现归并排序 4.非递归实现归并排序 5.总代码 1.快速排序&#xff08;双指针实现&#xff09; 俩有个指针一前一后的排放着&#xff0c;cur先走并且去找比kye对应值小的数组值&#xff0c;一旦找到后…

odoo qweb template小结

QWeb QWeb是一个基于XML的模板引擎,可用于生成HTML片段和页面。它使用XML格式来定义模板。QWeb通过在模板中添加特定的标记,来指示模板中的数据和逻辑部分。使用QWeb,你可以创建各种不同的模板,例如列表视图,表单视图和报告等。QWeb支持标准的HTML标记和控制结构,如if语…

千云物流 -openGemini生成环境使用

部署架构 安装部署 ## 创建storeclass和namespacekubectl apply -f opengemini-sc.yaml## 创建存储kubectl apply -f opengemini-stroepv.yaml #创建存储的pv&pvckubectl apply -f opengemini-metapv.yaml #创meta的pv&pvc## 创建网络服务kubectl apply -f opengemin…

jenkins应用2-freestyle-job

1.jenkins应用 1.jenkins构建的流程 1.使用git参数化构建&#xff0c;用标签区分版本 2.git 拉取gitlab远程仓库代码 3.maven打包项目 4.sonarqube经行代码质量检测 5.自定义制作镜像发送到远程仓库harbor 6.在远程服务器上拉取代码启动容器 这个是构建的整个过程和步骤…

StartAI:AI扩图功能,让设计更高效

在数字设计领域&#xff0c;图像的清晰度和细节至关重要。StartAI作为领先的AI设计工具&#xff0c;不断推出创新功能&#xff0c;以满足设计师们对高质量图像处理的需求。最新推出的扩图功能&#xff0c;结合了“创成式填充”技术和“PS插件”的便捷&#xff0c;为设计师们带来…

华为云投入巨资支持开发者,推动云服务与SaaS领域快速发展

近日&#xff0c;广州市迎来了一场科技界的盛会——华为云开发者日HDC.Cloud Day广州站。此次活动不仅是一场技术的盛宴&#xff0c;更是一个思维的碰撞和灵感的源泉&#xff0c;为众多开发者提供了深入学习和实践最新科技的平台。在这里&#xff0c;华为云展示了其在昇腾AI云服…

Verilog实战学习到RiscV - 3 : ICEStick 评估板点灯

收到 ICESTICK 评估板后还没好好玩。先来点个灯&#xff0c;正好把之前介绍过的工具链串起来用一下。 代码 Verilog代码只有一个顶层模块top.v&#xff0c;定义如下&#xff1a; module top(output wire D1,output wire D2,output wire D3,output wire D4,output wire D5);a…

QNX 7.0.0开发总结

1 QNX编译 1.1 基本概念 QNX可以直接使用Linux Makefile编译库和二进制&#xff0c;在Makefile文件中指定CCaarch64-unknown-nto-qnx7.0.0-g&#xff0c;或者CCx86_64-pc-nto-qnx7.0.0-g&#xff0c;保存退出后&#xff0c;运行source /qnx_sdk_path/qnxsdp-env.sh&#xff0c;…

LangChain框架介绍

LangChain 的核心组件 模型 I/O 封装 LLMs&#xff1a;大语言模型Chat Models&#xff1a;一般基于 LLMs&#xff0c;但按对话结构重新封装PromptTemple&#xff1a;提示词模板OutputParser&#xff1a;解析输出 数据连接封装 Document Loaders&#xff1a;各种格式文件的加载…

软件测试——白盒测试

目录 学习视频来源&#xff1a;1.01什么是白盒测试(Av809778070,P1)_哔哩哔哩_bilibili 1.语句覆盖 2.判定覆盖 3.条件覆盖 4.判定条件覆盖 5.条件组合覆盖 6.路径覆盖 7.基本路径覆盖 学习视频来源&#xff1a;1.01什么是白盒测试(Av809778070,P1)_哔哩哔哩_bilibili …

Linux C语言:控制语句(if switch)

一、控制语句&#xff08;if&#xff09; 1、if-单分支 一个if语句由一个布尔表达式后跟一个或多个语句组成。 语法&#xff1a; if (boolean_expression) { /* 如果布尔表达式为真将执行的语句 */ } 如果布尔表达式为 true&#xff0c;则 if 语句内的代码块将被执行。 如…

小猪APP分发:让APP封装变得如此简单

你是否曾经在开发完一款APP后&#xff0c;为了封装、分发而头疼不已&#xff1f;别担心&#xff0c;小猪APP分发来拯救你了&#xff01;这款神器不仅能让你的工作变得更加高效&#xff0c;还能让你的APP在各大平台上顺利分发。 小猪APP封装www.ppzhu.net APP封装的挑战 开发一…

数据误删?别怕!COS防误删和误删恢复攻略请查收

在云存储领域&#xff0c;数据的安全性始终是悬在头顶的达摩克利斯之剑。长期以来&#xff0c;腾讯云对象存储服务&#xff08;COS&#xff09;一直致力于数据安全的探索和实践&#xff0c;以保障数据的安全性和完整性。对象存储COS准备了一份“防误删”和“误删恢复”攻略给大…

【遂愿赠书 - 2期】:618火热来袭,网络安全书单推荐

文章目录 一、网络安全书单背景二、网络安全与编程实践书单2.1 &#x1f3f0;《内网渗透实战攻略》2.2 &#x1f6e1;️《Kali Linux高级渗透测试&#xff08;原书第4版&#xff09;》2.3 &#x1f396;️《CTF那些事儿》2.4 &#x1f680;《权限提升技术&#xff1a;攻防实战与…

基于开源大模型的AI助理开发概述

一、引言 在数字化快速发展的今天&#xff0c;人工智能&#xff08;AI&#xff09;技术已经成为推动社会进步的重要力量。AI助理&#xff0c;作为AI技术的一种重要应用形式&#xff0c;已经深入到人们的日常生活中&#xff0c;为人们提供了便捷、智能的服务。本文旨在概述一个…

MySQL是怎么保证持久性的(redo log日志相关)

Mysql中 事务的很多实现&#xff0c;都是因为有日志的支撑&#xff0c;比如binlog、undo log、redo log等 MySQL是怎么保证持久性的 持久性是指&#xff0c;事务一旦提交&#xff0c;它对数据库的改变就应该是永久性的&#xff0c;接下来的其他操作或故障不能对其有影响。In…

VR 软件对工业设计有哪些好处

虚拟现实&#xff08;VR&#xff09;技术自其诞生以来&#xff0c;确实为多个行业带来了革命性的变革&#xff0c;特别是在工业设计、教育培训和制造业等领域。以下是对VR技术在这些领域中应用的进一步分析&#xff1a; 1. 增强设计过程 VR技术的引入使得工业设计过程变得更加直…

电子凭证3.0,助力企业实现报销自动化

在数字化浪潮汹涌澎湃的今天&#xff0c;企业对于高效、便捷、安全的财务管理需求日益凸显。传统的报销流程繁琐、耗时&#xff0c;不仅增加了企业的运营成本&#xff0c;还影响了员工的工作效率和满意度。用友BIP电子凭证3.0的发布&#xff0c;无疑为企业实现报销自动化提供了…

【网络安全技术】——期末复习(冲刺篇)

&#x1f4d6; 前言&#xff1a;快考试了&#xff0c;做篇期末总结&#xff0c;都是重点与必考点。 题型&#xff1a;材料分析题、简答题、看图分析题 课本&#xff1a; 目录 &#x1f552; 1. 计算机网络安全概述&#x1f558; 1.1 安全目标&#x1f558; 1.2 常见的网络安全…