Linux部署HDFS集群

(一)VMware虚拟机中部署

ps、其中node1、node2、node3替换为自己相应节点的IP地址,或者host文件中配置过的主机名,或者看前置准备
或者查看前置准备:Linux部署HDFS集群前置准备

1.下载压缩包

https://www.apache.org/

2.部署配置

image-20231129112438762

3.安装Hadoop

以下操作均在node1节点以root身份执行

  • 上传Hadoop安装包到node1节点

  • 解压压缩包到/export/server/中

tar -zxvf hadoop-3.3.4.tar.gz -C /export/server
  • 构建软连接
cd /export/server
ln -s /export/server/hadoop-3.3.4 hadoop
  • 进入hadoop安装包内
cd hadoop
ls -l

image-20231129113412205

4.修改配置文件

image-20231129113504621

  • 配置workers文件(告诉我们集群里面从节点有哪些)

    cd etc/hadoop/
    vim workers
    

    填入如下内容

    node1
    node3
    node2
    
  • 配置hadoop-env.sh文件

    vim hadoop-env.sh
    

    填入如下内容

    export JAVA_HOME=/export/server/jdk
    export HADOOP_HOME=/export/server/hadoop
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export HADOOP_LOG_DIR=$HADOOP_HOME/logs
    
    • JAVA_HOME,指明JDK环境的位置在哪
    • HADOOP_HOME,指明Hadoop安装位置
    • HADOOP_CONF_DIR,指明Hadoop配置文件目录位置
    • HADOOP_LOG_DIR,指明Hadoop运行日志目录位置
    • 通过记录这些环境变量,来指明上述运行时的重要信息
  • 配置core-site.xml文件

    vim core-site.xml
    

    填入如下内容

    <configuration><property><name>fs.defaultFS</name><value>hdfs://node1:8020</value></property><property><name>io.file.buffer.size</name><value>131072</value></property>
    </configuration>
    
    • key: fs.defaultFS
    • 含义:HDFS文件系统的网络通讯路径
    • :hdfs://node1:8020
      • 议为hdfs://
      • namenode为node1
      • namenode通讯端口为8020
    • key:io.file.buffer.size
    • 含义:操作文件缓冲区大小
    • :31072bit
    • hdfs://node1:8020为整个HDFS内部的通讯地址,应用协议为hdfs://(Hadoop内置协议)
    • 表明DataNode将和node1的8020端口通讯,node1是NameNode所在机器
    • 此配置固定了nodel必须启动NameNode进程
  • 配置hdfs-site.xml

    填入以下内容

    <configuration><property><name>dfs.datanode.data.dir.perm</name> <value>700</value></property><property><name>dfs.namenode.name.dir</name><value>/data/nn</value></property><property><name>dfs.namenode.hosts</name><value>node1,node2,node3</value></property><property><name>dfs.blocksize</name><value>268435456</value></property><property><name>dfs.namenode.handler.count</name><value>100</value></property><property><name>dfs.datanode.data.dir</name><value>/data/dn</value></property>
    </configuration>
    

    image-20231129144629842

    image-20231129144744231

5.准备数据目录

  • 在node1节点

    mkdir -p /data/nn
    mkdir /data/dn
    
  • 在node2和node3节点

    mkdir -p /data/dn
    

image-20231129145130800

6.分发Hadoop文件夹

目前,已经基本完成Hadoop的配置操作,可以从node1将hadoop安装文件夹远程复制到node2、node3

  • 分发

    # 在node1执行如下命令
    cd /export/server
    scp -r hadoop-3.3.4 node2:`pwd`/
    scp -r hadoop-3.3.4 node3:`pwd`/
    
  • 在node2执行,为hadoop配置软链接

    ln -s /export/server/hadoop-3.3.4 /export/server/hadoop
    
  • 在node3执行,为hadoop配置软链接

    ln -s /export/server/hadoop-3.3.4 /export/server/hadoop
    

7.配置环境变量

为了方便我们操作Hadoop,可以将Hadoop的一些脚本、程序配置到PATH中,方便后续使用。
image-20231129161000221
在Hadoop文件夹中的bin、sbin两个文件夹内有许多的脚本和程序,现在来配置一下环境变量

  • 编辑环境变量

    vim /etc/profile
    

    追加如下内容

    export HADOOP_HOME=/export/server/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
  • 刷新环境变量

    source /etc/profile
    
  • 在node2和node3配置同样的环境变量

8.授权为hadoop用户

hadoop部署的准备工作基本完成
为了确保安全,hadoop系统不以root用户启动,我们以普通用户hadoop来启动整个Hadoop服务
所以,现在需要对文件权限进行授权。

