HDFS分布式文件系统集群搭建与常见坑的解决办法

Linux 系统 CentOS7 上搭建 Hadoop HDFS集群详细步骤 整体思路:先在一个节点上安装、配置,然后再克隆出多个节点,修改 IP ,免密,主机名等提前规划:需要三个节点,主机名分别命名:node1、node2、node3在下面对 node1 配置时,先假设 node2 和 node3 是存在的**注意:**整个搭建过程,除了1和2 步,其他操作都使用普通用户权限。 阅读详情

在学习HDFS之前我们首先了解一下什么是hadoop?

 

hadoop中有3个核心组件:

分布式文件系统:HDFS —— 实现将文件分布式存储在很多的服务器上

分布式运算编程框架:MAPREDUCE —— 实现在很多机器上分布式并行运算

分布式资源调度平台:YARN —— 帮用户调度大量的mapreduce程序,并合理分配运算资源

 

 

 

  hdfs整体运行机制:

     hdfs:

                       分布式文件系统

     hdfs有着文件系统共同的特征:

                       有目录结构,顶层目录是:  /

                       系统中存放的就是文件

                       系统可以提供对文件的:创建、删除、修改、查看、移动等功能

 

 

hdfs跟普通的单机文件系统有区别:

      (1) 单机文件系统中存放的文件,是在一台机器的操作系统中

      (2)hdfs的文件系统会横跨N多的机器

      (3)单机文件系统中存放的文件,是在一台机器的磁盘上

      (4)hdfs文件系统中存放的文件,是落在n多机器的本地单机文件系统中(hdfs是一个基于linux本地文件系统之上的文件系统)

 

hdfs的工作机制:

      (1)客户把一个文件存入hdfs,其实hdfs会把这个文件切块后,分散存储在N台linux机器系统中(负责存储文件块的角色:data node)<准确来说:切块的行为是由客户端决定的>

 

     (2)一旦文件被切块存储,那么,hdfs中就必须有一个机制,来记录用户的每一个文件的切块信息,及每一块的具体存储机器(负责记录块信息的角色是:name node)

 

     (3)为了保证数据的安全性,hdfs可以将每一个文件块在集群中存放多个副本(到底存几个副本,是由当时存入该文件的客户端指定的)

 

综述:一个hdfs系统,由一台运行了namenode的服务器,和N台运行了datanode的服务器组成!

 

 

   搭建hdfs分布式集群

 

    hdfs集群组成结构:

 

   安装hdfs集群的具体步骤:

 

一、首先需要准备N台linux服务器

        学习阶段,用虚拟机即可!

        先准备4台虚拟机:1个namenode节点  + 3 个datanode 节点

       (博主使用的是Vmware安装一台Centos然后克隆3台后,再进行修改  IP   网卡    主机名 hosts对应域名)

 

先来了解一下虚拟机的网络机制:

 

 

再了解一下HDFS的整体工作机制:

  

 

 

二、修改各台机器的主机名和ip地址

主机名:hdp-01  对应的ip地址:192.168.33.61

主机名:hdp-02  对应的ip地址:192.168.33.62

主机名:hdp-03  对应的ip地址:192.168.33.63

主机名:hdp-04  对应的ip地址:192.168.33.64

 

修改IP:

vi /etc/sysconfig/network-scripts/ifcfg-en33

看到的上述图片已经修改过的,特别注意点:

      ONBOOT 要改成yes

      BOOTPROTO要改成static

      IPADDR     GATEWAP  NETMASK    要根据实际情况进行更改

      DNS1和网关地址一样即可

 

修改主机名:

vi /etc/hostname

 

修改hosts文件对应的主机名ip映射

vi /etc/sysconfig/hosts

 

三、从windows中用CRT软件进行远程连接

在windows中将各台linux机器的主机名配置到的windows的本地域名映射文件中:

c:/windows/system32/drivers/etc/hosts

192.168.33.61 hdp-01

192.168.33.62 hdp-02

192.168.33.63 hdp-03

192.168.33.64 hdp-04

 

 

用crt连接上后,修改一下crt的显示配置(字号,编码集改为UTF-8):

 

四、配置linux服务器的基础软件环境

 

 防火墙

关闭防火墙:service iptables stop 

关闭防火墙自启: chkconfig iptables off

 

若上述方法不能使用则:

   这是因为CentOS7版本后防火墙默认使用firewalld,因此在CentOS7中关闭防火墙使用以下命令,

