Hadoop-002-部署并配置HDFS集群

集群规划

Hadoop HDFS的角色包含 NameNode (主节点管理者)、DataNode (从节点工作者)、SeconddaryNameNode (从节点辅助)

节点 CPU 内存
hadoop-1 1C 4G
hadoop-2 1C 2G
hadoop-3 1C 2G

一、下载上传Hadoop包

注意: 登录hadoop-1节点root用户执行

1、官网下载安装包后上传 到hadoop-1服务器/opt目录下,可视化工具直接拖拽也可以上传

powershell 复制代码
wget https://mirrors.bfsu.edu.cn/apache/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gz

解压,并配置软连接
tar -zxvf hadoop-3.2.4.tar.gz -C /opt/
ln -s /opt/hadoop-3.2.4 /opt/hadoop

二、Hadoop包目录结构

2、目录查看和解释说明

powershell 复制代码
bin,存放Hadoop的各类程序(命令)
etc,存放Hadoop的配置文件
include,C语言的一些头文件
lib,存放Linux系统的动态链接库(.so文件)
libexec,存放配置Hadoop系统的脚本文件(.sh和.cmd)
licenses-binary,存放许可证文件
sbin,管理员程序(super bin)
share,存放二进制源码(Java jar包)

三、修改配置文件

3、介绍下配置HDFS集群主要涉及到如下文件的修改:

powershell 复制代码
workers:			配置从节点(DataNode)有哪些
hadoop-env.sh:		配置Hadoop的相关环境变量
core-site.xml:		Hadoop核心配置文件
hdfs-site.xml:		HDFS核心配置文件

这些文件均存在与$HADOOP_HOME/etc/hadoop文件夹中。
$HADOOP_HOME是需要设置的环境变量, 表示Hadoop的安装目录,即/opt/hadoop-3.2.4   
由于配置了软连接,也可以表示 /opt/hadoop

4、配置workers

直接执行以下命令:表名集群记录了三个从节点

powershell 复制代码
sudo sh -c "echo 'hadoop-1' >> /opt/hadoop/etc/hadoop/workers"
sudo sh -c "echo 'hadoop-2' >> /opt/hadoop/etc/hadoop/workers"
sudo sh -c "echo 'hadoop-3' >> /opt/hadoop/etc/hadoop/workers"

5、配置hadoop-env.sh

直接执行以下命令

powershell 复制代码
sudo sh -c "echo 'export JAVA_HOME=/opt/jdk' >> /opt/hadoop/etc/hadoop/hadoop-env.sh"
sudo sh -c "echo 'export HADOOP_HOME=/opt/hadoop' >> /opt/hadoop/etc/hadoop/hadoop-env.sh"
sudo sh -c "echo 'export HADOOP_CONF_DIR=\$HADOOP_HOME/etc/hadoop' >> /opt/hadoop/etc/hadoop/hadoop-env.sh"
sudo sh -c "echo 'export HADOOP_LOG_DIR=\$HADOOP_HOME/logs' >> /opt/hadoop/etc/hadoop/hadoop-env.sh"

JAVA_HOME,指明JDK环境的位置

HADOOP_HOME,指明Hadoop安装位置

HADOOP_CONF_DIR,指明Hadoop配置文件目录位置

HADOOP_LOG_DIR,指明Hadoop运行日志目录位置

6、配置core-site.xml

在文件内部填入如下内容

powershell 复制代码
<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop-1: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

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

值:131072 bit

hdfs://node1:8020为整个HDFS内部的通讯地址,应用协议为hdfs://(Hadoop内置协议)

表明DataNode将和node1的8020端口通讯,node1是NameNode所在机器

此配置固定了node1必须启动NameNode进程

7、配置hdfs-site.xml

powershell 复制代码
<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>hadoop-1,hadoop-2,hadoop-3</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>

key:dfs.datanode.data.dir.perm

含义:hdfs文件系统,默认创建的文件权限设置

值:700,即:rwx------

key:dfs.namenode.name.dir