ps:请确保已经提前创建好了hadoop用户(前置准备章节中有讲述),并配置好了hadoop用户之间的免密登录

  • 以root身份,在node1、node2、node3三台服务器上均执行如下命令

    # 以root身份,在三台服务器上均执行
    chown -R hadoop:hadoop /data
    chown -R hadoop:hadoop /export
    

9.格式化整个文件系统

前期准备全部完成,现在对整个文件系统执行初始化

  • 格式化namenode(node1上执行)

    # 确保以hadoop用户执行
    su - hadoop
    # 格式化namenode
    hadoop namenode -format
    
  • 启动

    # 一键启动hdfs集群
    start-dfs.sh
    # 一键关闭hdfs集群
    stop-dfs.sh# 如果遇到命令未找到的错误,表明环境变量未配置好,可以以绝对路径执行
    /export/server/hadoop/sbin/start-dfs.sh
    /export/server/hadoop/sbin/stop-dfs.sh
    

10.查看HDFS WEBUI

启动完成后,可以在浏览器打开:
http://node1:9870,即可查看到hdfs文件系统的管理网页。

image-20231129164133893

11.补充:集群部署常见问题解决

(1)省流自检查

为发挥大家的主观能动性,先将一些常见的出错原因列出来。
这些原因可能导致不同的错误细节,大家可以自行检查是否符合,后面在详细讲解每一种错误的细节。

  • 是否遗漏了前置准备章节的相关操作?
  • 是否遗漏的将文件夹(Hadoop安装文件夹、/data数据文件夹)chown授权到hadoop用户这一操作
  • 是否遗忘了格式化hadoop这一步(hadoop namenode -format)
  • 是否是以root用户格式化的hadoop
  • 是否以root启动过hadoop,后续以hadoop用户启动出错
  • 是否确认workers文件内,配置了node1、node2、node3三个节点
  • 是否在/etc/profile内配置了HADOOP_HOME环境变量,并将 H A D O O P H O M E / b i n 和 HADOOP_HOME/bin和 HADOOPHOME/binHADOOP_HOME/sbin加入PATH变量
  • 是否遗忘了软链接,但环境变量的配置的HADOOP_HOME确是:/export/server/hadoop
  • 是否确认配置文件内容的准确(一个字符都不错),并确保三台机器的配置文件均OK
(2)详细细节版
①Permission denied

image-20231129165805676

②command not found

image-20231129165838515

③workers文件

image-20231129165910055

④NameNode is not formatted

image-20231129170041645

⑤WstxEOFException、Unexpected EOF

image-20231129170124705

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

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

相关文章

STM32L051使用HAL库操作实例(13)- 读取IAQ-CORE-C传感器实例

目录 一、前言 二、传感器参数 三、STM32CubeMX配置&#xff08;本文使用的STM32CubeMX版本为6.1.2&#xff09;例程使用模拟I2C进行数据读取 1.MCU选型 2.使能时钟 3.时钟配置 4.GPIO口配置 四、配置STM32CubeMX生成工程文件 五、点击GENERATE CODE生成工程文件 六、…

IT外包服务内容有哪些?

在信息技术迅猛发展的今天&#xff0c;越来越多的企业为了提高效率、降低成本以及更专注于核心业务&#xff0c;选择将信息技术工作外包给专业的IT服务公司。IT外包包含很多不同的服务&#xff0c;以下是对主要服务内容的简要概述。 1. 网络建设与维护 网络是现代企业信息系统…

同调群的维度 和 同调群的秩

同调群的维度是指同调群中非零元素的最小阶数。与线性代数中对向量空间的维度的理解类似。对同调群&#xff0c;k维同调群的维度是k。 同调群的秩是指同调群中的自由部分的维度。同调群通常包含自由部分和挠部分。同调群的秩是指同调群中自由部分的维度。对同调群&#xff0c;…

Hadoop学习笔记(HDP)-Part.14 安装YARN+MR

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

【SpringCloud系列】@FeignClient微服务轻舞者

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

RocketMQ-核心编程模型

RocketMQ的消息模型 深入理解RocketMQ的消息模型 RocketMQ客户端基本流程 RocketMQ基于Maven提供了客户端的核心依赖&#xff1a; <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version&…

unity学习笔记19

一、角色动画的使用练习 从资源商店导入的动画资源&#xff08;Character Pack: Free Sample&#xff09;中将资源中的角色创建在场景里&#xff0c;现在场景里存在的角色并没有任何动画。 在资源中找到Animations文件夹&#xff0c;在这个文件有很多模型文件&#xff08;.FBX…

什么牌子的开放式耳机好?开放式耳机选购指南来了!