//临时关闭

systemctl stop firewalld

//禁止开机启动

systemctl disable firewalld

Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

 开始安装软件的准备工作:

 

 (1)安装jdk:(hadoop体系中的各软件都是java开发的)

 

  • 利用alt+p 打开sftp窗口,然后将jdk压缩包拖入sftp窗口
  •  然后在linux中将jdk压缩包解压到/bigdata(自己创建)下
  •  配置环境变量:JAVA_HOME   PATH

 vi /etc/profile   在文件的最后,加入:

export JAVA_HOME=/root/apps/jdk1.8.0_60

export PATH=$PATH:$JAVA_HOME/bin

 

  1. 修改完成后,记得 source /etc/profile使配置生效
  2. 检验:在任意目录下输入命令: java -version 看是否成功执行
  3. 将安装好的jdk目录用scp命令拷贝到其他机器
  4. 将/etc/profile配置文件也用scp命令拷贝到其他机器并分别执行source命令

 

集群内主机的域名映射配置

 

在hdp-01上,vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.33.61   hdp-01

192.168.33.62   hdp-02

192.168.33.63   hdp-03

192.168.33.64   hdp-04

然后,将hosts文件拷贝到集群中的所有其他机器上

scp  /etc/hosts  hdp-02:/etc/

scp  /etc/hosts  hdp-03:/etc/

scp  /etc/hosts  hdp-04:/etc/

(SCP远程命令的使用    SCP   【-r】 当前目录或文件    目标地址或域名:目标文件夹下)

 

补充

提示:

如果在执行scp命令的时候,提示没有scp命令,则可以配置一个本地yum源来安装

  1. 先在虚拟机中配置cdrom为一个centos的安装镜像iso文件
  2. 在linux系统中将光驱挂在到文件系统中(某个目录)
  3. mkdir /mnt/cdrom
  4. mount -t iso9660 -o loop /dev/cdrom /mnt/cdrom
  5. 检验挂载是否成功: ls /mnt/cdrom
  6. 3、配置yum的仓库地址配置文件
  7. yum的仓库地址配置文件目录: /etc/yum.repos.d
  8. 先将自带的仓库地址配置文件批量更名:

 

  1. 然后,拷贝一个出来进行修改

  1. 修改完配置文件后,再安装scp命令:
  2. yum install openssh-clients -y

 

 

五、安装hdfs集群

    上传hadoop安装包到hdp-01

 

  1. 修改配置文件

要点提示

核心配置参数:

  1. 指定hadoop的默认文件系统为:hdfs
  2. 指定hdfs的namenode节点为哪台机器
  3. 指定namenode软件存储元数据的本地目录
  4. 指定datanode软件存放文件块的本地目录

 

hadoop的配置文件在:/root/apps/hadoop安装目录/etc/hadoop/

 

1) 修改hadoop-env.sh

    export JAVA_HOME=/root/apps/jdk1.8.0_60

 

2) 修改core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://hdp-01:9000</value>

</property>

</configuration>

3) 修改hdfs-site.xml

    <configuration>

    <property>

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

    <value>/root/hdpdata/name/</value>

    </property>


    <property>

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

    <value>/root/hdpdata/data</value>

    </property>


    <property>

    <name>dfs.namenode.secondary.http-address</name>

    <value>hdp-02:50090</value>

    </property>


    </configuration>

 

4) 拷贝整个hadoop安装目录到其他机器

 

scp -r /bigdata/hadoop-2.8.1 hdp-02:/bigdata/

scp -r /bigdata/hadoop-2.8.1 hdp-03:/bigdata/

scp -r /bigdata/hadoop-2.8.1 hdp-04:/bigdata/

5) 启动HDFS

 

所谓的启动HDFS,就是在对的机器上启动对的软件

要点

提示:

要运行hadoop的命令,需要在linux环境中配置HADOOP_HOME和PATH环境变量

vi /etc/profile

export JAVA_HOME=/root/apps/jdk1.8.0_60

export HADOOP_HOME=/root/apps/hadoop-2.8.1

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 

 

 

首先,初始化namenode的元数据目录

要在hdp-01上执行hadoop的一个命令来初始化namenode的元数据存储目录

hadoop namenode -format

  1. 创建一个全新的元数据存储目录
  2. 生成记录元数据的文件fsimage
  3. 生成集群的相关标识:如:集群id——clusterID

 

