Hadoop集群部署【一】HDFS详细介绍以及HDFS集群环境部署【hadoop组件HDFS笔记】(图片均为学习时截取的)

 HDFS详细介绍

HDFS是什么

 HDFS是Hadoop三大组件(HDFS、MapReduce、YARN)之一 全称是:Hadoop Distributed File System(Hadoop分布式文件系统);是Hadoop技术栈内提供的分布式数据存储解决方案 可以在多台服务器上构建存储集群,存储海量的数据。

了解为什么海量数据需要使用分布式存储技术

答:1、太大,单台服务器无法承担。

        2、靠数量取胜 多台服务器组合,才能Hold住。

        3、分布式不仅仅是解决了能存的问题, 多台服务器协同工作 带来的也是性能的横向扩展。(网络传输、磁盘读写、CPU、内存等各方面的综合提升)——分布式的性能提升。

        

 HDFS的基础架构

 

 

 一个典型的HDFS集群,就是由1个DataNode加若干(至少一个)DataNode组成。 

 

 HDFS各个组件介绍
 NameNode:

HDFS系统的主角色,是一个独立的进程 负责管理HDFS整个文件系统 负责管理DataNode。

 SecondaryNameNode:

NameNode的辅助,是一个独立进程 主要帮助NameNode完成元数据整理工作(打杂)。

 DataNode:

HDFS系统的从角色,是一个独立进程 主要负责数据的存储,即存入数据和取出数据。

HDFS集群环境部署

注意:请完成集群前置准备工作:

配置多台虚拟机:http://t.csdnimg.cn/hGqMzicon-default.png?t=N7T8http://t.csdnimg.cn/hGqMz
ip固定http://t.csdnimg.cn/4IqRcicon-default.png?t=N7T8http://t.csdnimg.cn/4IqRc
主机映射:http://t.csdnimg.cn/1C15xicon-default.png?t=N7T8http://t.csdnimg.cn/1C15x
ssh免密登录(以root用户为例,其他用户创建后一样):http://t.csdnimg.cn/dEITyicon-default.png?t=N7T8http://t.csdnimg.cn/dEITy
Jdk:http://t.csdnimg.cn/zKRC7icon-default.png?t=N7T8http://t.csdnimg.cn/zKRC7
关闭防火墙以及SELinux关闭:http://t.csdnimg.cn/K19d7icon-default.png?t=N7T8http://t.csdnimg.cn/K19d7

为了系统的安全和稳定,建议使用自建的用户来管理大数据相关的软件,这里使用hadoop用户为HDFS最高权限用户。

下载

官方网址:https://hadoop.apache.org,课程使用当前最新的发行版:3.3.4版。

 上传 & 解压(我的Hadoop版本为3.3.4)

注意标红位置,改写为自己想放的路径,我的软件通常都放在/export/server!!!!!!!!!

 1. 上传Hadoop安装包到node1节点中。

自己选择弄

2. 解压缩安装包到/export/server/中

tar -zxvf hadoop-3.3.4.tar.gz  -C /export/server

3. 构建软链接

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

4. 进入hadoop安装包内

cd hadoop

5. 各个文件夹含义如下 

bin,存放Hadoop的各类程序(命令)

etc,存放Hadoop的配置文件 include,C语言的一些头文件

ib,存放Linux系统的动态链接库(.so文件)

libexec,存放配置Hadoop系统的脚本文件(.sh和.cmd)

licenses-binary,存放许可证文件 sbin,管理员程序(super bin)

share,存放二进制源码(Java jar包) 

 修改配置文件,应用自定义设置

1.  配置HDFS集群,我们主要涉及到如下文件的修改:

workers:        配置从节点(DataNode)有哪些

hadoop-env.sh:        配置Hadoop的相关环境变量

core-site.xml:        Hadoop核心配置文件

hdfs-site.xml:        HDFS核心配置文件

这些文件均存在与$HADOOP_HOME/etc/hadoop文件夹中。

2.  配置workers文件

进入配置文件目录

cd etc/hadoop

编辑workers文件

vim workers

填入如下内容

node1

node2

node3

 表明集群记录了三个从节点(DataNode)

3. 配置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运行日志目录位置

通过记录这些环境变量, 来指明上述运行时的重要信息 

 4.配置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>

 name:fs.defaultFS

含义:HDFS文件系统的网络通讯路径

value:hdfs://node1:8020

协议为hdfs://

namenode为node1

namenode通讯端口为8020

name:io.file.buffer.size

含义:io操作文件缓冲区大小

value:131072 bit

hdfs://node1:8020为整个HDFS内部的通讯地址,应用协议为hdfs://(Hadoop内置协议) 表明DataNode将和node1的8020端口通讯,node1是NameNode所在机器 此配置固定了node1必须启动NameNode进程

 5. 配置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>

 解释