在当今音频科技不断演进的时代&#xff0c;开放式耳机作为一种受欢迎的音频设备&#xff0c;吸引着越来越多的消费者&#xff0c;与封闭式耳机相比&#xff0c;开放式耳机在音质表现和舒适度上都具有独特的优势&#xff0c;在众多品牌和型号中选择一款满足个人需求的开放式耳机…

【UGUI】Unity为下拉菜单添加选项(DropDown)

要想控制谁就把谁拿到代码里-获取组件-修改组件参数&#xff08;变量或者方法&#xff09; 代码示例&#xff1a; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro;public class UIcontrol : MonoBehavi…

Leetcod面试经典150题刷题记录——数组 / 字符串篇

数组 / 字符串篇 1. 合并两个有序数组Python3排序法双指针法 2. 移除元素Python3 3. 删除有序数组中的重复元素Python3 7. 买卖股票的最佳时机Python3 8. 买卖股票的最佳时机ⅡPython3贪心法动态规划法 11. H 指数Python3排序法计数排序法二分查找 有个技巧&#xff0c;若想熟悉…

linux磁盘挂载

一、磁盘查看与分区挂载 查看未挂载的磁盘 sudo fdisk -l对上述未挂载的磁盘进行分区和格式化 sudo fdisk /dev/sdd输入g生成分区表&#xff0c; mklabel gpt (创建分区表) #与上一步重复了&#xff0c;可以省略 mkpart primary 1 -1 p (输出结果) q (离开菜单)分好区之后可…

MySQL-视图

一、&#xff1f;看一个需求 emp表的列信息很多&#xff0c;有些信息是个人重要信息(比如 sal,comm,mgr,hiredate),如果我们希望某个用户只能查询emp表的(empno、ename,job和deptno)信息,有什么办法? 》视图 二、基本概念 视图 视图是一个虚拟表&#xff0c;其内容由查…

网络安全缓冲区溢出实验

实验要求实验步骤函数 f00()函数 f01()函数 f02() 实验要求 C 程序 homework08.c 的主函数如下&#xff1a; int main(int argc, char * argv[]) { init_buf(Lbuffer, LEN);switch(argc) {case 1: f00(); break;case 2: f01(); break;case 3: f02(); break; default: f00(); …

CompletableFuture异步执行

CompletableFuture异步执行 概念 Java 8引入了一个强大的类:CompletableFuture,它在java.util.concurrent包中。CompletableFuture是Future的增强版本,主要用于实现异步编程。 首先,我们要理解什么是Future。Future是Java5引入的一个接口,代表一个异步计算的结果。你可…

华清远见嵌入式学习——C++——作业6

作业要求&#xff1a; 代码&#xff1a; #include <iostream>using namespace std;class Animal { public:virtual void perform() 0;};class Lion:public Animal { private:string foods;string feature; public:Lion(){}Lion(string foods,string feature):foods(foo…

软件设计模式原则(三)单一职责原则

单一职责原则&#xff08;SRP&#xff09;又称单一功能原则。它规定一个类应该只有一个发生变化的原因。所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变&#xff0c;那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原…

【MySQL】聚合函数和分组(查找)

聚合函数分组分组聚合如何显示每个部门的平均工资和最高工资显示每个部门的每种岗位的平均工资和最低工资显示平均工资低于2000的部门和它的平均工资(SMITH员工不参与)where 和 having 的区别 聚合函数 函数说明COUNT([DISTINCT] expr)返回查询到的数据的 数量SUM([DISTINCT] …

三、DVP摄像头调试笔记(图片成像质量微调整,非ISP)

说明&#xff1a;当前调试仅仅用来测试和熟悉部分摄像头寄存器模式 一、图片成像方向控制&#xff0c;基本每个摄像头都会有上下左右翻转寄存器 正向图片 反向图片 二、设置成像数据成各种颜色&#xff0c;&#xff08;黑白/原彩/黄色等等&#xff09; 在寄存器书册描述中…

【SpringCloud篇】Eureka服务的基本配置和操作

文章目录 &#x1f339;简述Eureka&#x1f6f8;搭建Eureka服务⭐操作步骤⭐服务注册⭐服务发现 &#x1f339;简述Eureka Eureka是Netflix开源的一个基于REST的服务治理框架&#xff0c;主要用于实现微服务架构中的服务注册与发现。它由Eureka服务器和Eureka客户端组成&#…

使用NimoShake将数据从AWS DynamoDB迁移至阿里云MongoDB

本文介绍从AWS DynamoDB到阿里云MongoDB的迁移框架。 它概述了以下步骤&#xff1a; 在阿里云上配置云数据库MongoDB版并应用公网终端节点在 AWS EC2 上安装 Nimoshake将AWS EC2访问阿里云MongoDB版列入白名单配置 Nimoshake 并开始迁移过程验证目标数据库上的增量数据 1. 创…