然后,启动namenode进程(在hdp-01上)

hadoop-daemon.sh start namenode

启动完后,首先用jps查看一下namenode的进程是否存在

 

然后,在windows中用浏览器访问namenode提供的web端口:50070

http://hdp-01:50070

 

然后,启动众datanode们(在任意地方)

hadoop-daemon.sh start datanode

 

 

6) 用自动批量启动脚本来启动HDFS

  1. 先配置hdp-01到集群中所有机器(包含自己)的免密登陆 (详细步骤查看)
  2. 配完免密后,可以执行一次  ssh 0.0.0.0(进行第二个datanode的设置)
  3. 修改hadoop安装目录中/etc/hadoop/slaves(把需要启动datanode进程的节点列入)
 
hdp-01

hdp-02

hdp-03

hdp-04

 

     在hdp-01上用脚本:start-dfs.sh 来自动启动整个集群

     如果要停止,则用脚本:stop-dfs.sh

 

hdfs的客户端操作:

 

客户端的理解

hdfs的客户端有多种形式:

  1. 网页形式
  2. 命令行形式
  3. 客户端在哪里运行,没有约束,只要运行客户端的机器能够跟hdfs集群联网

 

文件的切块大小和存储的副本数量,都是由客户端决定!

所谓的由客户端决定,是通过配置参数来定的

hdfs的客户端会读以下两个参数,来决定切块大小、副本数量:

切块大小的参数: dfs.blocksize

副本数量的参数: dfs.replication

 

上面两个参数应该配置在客户端机器的hadoop目录中的hdfs-site.xml中配置

<property>

<name>dfs.blocksize</name>

<value>64m</value>

</property>


<property>

<name>dfs.replication</name>

<value>2</value>

</property>

hdfs客户端的常用操作命令

上传文件到hdfs中

          hadoop fs -put /本地文件  /aaa

 

 下载文件到客户端本地磁盘

          hadoop fs -get /hdfs中的路径   /本地磁盘目录

 

  在hdfs中创建文件夹

        hadoop fs -mkdir  -p /aaa/xxx

 

移动hdfs中的文件(更名)

     hadoop fs -mv /hdfs的路径1  /hdfs的另一个路径2

 

复制hdfs中的文件到hdfs的另一个目录

      hadoop fs -cp /hdfs路径_1  /hdfs路径_2

 

 

删除hdfs中的文件或文件夹

         hadoop fs -rm -r /aaa

 

 

查看hdfs中的文本文件内容

    hadoop fs -cat /demo.txt

    hadoop fs -tail -f /demo.txt

GEE:连续变化检测 CCD 第一步(导出ee.Algorithms.TemporalSegmentation.Ccdc函数的结果) 连续变化检测与分类(Continuous Change Detection and Classification, CCDC)主要有两个组件,一个连续变化检测 CCD,另外一个分类。在 Google Earth Engine (GEE)平台上进行 CCD 时间序列变化检测的时候,为了防止内存超限问题,将代码分为2阶段执行。第一阶段是运行 `ee.Algorithms.TemporalSegmentation.Ccdc` 函数,本文将详细介绍 CCD 的第一阶段的代码。 阅读详情

相关推荐

YOLO-FastestV2从零部署到移动端推理实战手册

本文详细介绍了YOLO-FastestV2从零开始的完整部署流程,涵盖环境搭建、模型训练、格式转换及移动端部署。通过实战步骤,指导开发者将这一轻量级目标检测模型成功部署到Android设备,实现实时推理。文章重点解析了PyTorch到NCNN的模型转换与优化,助力移动端AI应用开发。

l1k9j8h7g6的博客 668

基于Hadoop搭建HDFS文件管理系统(大数据)

--------------------------------------------------------------------------------------------------------------------------------如果各位看官老爷都可以配置到最后一步了,那么各位看官老爷可以对于HDFS文件系统有了一个深刻的了解。在每一台虚拟机中进行却换到hadoop用户:su – Hadoop,并 执行ssh-keygen -t rsa -b 4096,创建ssh密钥。

2302_77018034的博客 1656

STM32--LoRa通信模块

模块根据MD0的配置与AUX引脚的状态会进入不同的功能其中在通信功能下,包含4种工作模式。

qq_47258284的博客 1万+

分布式文件系统HDFS的部署(学习笔记)