根据

namenode数据存放node1的/data/nn

datanode数据存放node1、node2、node3的/data/dn

所以应该 在node1节点:

mkdir -p /data/nn

mkdir /data/dn

在node2和node3节点:

mkdir -p /data/dn

 从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

 配置系统的环境变量

所有机器

vim /etc/profile

export HADOOP_HOME=/export/server/hadoop

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

 授权为hadoop用户

 hadoop部署的准备工作基本完成

为了确保安全,hadoop系统不以root用户启动,我们以普通用户hadoop来启动整个Hadoop服务 所以,现在需要对文件权限进行授权。

 注意:请确保已经提前创建好了hadoop用户,并配置好了hadoop用户之间的免密登录!!!!

以root身份,在node1、node2、node3(所有机器)三台服务器上均执行如下命令 

chown -R hadoop:hadoop /data

chown -R hadoop:hadoop /export

 格式化整个文件系统

格式化namenode

 确保以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

 查看HDFS WEBUI

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

注意:没有配置windows系统的主机映射,将node1改为主机node1的ip!!!!!!!!

 ip固定http://t.csdnimg.cn/4IqRcicon-default.png?t=N7T8http://t.csdnimg.cn/4IqRc

 

在Windows挂载HDFS文件系统

NFSicon-default.png?t=N7T8http://t.csdnimg.cn/hq3CU

 配置hadoop组件yarn:http://t.csdnimg.cn/ZiHLe

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

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

相关文章

昇思25天学习打卡营第8天|DCGAN生成漫画头像

文章目录 昇思MindSpore应用实践基于MindSpore的DCGAN生成漫画头像1、DCGAN 概述零和博弈 vs 极大极小博弈GAN的生成对抗损失DCGAN原理 2、数据预处理3、DCGAN模型构建生成器部分判别器部分 4、模型训练 Reference 昇思MindSpore应用实践 本系列文章主要用于记录昇思25天学习打…

机器学习基础概念

1.机器学习定义 2.机器学习工作流程 &#xff08;1&#xff09;数据集 ①一行数据&#xff1a;一个样本 ②一列数据&#xff1a;一个特征 ③目标值&#xff08;标签值&#xff09;&#xff1a;有些数据集有目标值&#xff0c;有些数据集没有。因此数据类型由特征值目标值构成或…

Java实现图书管理系统

一、框架 1. 创建类 用户&#xff1a;管理员AdminUser 普通用户NormalUser 继承抽象类User 书&#xff1a;书Book 书架BookList 操作对象&#xff1a;书Book 2. 知识点 主要涉及的知识点&#xff1a;数据类型 变量 if for 数组 方法 类和对象 封装继承多态 抽象类和接口 …

Linux运维之需掌握的基本Linux命令

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 目录 一、SHELL 二、执行命令 三、常用系统工作命令 四、系统状态检测命令 五、查找定位文件命令 六、文本文件编辑命令 七、文件目录管理命令…

【JavaWeb】登录校验-会话技术(一)Cookie与Session

登录校验 实现登陆后才能访问后端系统页面&#xff0c;不登陆则跳转登陆页面进行登陆。 首先我们在宏观上先有一个认知&#xff1a; HTTP协议是无状态协议。即每一次请求都是独立的&#xff0c;下一次请求并不会携带上一次请求的数据。 因此当我们通过浏览器访问登录后&#…

Simulink 模型生成 C 代码(一):使用 Embedded Coder 快速向导生成代码

以matlab自带的示例模型RollAxisAutopilot为例进行讲解。RollAxisAutopilot为飞机自动驾驶控制系统模型。 使用快速向导工具生成代码 通过键入以下命令打开模型 RollAxisAutopilot&#xff1a; openExample(RollAxisAutopilot); 如果 C 代码选项卡尚未打开&#xff0c;请在 …

【C++】宏定义

严格来说&#xff0c;这个题目起名为C是不合适的&#xff0c;因为宏定义是C语言的遗留特性。CleanCode并不推荐C中使用宏定义。我当时还在公司做过宏定义为什么应该被取代的报告。但是适当使用宏定义对代码是有好处的。坏处也有一些。 无参宏定义 最常见的一种宏定义&#xf…

新声创新20年:无线技术给助听器插上“娱乐”的翅膀

听力损失并非现代人的专利&#xff0c;古代人也会有听力损失。助听器距今发展已经有二百多年了&#xff0c;从当初单纯的声音放大器到如今的全数字时代助听器&#xff0c;助听器发生了翻天覆地的变化&#xff0c;现代助听器除了助听功能&#xff0c;还具有看电视&#xff0c;听…

C++ 和C#的差别