含义:NameNode元数据的存储位置

值:/data/nn,在node1节点的/data/nn目录下

key:dfs.namenode.hosts

含义:NameNode允许哪几个节点的DataNode连接(即允许加入集群)

值:node1、node2、node3,这三台服务器被授权

key:dfs.blocksize

含义:hdfs默认块大小

值:268435456(256MB)

key:dfs.namenode.handler.count

含义:namenode处理的并发线程数

值:100,以100个并行度处理文件系统的管理任务

key:dfs.datanode.data.dir

含义:从节点DataNode的数据存储目录

值:/data/dn,即数据存放在node1、node2、node3,三台机器的/data/dn内

8、创建数据目录

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

所以需要创建存放数据的目录

powershell 复制代码
在hadoop-1节点:
mkdir -p /data/nn
mkdir -p /data/dn
在hadoop-2和hadoop-3节点:
mkdir -p /data/dn

四、配置分发

9、hadoop-1已经配置完成, 将hadoop安装目录远程复制到hadoop-2和hadoop-3

powershell 复制代码
cd /opt
scp -r hadoop-3.2.4 hadoop-2:`pwd`/
scp -r hadoop-3.2.4 hadoop-3:`pwd`/
ll

分别登录hadoop-2和hadoop-3执行一次下面这个命令创建软链接

powershell 复制代码
ln -s /opt/hadoop-3.2.4 /opt/hadoop

10、配置程序PAYH

在Hadoop文件夹中的bin、sbin两个文件夹内有许多的脚本和程序,为方便操作可以配置一下环境变量

powershell 复制代码
sudo sh -c "echo 'export HADOOP_HOME=/opt/hadoop' >> /etc/profile"
sudo sh -c "echo 'export PATH=\$PATH:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin' >> /etc/profile"
source /etc/profile

hadoop-2和hadoop-3节点都执行一下上面三个命令

11、以root身份在三台服务器上均执行授权

powershell 复制代码
hadoop在前期准备已创建并配置免密登录
chown -R hadoop:hadoop /data
chown -R hadoop:hadoop /opt

12、格式化namenode

powershell 复制代码
su - hadoop
hadoop namenode -format

13、启动hadoop

powershell 复制代码
# 一键启动hdfs集群
start-dfs.sh
# 一键关闭hdfs集群
stop-dfs.sh

# 如果遇到命令未找到的错误,表明环境变量未配置好,可以以绝对路径执行
/opt/hadoop/sbin/start-dfs.sh
/opt/hadoop/sbin/stop-dfs.sh

启动后的hadoop-1节点

启动后的hadoop-2节点

启动后的hadoop-3节点

访问 http://hadoop-1:9870/ 可以访问表示部署成功 (这里可以直接使用hadoop-1是由于前期配置了Windows电脑的hosts文件)

相关推荐
Data跳动2 小时前
Spark内存都消耗在哪里了?
大数据·分布式·spark
woshiabc1112 小时前
windows安装Elasticsearch及增删改查操作
大数据·elasticsearch·搜索引擎
lucky_syq3 小时前
Saprk和Flink的区别
大数据·flink
lucky_syq3 小时前
流式处理,为什么Flink比Spark Streaming好?
大数据·flink·spark
袋鼠云数栈3 小时前
深入浅出Flink CEP丨如何通过Flink SQL作业动态更新Flink CEP作业
大数据
清平乐的技术专栏3 小时前
Hive SQL 查询所有函数
hive·hadoop·sql
小白学大数据4 小时前
如何使用Selenium处理JavaScript动态加载的内容?
大数据·javascript·爬虫·selenium·测试工具
15年网络推广青哥5 小时前
国际抖音TikTok矩阵运营的关键要素有哪些?
大数据·人工智能·矩阵
节点。csn5 小时前
Hadoop yarn安装
大数据·hadoop·分布式
不惑_5 小时前
小白入门 · 腾讯云轻量服务器部署 Hadoop 3.3.6
服务器·hadoop·腾讯云