admin@n1 ~]$ scp hadoop-3.3.1.tar.gz n2:/home/admin/ 私钥 private key。加密的密钥-->公钥 public key。上传文件jdk-8u261-linux-x64.rpm。加密的密钥和解密的密钥相同。加密的密钥和解密的密钥不同。

2301_76869904的博客 1899

SpringBoot+Maven打包实战:把项目变成SDK供其他团队调用

本文详细介绍了如何将SpringBoot项目改造并打包成可被其他项目依赖的SDK。通过调整Maven配置,剥离SpringBoot父依赖与启动类,并定制打包插件,最终生成标准的JAR依赖库,实现从“可执行应用”到“组件化SDK”的优雅转变,便于团队间功能复用。

assembly8low的博客 826

jdbc从入门到精通(全)

前言 Java语言连接数据库(Java DataBase Connectivity) 面向接口/抽象编程(降低程序的耦合度,提高程序的扩展力)类似多态机制

码农研究僧的博客 1757

Ceph分布式文件系统集群搭建

准备四台虚拟机搭建ceph集群存储,分别安装centos-7-x86_64操作系统,使用的ceph的版本minic版。

weixin_53673876的博客 1721

23种设计模式-享元(Flyweight)设计模式

软考中级-软件设计师 享元设计模式

片言可决讼,半纸能缚龙 3223

本地安装HDFS(Hadoop)

开发阶段本地远程请求服务器有点慢,于是自己本地安装一个HDFS 下载地址https://hadoop.apache.org/releases.html 本人安装的3.1.3 下载解压放到自己指定位置,Hadoop安装必须要安装JDK1.8以上,配置系统环境变量path中添加%HADOOP_HOME%\bin,和JAVA_HOME方式一致,自行安装 JAVA_HOME安装目录不能有空格,不然启动hadoop会报错:Error: JAVA_HOME is incorrectly set.Please ..

程序员 1973

沉降预测算法-指数曲线法

沉降预测的指数曲线法原理和代码实现

yh523的博客 1009

华为OD机试真题 新系统 2026-04-19 C语言 实现【8位LED控制器】

