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/hGqMzhttp://t.csdnimg.cn/hGqMz
ip固定http://t.csdnimg.cn/4IqRchttp://t.csdnimg.cn/4IqRc
主机映射:http://t.csdnimg.cn/1C15xhttp://t.csdnimg.cn/1C15x
ssh免密登录(以root用户为例,其他用户创建后一样):http://t.csdnimg.cn/dEITyhttp://t.csdnimg.cn/dEITy
Jdk:http://t.csdnimg.cn/zKRC7http://t.csdnimg.cn/zKRC7
关闭防火墙以及SELinux关闭:http://t.csdnimg.cn/K19d7http://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/4IqRchttp://t.csdnimg.cn/4IqRc

在Windows挂载HDFS文件系统

NFShttp://t.csdnimg.cn/hq3CU

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

相关推荐
kakwooi29 分钟前
Hadoop---MapReduce(3)
大数据·hadoop·mapreduce
windy1a35 分钟前
【c知道】Hadoop工作原理。
hadoop
aloha_7894 小时前
从零记录搭建一个干净的mybatis环境
java·笔记·spring·spring cloud·maven·mybatis·springboot
dsywws5 小时前
Linux学习笔记之vim入门
linux·笔记·学习
油头少年_w6 小时前
大数据导论及分布式存储HadoopHDFS入门
大数据·hadoop·hdfs
A-超7 小时前
vue3展示pag格式动态图
笔记
u0101526588 小时前
STM32F103C8T6学习笔记2--LED流水灯与蜂鸣器
笔记·stm32·学习
weixin_518285058 小时前
深度学习笔记10-多分类
人工智能·笔记·深度学习
丘狸尾8 小时前
ubuntu【桌面】 配置NAT模式固定IP
笔记
王俊山IT8 小时前
C++学习笔记----10、模块、头文件及各种主题(二)---- 预处理指令
开发语言·c++·笔记·学习