首先把眼睛瞪大&#xff0c;然后憋住一口气&#xff0c;读下去&#xff1a; 1、CPP 就是C plus plus的缩写&#xff0c;中国大陆的程序员圈子中通常被读做"C加加"&#xff0c;而西方的程序员通常读做"C plus plus"&#xff0c;它是一种使用非常广泛的计算…

Maya崩溃闪退常见原因及解决方案

Autodesk Maya 是一款功能强大的 3D 计算机图形程序&#xff0c;被电影、游戏和建筑等各个领域的设计师广泛使用。然而&#xff0c;Maya 就像任何其他软件一样可能会发生崩溃问题。在前文中&#xff0c;小编给大家介绍了3ds Max使用V-Ray渲染时的崩溃闪退解决方案&#xff1a; …

后端之路第三站(Mybatis)——JDBC跟Mybatis、lombok

一、什么是JDBC JDBC就是sun公司研发的一套通过java来操控数据库的工具&#xff0c;对应不同的数据库系统有不同的JDBC&#xff0c;而他们统称【驱动】&#xff0c;这就是上一篇我们提到创建Mybatis项目时要引入的依赖、以及连接数据库四要素里的第一要素。 JDBC有自己一套原始…

Elasticsearch:Painless scripting 语言(一)

Painless 是一种高性能、安全的脚本语言&#xff0c;专为 Elasticsearch 设计。你可以使用 Painless 在 Elasticsearch 支持脚本的任何地方安全地编写内联和存储脚本。 Painless 提供众多功能&#xff0c;这些功能围绕以下核心原则&#xff1a; 安全性&#xff1a;确保集群的…

近红外光谱脑功能成像(fNIRS):1.光学原理、变量选取与预处理

一、朗伯-比尔定律与修正的朗伯-比尔定律 朗伯-比尔定律 是一个描述光通过溶液时被吸收的规律。想象你有一杯有色液体&#xff0c;比如一杯红茶。当你用一束光照射这杯液体时&#xff0c;光的一部分会被液体吸收&#xff0c;导致透过液体的光变弱。朗伯-比尔定律告诉我们&#…

redis主从复制哨兵模式集群管理

主从复制&#xff1a; 主从复制是高可用Redis的基础&#xff0c;哨兵和集群都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份&#xff0c;以及对于读操作的负载均衡和简单的故障恢复。缺陷&#xff1a;故障恢复无法自动化&#xff1b;写操作无法负载均衡&…

HbuilderX:安卓打包证书.keystore生成与使用

前置条件 已安装jdk或配置好jre环境。 .keystore生成 打开cmd,切换到目标路径,输入以下命令, keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore 输入密钥库口令(要记住), 然后输入一系列信息, …

ui.perfetto.dev sql 查询某个事件范围内,某个事件的耗时并降序排列

ui.perfetto.dev sql 查询某个事件范围内,某个事件的耗时并降序排列 1.打开https://ui.perfetto.dev 导入Chrome Trace Json文件2.ParallelMLP.forward下的RowParallelLinear.forward3.点击Query(SQL),在输入框中输入以下内容,按CtrlEnter,显示查询结果4.点击Show timeline,点击…

2024年07年01日 Redis数据类型以及使用场景

String Hash List Set Sorted Set String&#xff0c;用的最多&#xff0c;对象序列化成json然后存储 1.对象缓存&#xff0c;单值缓存 2.分布式锁 Hash&#xff0c;不怎么用到 1.可缓存经常需要修改值的对象&#xff0c;可单独对对象某个属性进行修改 HMSET user {userI…

C++基础(三):C++入门(二)

上一篇博客我们正式进入C的学习&#xff0c;这一篇博客我们继续学习C入门的基础内容&#xff0c;一定要学好入门阶段的内容&#xff0c;这是后续学习C的基础&#xff0c;方便我们后续更加容易的理解C。 目录 一、内联函数 1.0 产生的原因 1.1 概念 1.2 特性 1.3 面试题 …

用随机森林算法进行的一次故障预测

本案例将带大家使用一份开源的S.M.A.R.T.数据集和机器学习中的随机森林算法&#xff0c;来训练一个硬盘故障预测模型&#xff0c;并测试效果。 实验目标 掌握使用机器学习方法训练模型的基本流程&#xff1b;掌握使用pandas做数据分析的基本方法&#xff1b;掌握使用scikit-l…

珠江电缆,承载您梦想的每一度电

在现代社会&#xff0c;电力无处不在&#xff0c;它不仅是经济发展的动力&#xff0c;更是每个人生活中不可或缺的能量来源。而在这个电力驱动的世界里&#xff0c;有一家企业默默地承载着千家万户的梦想&#xff0c;它就是珠江电缆。 连接梦想的每一度电 珠江电缆成立于2001…