有一个8位LED控制器,包含8个LED灯(编号0-7),初始状态全灭,用8位二进制表示为:00000000。控制器可以接收以下三种指令: Lx:L表示点亮操作,x表示LED的编号(0一7),操作得到的结果是:点亮第x个LED灯,把状态设为1。 Dx:D表示熄灭操作,x表示LED的编号(0-7),操作得到的结果是:熄灭第x个LED灯,把状态设为0。 Tx:T表示切换操作,x表示LED的编号(0-7),操作得到的结果是:切换第x个LED灯的状态,若状态为0则变为1,为1则变为0。 现在给定一组指令字符串(0<

MISAYAONE的博客 147

HDFS安装、配置以及基本使用

HDFS是一个分布式文件系统,安装完成之后使用起来类似于本地文件系统,但是它是一个网络文件系统,所以访问这种文件系统的方式和访问本地文件系统的方式还是有所差别的(本地文件系统的方式是基于系统调用的,当然也有类似NFS这样的网络文件系统可以使用和本地文件系统相同的访问方式,那是因为已经在内核中安装了NFS,而HDFS只是一个应用层的服务程序罢了)。但是这些命令看上去还是和常用的shell命令很类似的

Hello World 1万+

(14-3)值分布式算法:QR-DQN (Quantile Regression DQN)算法

QR-DQN(Quantile Regression DQN)是一种强化学习算法,它是深度 Q-网络(Deep Q-Network,DQN)的一个变种,旨在更好地处理值函数的不确定性。QR-DQN的实现步骤与传统的DQN类似,但在目标分布计算和损失函数方面有一些不同之处,这使得它能够更好地处理值函数的不确定性。QR-DQN(Quantile Regression DQN)算法的核心思想是将值函数表示为一个分布,而不是传统的单一值估计。在下面的内容中,将讲解一个使用QR-DQN算法的例子。

码农三叔 2052

深入理解HDFS:Hadoop分布式文件系统

文本详细介绍了HDFS中的许多概念,对于理解Hadoop分布式文件系统很有帮助。1. 介绍在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称为分布式文件系统。而一旦在系统中,引入网络,就不可避免地引入了所有网络编程的复杂性,例如挑战之一是如果保证在节点不可用的时候数据不丢失。传统的网络文件系统(NFS)虽然也称为分布式文件系统,但是其存在一些限制。由于

Spring , Hadoop, Spark , BI , ML 5万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

分布式文件系统GFS、HDFS的比较

一、概论 HDFS(Hadoop分布式文件系统)是根据GFS(Google文件系统)的原理开发的,是GFS的简化版。 前面提到,对于如何处理大数据,计算机科学界有两大方向:一是集中式计算,二是分布式计算。 过去,分布式计算理论比较复杂,技术实现比较困难,因此集中式计算一直是主流解决方案。但2003年到2004年间,Google发表了MapReduce、GFS和BigTable三篇技术论文,提出了一...

左直拳的马桶_日用桶 2万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Hadoop简述及HDFS集群搭建详解

目录 什么是Hadoop? Hadoop中有3个核心组件 HDFS的整体的运行机制 hdfs集群组成结构 hdfs有着文件系统共同的特征: hdfs跟普通单机文件系统的区别: hdfs的工作机制: 搭建hdfs分布式集群 安装hdfs集群的具体步骤 设置linux服务器的基础软件环境 安装hdfs集群 什么是Hadoop? 海量数据处理的一个技术(软件工具) Hadoop中有3个核心组件 1.分布式文件系统(HDFS)——实现将文件分布式存储在很多服务器上,功能是管理文件,实际

laozaoxiaowanzi的博客 2836

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

HDFS完全分布式集群搭建与配置

(1)防火墙设置:为了防止发生一些奇奇怪怪的错误,请务必关闭所有节点的防火墙,他可能会导致浏览器无法获取集群信息和文件上传集群失败环境搭建,还有通过.start-dfs.sh命令启动集群失败的很大一个原因就是服务器防火墙未关闭的原因。(2)hosts文件配置和主机名:因为这是完全分布式的集群,所以配置hosts文件至关重要,不然你的私钥配置和以后节点的格式化都会出错,他将会提示你无法解析主机名.(3)将配置好的HDFS拷贝到其他节点时注意路径问题。

Aricya的博客 5624

HDFS完全分布式集群搭建与配置及常见问题总结

Hadoop Distributed File System,简称 HDFS,是一个分布式文件系统。它解决了海量数据存储的问题。(1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。(2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。(3)Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份。1.路径错误问题。

m0_63945545的博客 1546

从零开始搭建Hadoop HDFS分布式集群

传统的数据存储方案,如关系型数据库和单机文件系统,在面对PB级别的非结构化数据时,早已力不从心。它将一个巨大的文件切分成若干个固定大小的数据块(Block,默认为128MB),并将这些数据块以多副本(默认为3份)的形式分布式地存储在整个集群的普通商用服务器上。通过将计算任务(如MapReduce)调度到数据所在的节点进行计算,极大地减少了网络传输开销,实现了数据本地化,从而提供了极高的数据吞吐率。

xiaolin030的博客 1910

分布式文件系统HDFS

HDFS(Hadoop Distributed File System)是Hadoop框架中的一个分布式文件系统,专门用于存储和处理海量数据。它由Apache软件基金会开发,是目前最流行的分布式文件系统之一。HDFS的设计目标是运行于廉价的商用硬件之上,提供高吞吐量和高容错性的数据访问能力。HDFS采用主从结构,由一个名称节点和多个数据节点组成。名称节点管理文件系统的命名空间和元数据,数据节点存储和读取文件块数据。1. 名称节点:运筹帷幄的掌控者。

JAZJD的博客 1992

Hadoop+Hdfs+Hbase+Kafka+Zookeeper集群搭建

本文详细介绍了基于centos7的Hadoop集群的搭建过程,给出了Hadoop的基础知识和项目搭建的流程,搭建了一个master结点和两个slave结点的Hadoop集群,在master和slave服务器上配置HDFS(hadoop分布式文件系统) ,HBase(集群数据库),zookeeper(集群维护服务),以及 kafka(消息队列),同时详细给出搭建过程和测试结果,并对搭建过程遇到的bug进行详细的记录

Boxbiu的博客 5219

第二节HDFS完全分布式集群搭建与配置及常见问题总结

适用于Hadoop中的HDFS完全分布式集群

qq_53114527的博客 1407
上一篇: Redis的主从复制【哨兵模式】
下一篇: Redis常用命令总结
ITgo
博客等级 码龄9年 14粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值